swsusp2 (swapfile+swapwriter) を試す, etc.
_ [comp] swsusp2 (swapfile+swapwriter) を試す
Software Suspend を試してみる。以下試してみた手順。
- kernel 2.6.12.4 に Stable Patches 2.1.9.5 を当てる。UNICON patch が当たっていてもそのまま当たった。
-
Patching the kernel の通りに kernel config。
CONFIG_SUSPEND2=y CONFIG_SUSPEND2_FILEWRITER=y CONFIG_SUSPEND2_SWAPWRITER=y CONFIG_SUSPEND2_USERSPACE_UI=y # CONFIG_SUSPEND2_TEXT_MODE is not set CONFIG_SUSPEND2_DEFAULT_RESUME2="" # CONFIG_SUSPEND2_KEEP_IMAGE is not set CONFIG_SUSPEND2_CHECK_RESUME_SAFE=y CONFIG_CRYPTO_LZF=y
- kernel compile & install。
- hibernate を install。
- スワップパーティションのないマシンなので、Using a swapfile の通りスワップファイルを使う。
-
512MB のスワップファイルを作成。
# dd if=/dev/zero of=/var/lib/swsusp2/swap bs=1M count=512 # mkswap /var/lib/swsusp2/swap # swapon /var/lib/swsusp2/swap
-
ヘッダロケーションの確認。
# cat /proc/software_suspend/headerlocations For swapfile `/var/lib/swsusp2/swap `, use resume2=swap:/dev/<partition name>:0x******@4096.
<partition name> はスワップファイルを置いているパーティション。ここでは /dev/hda2 に置いてあるとする。
-
/boot/grub/menu.lst のカーネルパラメータに追加。
kernel /boot/vmlinuz-2.6.12.4-XXXXXXXX root=/dev/hda2 ro resume2=swap:/dev/hda2:0x******@4096
-
/etc/hibernate/hibernate.conf に追加。
SuspendDevice swap:/dev/hda2:0x******@4096
-
電源ボタンを押したらサスペンドするように /etc/acpi/powerbtn.sh を編集。
- /sbin/shutdown -h now "Power button pressed" + echo "/var/lib/swsusp2/swap" > /proc/software_suspend/swapfilename + /usr/sbin/hibernate
以上を行った上で reboot。これで電源ボタンを押すことでサスペンドするようになった。console 上でも X 上でも問題なし。レジュームは普通に boot するだけで OK。レジュームさせないときはカーネルパラメータに noresume2 を追加して boot。
_ [debian] sysvinit 2.86.ds1-1vd1
起動時の
find: warning: you have specified the -depth option after a non-option argument !,
but options are not positional (-depth affects tests specified before it as well as those specified after it).
Please specify options before other arguments.
がいい加減うざったくなってきたので、#281651 のパッチを当てて作成。