FC3 software suspend 2 설치
안녕하세요 ?
강좌라 하기에는 쑥스럽지만, 제 노트북에 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 관련 내용을 몰라 문서가 진짜 부실합니다. 잘 아시는 분 답해주세요.
데비안에서 suspend2 쓰기.
데비안에서 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 파일에
을 넣어줘야 하는데요.
넣는 위치는 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
댓글 달기