2006年11月05日
suspend-to-ram
daisukeのdynabook記事 を読んで。うちでは昔newsforgeで紹介されていたスクリプトを少しいじって使ってる。 Xをソフトウェアカーソルにした以外は特に特別なことはしてない。 サスペンド前にVTを切り替えるのと、ビデオの状態を書き出しているのがミソ?
#!/bin/sh
xlock &
cardctl eject
# discover video card's ID
ID=`lspci | grep VGA | awk '{ print $1 }' | sed -e 's@0000:@@' -e 's@:@/@'`
# securely create a temporary file
TMP_FILE=`mktemp /var/tmp/video_state.XXXXXX`
trap 'rm -f $TMP_FILE' 0 1 15
# switch to virtual terminal 1 to avoid graphics
# corruption in X
chvt 1
# write all unwritten data (just in case)
sync
# dump current data from the video card to the
# temporary file
cat /proc/bus/pci/$ID > $TMP_FILE
# suspend
echo -n mem > /sys/power/state
# restore video card data from the temporary file
# on resume
cat $TMP_FILE > /proc/bus/pci/$ID
# switch back to virtual terminal 7 (running X)
chvt 7
# remove temporary file
rm -f $TMP_FILE
私もなんか機会があったら借りるかなぁ。今は借りてもなんもできんが…
![[hatena]](http://d.hatena.ne.jp/images/b_entry_de.gif)
![[RSS]](/d/rss10.png)