nDiki

2009年10月4日 (日)

ThinkPad X31sidLinux kernel 事情

ここ最近 ThinkPad X31Debian GNU/Linux sid が調子が悪い。 いろいろ調査・トライしてみている途中の状態をメモ

状況

  • いつごろからか、サスペンドしても ThinkPad X31 の月ランプが光らなくなった。
  • 8月19日ぐらい(から、使用中に Caps Lock キーが点滅してフリーズするようになった。(記事)。
  • 9月11日ぐらいから digiKam写真データを認識しなくなった(記事)。digiKam 更新で対応。
  • 9月23日ぐらいからサスペンドさせると復帰時に Caps Lock キーが点滅して Kernel panic になるようになった(記事)。
  • 9月29日に X があがらなくなった(記事)。こちらは xserver-xorg-core ダウングレードで対応。
  • Linux kernel 起動時に udev が「今の kernel だとデバイスあたりの処理がおかしくなるかもよ」というような警告を出すようになった。

アプリケーションや X の不具合などと重なって unstable 全開だ。

Linux kernel については各種パッケージの更新に追いつけなくなっているようなので、アップデートをかける必要がありそう。

Linux kernel 再構築

Debian GNU/Linux の標準イメージを使ってみたが、ThinkPad X31 では例によって ACPI では蓋の開閉でサスペンドしない。 APM を使うようにした Debian kernel パッケージ構築が必要。 しかし今年の2月に 2.6.26 をビルドした時(記事)から、いろいろ変更があったようで一筋縄ではいかなかった。 以下は最終的な手順(たぶん)。

 #apt-get build-dep linux-image-2.6.30-2-686
 #apt-get install linux-source-2.6.30 aufs-source
 #exit

 $mkdir -p /usr/local/src/linux
 $cd /usr/local/src/linux

 $tar jxvf /usr/src/linux-source-2.6.30.tar.bz2
 $tar zxvf /usr/src/aufs.tar.bz
 $emacs modules modules/aufs/Makefile
 $cd linux-source-2.6.30
 $cp /boot/config-2.6.30-2-686 .config
 $make menuconfig
 $make-kpkg clean

 MODULE_LOC=/usr/local/src/linux/modules fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image modules_image
 $fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image
 $cd ..
 $su
 #dpkg -i linux-image-2.6.30_sebastian.1.0_i386.deb aufs-modules-2.6.30_0+20090302-3+sebastian.1.0_i386.deb
 #update-initramfs -c -k 2.6.30
 #update-grub
  • aufs inotify を有効にする(記事)必要があるのだが、modules/aufs/debian/conf.mk が無くなっていた。modules/aufs/Makefile 側で同様の設定追加をする必要あり。
  • MADWIFI はコンパイルが通らなくなっていた。
  • 自前で作った linux-image の Debian パッケージが、initrd まわりの処理をうまくしてくれない。自分で update-initramfs した。

MADWIFI はもはやコンパイルが通らなくなっていた。 試してみたところ ath5k で通信できるようになっているではないか。modprobe ath5k すると wlan0 が使えるようになった(MADWIFI の時は ath0)。

initrd 関係は結構はまった。 最初いつも通りビルドして dpkg した後再起動したのだが、"Unable to mount root fs on unknown-block(0, 0)" が出て先にすすまない。 IDE まわりや ext2ext3 まわりを M から y にしても駄目。 何度か試しているうちに、 linux-image を dpkg --install した際に実行される update-grub のメッセージで自分で作った Linux kernel だけ initrd 関係の処理がされないことに気が付いた。 自前で update-initramfs したらようやく 2.6.30 が起動するようになった。

2.6.30 にすることで起動時の udev の警告は解消された。 しかしながらサスペンドはまだ駄目。 復帰時にフリーズする。 やはりパワー関係の処理があやしい。今は AC アダプタを外しても KPowersave は気付かない。

もう少しおっかける必要がありそう。

対応できるまではサスペンドできず。毎回起動したりシャットダウンしたりするの面倒くさーい。

スポンサード リンク
[ 10月4日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.228463s / load averages: 0.36, 0.52, 0.47
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker