FC3 software suspend 2 설치

donari의 이미지

안녕하세요 ?

강좌라 하기에는 쑥스럽지만, 제 노트북에 swsusp2 적용한 결과가 좋아 올려봅니다. 아직 하이버네이트 기능이 리눅스에서는 불안하기 때문에 노트북에 중요한 자료 등이 있으신 분은 안하시는게 좋을 것 같습니다.
(전 년초에 노트북에 커피를 쏟아 하드가 망가져서, 시스템을 다시 설치하는 바람에 서스펜드 기능을 그냥 맘 놓고 테스트 해 봤습니다. 또한, 리눅스에서 자신의 노트북과 동일한 노트북을 사용하는 사용자 그룹을 찾아 먼저 성공하신 분들의 문서와 자잘한 버그 등을 꼭 미리 알아두셔야 합니다.)
swsusp는 고생만 해서 설정해 놓고, 동작이 불안정해 마음놓고 사용하지 못했습니다. swsusp는 한 달여 동안 여러가지로 스크립트 변경해 가면서 테스트 했는데, 결론은 제 노트북에서는 swsusp 보다는 swsusp2가 비교도 안될 만큼 안정적입니다.

노트북 : SONY VAIO Z1LP

원본 문서 : http://softwaresuspend.berlios.de/fedora/
소프트웨어 서스펜드 2 : http://softwaresuspend.berlios.de/index.html

커널 : kernel-2.6.10-1.760_FC3

바닐라 커널 2.6.10용 소프트웨어 서스펜드 2 패치 :
software-suspend-2.1.5.15-for-2.6.10
FC3 2.6.10-760용 패치 :
010-2.6.10-1.760_FC3-to-2.1.5.15-pre
990-2.6.10-1.760_FC3-to-2.1.5.15-post

하이버네이션 스크립트 :
hibernate-script-1.03

1. software suspend 2 패치 받아서 압축 풀고, FC3 용 패치 2개를 모두 그 곳에 넣어줌.

2. FC3 커널에 패치적용

3. 커널 재컴파일 및 설치
make oldconfig (참고 1)
make
make modules_install
make install

4. initrd 수정
root 권한으로 변경
#mkdir myinitrd
#cd myinitrd
#gzip -dc < /boot/initrd-your-version-here.img | cpio -i
#edit init by adding echo > /proc/software_suspend/do_resume near the top of the script (after mounting /proc but before mounting any drives)
(참고 2)
#find . | cpio -o -c |gzip -9 > /boot/initrd-your-version-here.img

5. grub.conf 수정
swap 파티션의 위치를 소프트웨어 서스펜드 2에게 알려주기 위해서 resume2=..... 를 추가한다.
title Fedora Core (2.6.10-donari)
root (hd0,1)
kernel /vmlinuz-2.6.10-donari resume2=swap:0xfd01 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.10-donari.img
(참고 3)

6. hibernate script 설치

7. 리부팅

8. hibernate 테스트
원본 문서에 있는 SwitchToTextMode yes, UseDummyXServer yes 는 적용하지 않은채, 받은 스크립트 그대로 사용중입니다. (일단 적용해 놓고 테스트 해보는 게 좋을 것 같습니다.)

9. 여러번 테스트 해서 잘 된다면, 앞으로도 하이버네이션 기능을 사용한다. ^^

참고 1)
config 내용은 다음과 같다.
#
# Software Suspend 2
#
CONFIG_SOFTWARE_SUSPEND2=y
CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y
CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y

#
# Page Transformers
#
CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y

#
# User Interface Options
#
CONFIG_SOFTWARE_SUSPEND_BOOTSPLASH=y
CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y

#
# General Options
#
CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2=""
# CONFIG_SOFTWARE_SUSPEND_KEEP_IMAGE is not set
# CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE is not set

#
# Debugging
#
# CONFIG_SOFTWARE_SUSPEND_DEBUG is not set

FC3에서 bootsplash 사용하지 않으므로, CONFIG_SOFTWARE_SUSPEND_BOOTSPLASH=n 가 보통일텐데 나중에 한번 bootsplash 해볼까 하는 생각도 들어서 포함 시켰다.

참고 2)
lvm2를 이용하는 경우 init 변경이 기본적으로 설명되어 있는 경우와 약간 달라져야 한다.
http://softwaresuspend.berlios.de/HOWTO-7.html#ss7.3
위 페이지에서 설명하는 것처럼 해야 될 텐데, LVM을 이번에 처음 써보는 관계로 꽁수를 사용했다.
init 내에서 echo > /proc .... 의 위치는 다음과 같다.
....
lvm vgmknodes
echo > /proc/software_suspend/do_resume
echo Creating root device
....
LVM 사용하지 않는 경우라면, 스왑 파티션의 위치를 원본 문서에 설명한 곳에 잡아주면 될것 같다.

참고 3)
LVM을 잘 몰라,
[root@localhost myinitrd]# ls -l /dev/mapper/VolGroup00-LogVol01
brw------- 1 root root 253, 1 2월 7 00:02 /dev/mapper/VolGroup00-LogVol01
해서 장치의 major, minor 번호를 알아내서 16진수로 넣어줬다. 253, 1 => 0xFD01

p.s. LVM 관련 내용을 몰라 문서가 진짜 부실합니다. 잘 아시는 분 답해주세요.

Forums: 
jaeswith의 이미지

데비안에서 suspend2 를 쓰려고 해보니, 생각보다 한글로 된 자료가 없어서 삽질을 며칠 했습니다. 혹시나 도움이 될까 해서 올려봅니다.

데비안 시드 - 2005년 8월 30일
커널 - Vanila kernel 2.6.13
Suspend2 - 2.2-rc4
hibernate script - 1.10

일단 제 경우에는 initrd 를 사용해서 부팅을 합니다.
http://www.suspend2.net/HOWTO-2.html#ss2.4
에서 보시다시피, initrd.img 를 만들때 약간의 작업이 필요합니다.
/usr/share/initrd-tools/ 디렉토리의 linuxrc 파일에

Quote:
echo > /proc/software_suspend/do_resume

을 넣어줘야 하는데요.
넣는 위치는 proc 을 마운트한 바로 다음에 넣으면 되는 것 같습니다.
원문에서는 proc을 마운트한 다음, root fs를 마운트하기 전으로 나왔던것으로 기억합니다.
그리고 나서 mkinitrd 를 이용해서 initrd 을 새로 만듭니다.
(물론 커널 bzImage 도 적절한 위치에 복사하고, grub의 menu.lst 파일도 고쳐야죠)

그리고 vanila 커널을 컴파일 하실땐
Device Drivers > ATA/ATAPI/MFM/RLL support
에 나오는 IDE support 를 모듈로 하지 말고, kernel built-in 으로 하셔야,
resume2=/dev/hda3
옵션을 줬을때, 커널이 /dev/hda3 을 인식할 수 있게 됩니다.

이렇게 해 주니깐, 정상적으로 suspend & resume 이 되더군요.

as simple as possible
Jae-wan Jang
http://camars.kaist.ac.kr/~jwjang

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.