自宅の玄箱は玄箱うぉううぉう♪で公開されているDebian環境をベースにして、apt-getで適宜upgradeを重ねたtesting環境なのだが、ある時期を境に、電源を切ることができなくなっていた。玄箱を接続しているACアダプタはスイッチがついているタイプなので、電源が切れなくても困るわけではないのだが、気持ち悪いので、何とかしたい状況が続いていた。
いろいろ状況を調査したところ、どうやらモジュールまわりの操作に軒並み失敗しているらしいことが判明。あるタイミングのupgrade以降、2.4カーネルではモジュールが扱えなくなってしまっていたらしい。
ということで、カーネルを2.6化することにした。
あまり手間をかけたくないうえ、危険を冒したくないので、
2.6化することにした。
まずは、手順にしたがって2.6化作業を行う。カーネル変更まではとくに問題なく完了。リブートしたところ、
何も操作できないので、一旦電源を落として再度起動したところ、とりあえずはssh接続できたが、uname -a したところ、どうやら2.4カーネルが動いているっぽいことがわかる。
root で、ブート時に行われる動作
insmod /lib/modules/2.4.17_kuro-box/kernel/loader.o kernel=/boot/vmlinux.bin
を直接実行してみたところ、
Kernel requires old insmod, but couldn't run insmod.modutils: No such file or directory
と返ってきた。まあ、そりゃ、モジュール系が失敗するんだから、これも失敗するのは仕方ないわな。
そこで、一旦 vmlinux.bin / System.map / .config の3ファイルを別ディレクトリ(とりあえずは/boot/TMP)に移す。再起動したところ、何事もなく2.4カーネルが起動する。
玄箱うぉううぉう♪で公開されているDebian環境に含まれる insmod を /boot にコピーし、
/boot/insmod /lib/modules/2.4.17_kuro-box/kernel/loader.o kernel=/boot/TMP/vmlinux.bin
とやってみたところ、無事 2.6 カーネルが起動した。
そこで、一旦/boot/TMPに移動しておいた3ファイルを/bootに戻し、rootで
/boot/insmod /lib/modules/2.4.17_kuro-box/kernel/loader.o kernel=/boot/vmlinux.bin
を行い、しばらく待ってみたが、
となると、疑うべきは起動スクリプト。ということで、起動スクリプトを読む。どうやら
という流れらしい。しかし、最後のブート処理で何かがループしてるのか、sshできない状況になっているらしい。
insmod で起動する新カーネルの runlevel を 2 でも 3 でもないものにしてみればいいのではないか、という考えが頭をよぎる。そこで、
(旧) OPTIONS="root=/dev/hda1" (新) OPTIONS="root=/dev/hda1 5"
したうえで再起動し、しばらく待って、恐る恐るsshで接続を試みたところ、
uname -a を行い、2.6系が動いていることを確認。
また、この状態で電源ボタンを長押ししたところ、しばらくして電源が切れた。
「試しに(3)」に記載の手順で動くようになった。
*Messages* の更新情報取得には、antenna.lirs もしくは index.rdfをご利用ください。 豪傑アンテナ の LIRSからも取得可能です。
同様の問題で、困っていた者です。<br>上記方法にて解決しました。ありがとうございました!
上記の書き込みをしたものですが、完全に解決したかに見えて、<br>実はリブートすると2.4カーネルに戻ってしまうという現象に見舞われています。<br>以下の玄人志向の公式サイトBBSに同一の症状を訴えている方も<br>いらっしゃるようです。<br>http://kuroutoshikou.com/modules/kurobbs/?tid=1145<br><br>もし、思い当たる節がありましたら、お力を拝借できれば幸甚です。