今回それをする機会がありましたので、あらすじですが以下に列記しておきます。
- 電源ON/OFF
電源スイッチのみでこれを行うには acpidが必要です。4.20p1JP では初めから入ってます。手で押すわけにはいかないので、電源スイッチの線を出して、親機(プログラマブル・シーケンサー)などからこれを制御します。
システム全部をリマスタして個人保存ファイルを使わないようにしようとすると問題が出ます。電源OFFのときに、例の「セッションを保存しますか?」のダイアログが出て、すんなり落ちてくれません。
今回修正したpupsaveconf-1.2 を導入しました。/etc/rc.d/pupsave.confに「PRECHOICE=no」と書いてリマスタに入れておけばオッケーです。
簡便には 32MBくらいの小さな個人保存ファイルを作っておくことでもよいと思います。この場合、Puppyイベントマネージャーでセッションの保存間隔を0にしておきます。設定ファイルは /etc/eventmanagerです。
BIOSの設定によって、電源ボタンを使わずに、AC電源を直接に入り/切りするという荒技も可能です。データをディスクやフラッシュメモリに保存するようなアプリの場合には、書き込むごとにファイルをクローズ、あるいはsyncするとともに、電源を切断するタイミングがデータ保存動作と重ならないような処置が必要です。 - アプリケーションの自動起動
Xアプリなら /root/Startup にそのシンボリックリンクを置くだけでオッケー。 - マウスの設定
USBマウスを付けてXを設定し、これを抜いて次に起動すると、マウスの設定を尋ねられます(4.20p1の場合)。/etc/mousedevice_stickyというファイルがあって、ここに「no」と書いておけばこれが避けられます。
ところで、マウスポインタを表示させないためにはどうしたらいいんでしょう? - スクリーンセーバー
スクリーンセーバーを無効にしておかないと、ディスプレイだけを繋いでモニターすることができません。 - Xの設定
PCが固定の場合は以上でだいたいすみますが、PCを交換するケースを考えるともう少し留意点が増えます。
XサーバーはVesaにし、800x600あたりにしておけばたいてい大丈夫でしょう。 - LANインターフェース
有線LANでDHCPだと楽そうです。ただし、パピーのネットワークウィザードはLANインターフェースのMACアドレスを覚えており、LANインターフェースのハードが変わると自動接続してくれません。
EDIT: ネットワークウィザードを最新(net-setup-20100225)にすれば大丈夫。
viewtopic.php?t=1679
/etc/network-wizard/network/interfaces 内に <MACアドレス>.conf の名前でファイルが置かれています。その中身は、空白一行(DHCPの場合?)と2行目に「IS_WIRELESS=''」(有線であるという印?)です。
同じ内容のファイルを、そのハードの <MACアドレス>.conf の名前で置いておけば、 (DHCPであれば)自動接続できます。LANインターフェースはたいてい eth0 なので、ifconfig eth0 でそのMACアドレスを調べることができます。
この動作をするスクリプトを /etc/rc.local内に組んでやればハードの変更に対処できます。
注意:このスクリプトはネットワークインターフェースがただ一つであることを前提としています。2番目以降のイーサネットインターフェース、無線LANアダプタなどがあった場合、それらの設定は消去されます。コード: 全て選択
# auto connect eth0 NETWORKING=$(cat /etc/NETWORKING 2>/dev/null) if echo $NETWORKING | fgrep -q -i 'yes'; then INTERFACES=/etc/network-wizard/network/interfaces HWADDRESS=$(LANG=C ifconfig eth0 | head -n 1 | tr -s ' ' | cut -d' ' -f5) if [ "$HWADDRESS" != "" ] ; then rm -f $INTERFACES/*.conf # erase other settings echo "\nIS_WIRELESS=''" > $INTERFACES/$HWADDRESS.conf fi fi
- ドライブレター
PCに実装されるハードディスクやUSBデバイスの存在によってドライブレターが変わることがあります。
FrugalインストールでGrub4Dosを使えば起動にはあまり問題はありません。
アプリケーションで使用するドライブについては、起動時にこれらを調べて調整するスクリプトを、/etc/rc.d/rc.localなどに用意することが必要になるかもしれません。
起動したパピーがあるドライブ名とパーティションは /etc/rc.d/PUPSATE を読むと分かります。 - シリアルデバイスなど
アプリケーションがシリアル通信(RS232C)を使っているが、PCにそのポートが無い場合、USB←→シリアル変換器を用いるのが一般的です。
この場合にデバイス名が変わることがあります。内蔵インターフェースなら /dev/ttyS0 など、USBは /dev/ttyUSB0 などが一般的です。
これもスクリプトで対処することになるでしょう。
次のシェルスクリプトは、dmesgから、USB←→シリアル変換器のデバイス名を取得する例です。差されているUSB←→シリアル変換器が1つでないと正しく動かないと思います。コード: 全て選択
TTY=ttyS0 TTYUSB=$(dmesg |grep '^usb.*tty'| tail -n 1| sed -e 's/[ ]*$//' -e 's/^.*[ ]//') [ "$TTYUSB" != "" ] && TTY="$TTYUSB"
- サウンド
音量調節をすると /etc/asound.state というファイルができます。
ここにサウンドカード(チップ)名が記録されます。
ハード依存しないためには、リマスタするさいにこのファイルを取り除いておかねばなりません。