2007年12月26日(水) 21:31
2GB の SD を使えるようにした SL-C760。サスペンドすると、SD が見えなくなる事に気がつきました。
SD の取り外しを行ってからサスペンドすれば、サスペンドから復帰したときに再度 SD を見つけてマウントしてくれます。
つまり、サスペンド時に、SD を自動で取り外せばいいことになります。わたしは、アプリケーションが起動したままサスペンドするのが嫌いなので、自動で SD を取り外すようにしても問題ありません。メモリを空かせるために高速起動もすべて切ってあります。また、スワップも使っていません。
ただ、急ぐときに困るかな?という程度です。
サスペンド時にどのような処理を行っているのか。
Qtopia のメニューの”電源OFF”がサスペンドです。電源OFF を選択したときに何が実行されるのか?メニューとランチャーは同期しています。どちらも、/opt/Qtpalmtop/apps を参照しているようです。ここに __9quit.desktop というファイルがあり、このファイルでサスペンドしているようです。
suspend を探します。
# find / -name suspend
suspend は、/home/root/usr/local/bin にありましたが、シンボリックリンクで実際は /usr/local/Xredir/usr/local/bin/suspend にリンクされています。このファイルの中を見ると、
echo suspend > /dev/zapmd
と実行されています。なるほど。terminal から実行してみました。
# echo suspend >/dev/zapmd
何も起こらず。/dev/zapmd はと見ると、レギュラーファイルです。つまり、リダイレクトでファイルを作っただけです。どうも違う。
もっと探すと、/proc/sys/pm に suspend がありました。何があるんだろう。
# cat /proc/sys/pm/suspend
サスペンドしました。しかし、復帰させると、ターミナル上に意味不明な文字が出てきてしまいました。タッチパネルの操作も受け付けません。
いろいろ調べると、サスペンドとかは、qcop メッセージで行えるということです。
ルートで次のように打つとサスペンドします。
# qcop QPE/Application/suspend 'raise()'
さらに調べると Netheper Applet というものがあり、これを入れると、サスペンド時やレジューム時にコマンドを実行できるようです。インストールしてやってみましたが、私がいろいろやりすぎているようで、SD カードの取り外し前に電源が切れてしまい、うまくいきません。
さらにさらに調べると、susp-resume_0.9-3.1.ipk というものを見つけました。これをインストールすると、サスペンド時に、/etc/apm.d/suspend.d/S* が、レジューム時に /etc/apm.d/resume.d/R* を実行できるようです。
早速インストールして使ってみます。
インストール後に /etc/apm.d/suspend.d の下に次のような内容の S00EjectSD というファイルを作って実行属性をつけます。
#!/bin/sh
if
mount |grep /dev/mmcda1 > /dev/null
then
HAVE_SDMEMORY="y"
BUS="0"
SLOT="0"
export HAVE_SDMEMORY BUS SLOT
/usr/sbin/sdiomgr sdcard detach
fi
これでうまくいきました。サスペンドし、レジュームしたときに SD のアイコンが一度消えて、現れます。
ちなみに、4GB の SD カードも認識しています。
written by sirius
[りなざう ]
[この記事のURL ]
[コメントを書く ]
[コメント(0) ]
[TB(0) ]
この記事へのトラックバックPingURL