Last Updated at $Date: 2005/05/25 00:03:07 $.
作業開始.とりあえず, プレインストールされている Windows を起動して必要な諸元を確認する.
昨日は忙しくて,結局 Windows の起動画面を拝んだだけで終わってしまった.
さて,最初に危険な作業から先に処理しようと,BIOS アップデートを行う. 現段階なら,壊れても痛くも痒くもない. なお,起動時に F1 キーを押していると,BIOS メニューに入ることが出来るようだ.
LILO を MBR にインストールすると,もともとの MBR が破壊されるので, プレインストールソフト群の復旧メニューが現れなくなるらしい. そうなっても構わないように,Recovery Disk を作成しておくにする. 新しいフロッピーを用意して,起動時に F11 キーを押すと, 作成メニューに入ることができるので,その指示に従って作成した.
次に,ブート用のフロッピーを準備する.今回は,佐野さんの用意されている USB FDD に対応したイメージを利用した[注]. フロッピーを作成するためのコマンドは以下の通り.
sudo /etc/init.d/volmgt stop fdformat -v -U -d dd if=resc1440.bin of=/dev/fd0 bs=512 conv=sync eject fdformat -v -U -d dd if=root1440.bin of=/dev/fd0 bs=512 conv=sync eject fdformat -v -U -d dd if=drv14-1.bin of=/dev/fd0 bs=512 conv=sync eject
しかし,ディスクを起動可能に設定する個所でインストーラがループに入ってしまい, MBR に lilo をインストールできなかった.そこで, 以前に作成した GRUB を利用した boot disk を使って切り抜けた.
# dpkg --get-selections > file
ただし,# dpkg --set-selections < file # apt-get dselect-upgrade
kernel-image-*, pcmcia-modules-*, alsa-modules-*, userlink-modules-*
など,再コンパイルが必要なパッケージは,あらかじめリストから削除しておく.
それでも,既に存在しないパッケージが問題になる場合があるので,
以下のようにして個別に対処する.
# dpkg -l '*' | egrep '^in' # echo not-found-package unknown | dpkg --set-selections
xserver-xfree86
パッケージの設定に失敗したため,
X が正常に起動しなかった.以下のコマンドで再設定する.
チップセットのメーカとして,Silicon Motion を選択する必要がある. それから,Control + Alt + F1 などで他の仮想コンソールに一度移動してしまうと, X の画面に戻ることが出来ない.# dpkg-reconfigure xserver-xfree86
# dpkg-reconfigure locales
# adduser foo dialout # adduser foo audio # adduser foo src
.config
を参考にして,ACPI を有効にした kernel を作ってみるが,状況に変化なし.
以下の設定・調査を予定.
/etc/hosts
の編集
/etc/printcap
の編集
Woody 用の USB 対応インストールフロッピーは, 武藤さんによって作成 されているようです(2004年3月14日追記).
ACPI の調査を始める.ACPI 関係を全て組み込んだカーネル(2.4.18)を作成し,
acpid
をインストールすると,以下のような状況になった.
知り合いの人は「Kondara は suspend も出来てるよ」と言っていたので,Linux で ACPI も使えるようになったのだと安心していたのだが….さて,どうするべきだろう?
とにかく,suspend なり sleep なりが出来ないと持ち運び用マシンとしては致命的なので, Kondara のカーネルソース(1,2)を拾ってきて再構築してみる. 症状はさして改善された様子がないですね…,うーん.
仕方がないので,更に少し調べてみる.
echo 1 > /proc/acpi/sleep
というコマンドで sleep mode へ移行できるはず…らしいが,
画面が真っ白になっただけで,しかも元に戻ることができなかった.
真っ白になった状態で,Fn キーを押すと shutdown されてしまう.
echo 3 > /proc/acpi/sleep
としてみると,STR になったようだが,復活できず.
echo 4 > /proc/acpi/sleep
では,kernel がお亡くなりになった.
きっと,該当するディスク領域が存在しなかったからだろう.
というわけで,まだ Linux では全然動かない,ということなのでは? という気がしてきた…. うーん,これからどういう風に使うか,かなり悩んでしまう. こまめに電源を切るしかないのかなあ.
ext3 の設定を行う.最初に,kernel を再構築して ext3 FS を有効にしておく.
# tune2fs -j /dev/hda3 # tune2fs -j /dev/hda4 # perl -pi -e 's/ext2/ext3/;' /etc/fstab
ACPI4Linux で配布されている最新のパッチ(2002年3月8日版)を適用して kernel を再構築したところ,とりあえずバッテリーの状態は見えるようになった.
cat /proc/acpi/battery/BAT1/state
ただ,wmacpi
によるバッテリーの残量表示はまだ出来ない.
同時に,電源スイッチによる shutdown が出来なくなってしまった.
acpid
の設定を見直す必要がある?
s30 の PCMCIA は,従来の pcmcia-cs 付属のモジュールでは扱えないようだ.
wmacpi
を更新すると,正常にバッテリー残量が表示されるようになった.
wget http://www.ne.jp/asahi/linux/timecop/software/wmacpi-1.34.tar.gz apt-get source wmacpi cd wmacpi-1.33 uupdate ../wmacpi-1.34.tar.gz cd ../wmacpi-1.34 dpkg-buildpackage -us -uc -rfakeroot
/etc/acpi/default.sh
を編集し,電源スイッチで init 0
が実行されるようにした.
加えて,anacron
の設定を見直す必要がありそうだ.
現時点は,バッテリー動作時にも cron job が実行されてしまっているような気がする.
kernel を linux-2.4.19-pre7-ac3 に 更新する.主目的は,ac patch に採用された
Software Suspend
を試すことである.通常の手順にしたがって,
kernel を再構築し,/boot/grub/menu.lst
を以下のように編集した.
--- menu.lst.orig Thu Apr 18 08:35:34 2002 +++ menu.lst Sat May 4 00:42:21 2002 @@ -44,7 +44,7 @@ ## ## Start Default Options ## ## default kernel options ## e.g. kopt=root=/dev/hda1 ro -# kopt=root=/dev/hda3 ro acpi=on apm=off +# kopt=root=/dev/hda3 ro acpi=on apm=off resume=/dev/hda1 ## default grub root device ## e.g. groot=(hd0,0)
この後,以下のコマンドで software suspend が実行される.
# echo 4 > /proc/acpi/sleep
結果的には,うまく動かなかった.まず,suspend 自体は正常に動いているらしく, 上述のコマンド実行後,しばらくディスクアクセスが行われている形跡はある. その後,電源断は行われず,いきなり再起動が始まってしまう.再起動後, swap partition からのメモリ状況の回復は行われているらしく, OKey というメッセージが出力されるが,グラフィックアダプタの初期化が不十分なのか, ディスプレイの出力が回復しない.
ただし,これら全ての症状が software suspend patch の問題ではないと思う. 例えば,ディスプレイの出力が回復しない問題は, 仮想コンソールの移動時に X の描画が回復しない問題と同じではないかと思う. また,ac patch に採用されている ACPI ドライバは最新のものではないため, 電池残量を正常に取得できないなどの問題がある. ACPI ドライバと software suspend の双方が最新版になっている patch があれば都合が良いのだが.
仮想コンソールの移動時に X の描画が回復しない問題について,
「s30 で XFree86-4.1.0 を使う場合には,Section "Device"
に以下の指定を加える必要がある」という記述を見掛けたので,
試してみた.しかし,私の環境では症状は改善されなかった.
Option "UseBIOS" "False"
とりあえず,ACPI ドライバを最新版(2002年4月4日版)に更新した.
メールを namazu で全文検索できるようにしている. インデックスの作成は cron で定期的に行うようにしているので, インデックスの作成速度はこれまで気にしていなかったのだが, ある事情でインデックスを作り直さなければいけないことになり, ちょっと事情を調べてみることにした.
Tips
の記述によれば,モジュールを利用するように設定すれば動作速度が向上するらしい.
そこで,libtext-chasen-perl パッケージを導入し,以下のように
/etc/namazu/mknmzrc
を編集した.
--- mknmzrc 2002/05/06 15:30:16 1.1 +++ mknmzrc 2002/05/06 15:56:08 1.2 @@ -184,16 +184,19 @@ # ChaSen 1.51 or later (simple wakatigaki) # # $CHASEN = "/usr/bin/chasen -j -F '\%m '"; +$CHASEN = "module_chasen -j -F '\%m '"; # # ChaSen 1.51 or later (with noun words extraction) # # $CHASEN_NOUN = "/usr/bin/chasen -j -F '\%m %H\\n'"; +$CHASEN_NOUN = "module_chasen -j -F '\%m %H\\n'"; # # Default Japanese processer: KAKASI or ChaSen. # # $WAKATI = $KAKASI; +$WAKATI = $CHASEN; #===================================================================
確かに,chasen の fork に係る時間が短縮され,感覚的には2倍程度速くなった気がする.
ALSA の設定を行った.
alsaconf
を実行して,
Intel_i810/810E,i820,i830,i840,MX40
を選択.
--- 0.9~ Mon May 13 22:41:26 2002 +++ 0.9 Mon May 13 22:42:59 2002 @@ -2,7 +2,7 @@ # --- BEGIN: Generated by ALSACONF, do not edit. --- # --- ALSACONF verion 0.4.3b --- alias char-major-116 snd -alias snd-card-0 snd-card-intel8x0 +alias snd-card-0 snd-intel8x0 alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss
/etc/init.d/alsa start
サウンドの設定に限らず,PCI バスに接続されているデバイスの設定で分からないことがあれば,
lspci
コマンドが大変便利.lspci
を実行すると,
PCI バスに接続されているデバイスを調査・表示してくれるので,
PC の諸元や規格表を調べる手間が省ける.
ようやく,Software Suspend が使えるようになった. 「VAIO-U1 で Linux インストール/設定メモ」を参考にして, kernel-2.4.18 + acpi-20020726 + swsusp という組合わせを試してみたところ, 無事に以下のコマンドで software suspend できた.
# echo 4 > /proc/acpi/sleep
Software suspend は,通常の suspend とはかなり異なる原理で動いているので,
停止・起動後には system clock がおかしくなってしまう(少なくとも現時点では).
そのため,再起動後には CMOS clock を参照して system clock を修正する必要がある.
とりあえず,/etc/acpi/default.sh
と /etc/acpi/swsusp.sh
を組み合わせて,sleep ボタンが押されると自動的に software suspend
が実行されるように設定してみた.
大雑把な感じで言えば,software suspend は停止に15秒,起動に30秒ほど必要とする. 通常の停止・起動には45秒から60秒程度かかるので,若干高速化されたわけだが, 時間的な問題としてはあまり大差はないようだ.ただ,実行中の process を停止することなく suspend できるようになった点は非常に便利だと思う.
全自動でネットワークを切り替える方法があるというのを,初めて知った.
これまで sarge で使い続けていたのだが,sid に更新した. すると,libc の更新(2.2.5 -> 2.3.1)の影響を受けて Wnn6 のライセンスサーバー(dpkeyserv)が segmentation fault するようになってしまった.
strace で追ってみると,どうも /lib/ld-linux.so.2
を読み込もうとして落ちているらしい.しかし,このバイナリを
ldd で調べると not a dynamic executable と表示されるので,どうにも事情が良く分からない.
しかしまあ,こういう原因ならば,何とかして古いライブラリを dpkeyserv に使わせることが出来れば解決しそうだと考えた.というわけで,
mkdir /usr/local/dpkey dpkey -x libc6_2.2.5-14.3_i386.deb /usr/local/dpkey mkdir /usr/local/dpkey/etc cp -p /etc/hosts /etc/host.conf /etc/nsswitch.conf /etc/passwd /etc/services /usr/local/dpkey/etc
mkdir -p /usr/local/dpkey/usr/local mv /usr/local/OMRONDp /usr/local/dpkey/usr/local chroot /usr/local/dpkey /usr/local/OMRONDp/Dplinux/dpkeyserv
これで何とか動くようになったようだ.
sarge の glibc が改善されたので,現在では, この対策は不要になっている(2004年3月11日追記).
Linux-2.6 は power managment 周辺が混乱しているようだ. 解説記事(その1, その2)によれば, なんと3通りの実装があるらしい. 比較表を見て, よく考えよう.
久しぶりに kernel を 2.4.24 + swsusp-2.0 に更新. なお,カーネルオプションの書式が変更になっているので注意が必要.
旧: resume=/dev/hda1 新: resume2=swap:/dev/hda1
メモリイメージが圧縮できるようになったとのことなので, ディスクの書き込み時間が節約されて,動作が速くなることを期待していた. しかし,実際に試したところでは, サスペンド・レジュームともに40秒程度かかっているので, 以前と大差ないか,かえって遅くなっているような気がする. ディスクの書き込みに要する時間よりも,圧縮に要する時間の方が効いているのだろう.
おしまいの日が来た.
所属の変更にともない,このマシンも返却することになったので,Linux
領域を完全に抹消した.遊び半分に以下の手順を実行してみると,
システムの入っていたパーティション(= /dev/hda3
)も消去できた.
kill 諸々のプロセス swapoff shred -n 2 -z -v /dev/hda4 /dev/hda1 /dev/hda3
/boot/
config-2.4.24
(support software suspend 2.0)
config-2.4.19-acpi20020918
(support software suspend)
config-2.4.18-acpi20020726
(support software suspend)
config-2.4.18-acpi20020503
config-2.4.18-acpi20020404
config-2.4.18
/etc/
X11/
XF86Config-4
for XFree86-4.1.0
Xmodmap
Xsession.d/40custom_load-xmodmap
acpi/
modules
[Top] / [Debian Tips] / [ThinkPad T42p,X31,X20,s30,560 / Portage SS3330]