昨日、CLIEとHotSyncできなかったので、もともとUSBまわりが不安定だったし kernel を 2.4.25 に上げておくことにする。
do_symlinks = Yes postinst_hook = /sbin/update-grub postrm_hook = /sbin/update-grub do_bootloader = no
shfs も一緒に入れておく。今回は pcmcia-cs を使わずに kernel のものを入れておく事にする。
$su #(apt-get build-dep kernel-source-2.4.25) #apt-get install kernel-source-2.4.25 #apt-get install shfs-source shfs-utils #exit $mkdir -p /usr/local/src/linux $cd /usr/local/src/linux $tar jxvf /usr/src/kernel-source-2.4.25.tar.bz2 $tar jxvf /usr/src/shfs.tar.bz2 $cd kernel-source-2.4.25 $make menuconfig $ make-kpkg clean $MODULE_LOC=/usr/local/src/linux/modules \ fakeroot make-kpkg --revision=sebastian.1.0 \ kernel_image modules_image $cd .. $su #dpkg -i kernel-image-2.4.25_sebastian.1.0_i386.deb #dpkg -i shfs-module-2.4.25_0.32-2+sebastian.1.0_i386.deb
reboot
最新のにしておく。
mkdir -p /usr/local/src/sf cd /usr/local/src/sf cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi co madwifi cd madwifi make su make install modprobe -a ath_pci lsmod dmsg
本当は cvs checkout はリブート前、ネットワークが使えている間にしておく必要があった。 前の madwifi ソースを make install して一旦接続できるようにしてから、cvs の最新のを取り直してあらためて make install
ThinkPad X31 で tpctl を使ってみるために thinkpad-modules を入れる。 ついでに Linux kernel も 2.4.25 から 2.4.26 に上げておく。
2.4.26 から IBM PCI Hotplug driver (CONFIG_HOTPLUG_PCI_IBM) が追加されたようだ。 ThinkPad には関係あるのか? 以前から hotplug が不安定だった(今日はいつになく不調でフリーズまでしたし。Caps Lock ランプが点滅してた。)ので、有効にしておいてみた。
do_symlinks = Yes postinst_hook = /sbin/update-grub postrm_hook = /sbin/update-grub do_bootloader = no
一緒に入れるモジュール
pcmcia-cs は使わず、kernel のものを使用。
$su #apt-get build-dep kernel-source-2.4.26 shfs-source thinkpad-source #apt-get install kernel-source-2.4.26 #apt-get install shfs-source shfs-utils #apt-get install thinkpad-source tpctl #exit $mkdir -p /usr/local/src/linux $cd /usr/local/src/linux $tar jxvf /usr/src/kernel-source-2.4.26.tar.bz2 $tar jxvf /usr/src/shfs.tar.bz2 $tar zxvf /usr/src/thinkpad.tar.gz $cd kernel-source-2.4.26 $make menuconfig $make-kpkg clean $MODULE_LOC=/usr/local/src/linux/modules \ fakeroot make-kpkg --revision=sebastian.1.0 \ kernel_image modules_image $cd .. $su #dpkg -i kernel-image-2.4.26_sebastian.1.0_i386.deb #dpkg -i shfs-module-2.4.26_0.33-3+sebastian.1.0_i386.deb #dpkg -i thinkpad-modules-2.4.26_5.1-1+sebastian.1.0_i386.deb
リブート後、MADWIFIドライバを作り直すのでリブートの前に cvs から checkout だけ済ませておく。
リブート。
mkdir -p /usr/local/src/sf cd /usr/local/src/sf cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi co madwifi cd madwifi make su make install modprobe -a ath_pci lsmod dmsg
ifup ath0 したらエラー
socket: Protocol not available - make sure CONFIG_PACKET and CONFIG_FILTER are defined in your kernel configuration!
2.4.25 の設定を見ながら 2.4.26 を設定した際、CONFIG_FILTER 有効にし忘れていた。 kernel ビルドからやりなおし。
[ Debian GNU/Linux ]
いろいろ試してみたが Skype で音声通話ができない。
xmms などで音は出ているし、ThinkPad X31内蔵マイクの音声もちゃんとひろってスピーカーから聞こえているので Linux 側としてはドライバなどきちんと動いている様子なのだが。
Skype のサイトによると OSS を使用するとある。 現在 Linux kernel の OSS を使っているんだけれどな。 Web で他を検索すると ALSA を入れて使えるようにしている書き込みとかをみかける。 Skype から ALSA の OSS エミュレーションを使うようにするということか。
ということで ALSA に切り替えることに。 alsa-source Debian パッケージをインストールしてから、いつもと同じ流れで Debian kernel パッケージ構築。
最初 ALSA で全然鳴らなくて困ったのだが、alsaconf を実行する必要があったのを知らないだけであった。 これを実行したらきちんと音が出るように。
これで Skype を試してみたいのだが相手がいないので、来週会社がはじまるまでテストを保留。
ThinkPad X31 用に 2.6.15 の Debian kernel パッケージ構築を行う。 インストールしてある Debian 標準の 2.6.15 のパッケージの設定 /boot/config-2.6.15-1-686 をベースに設定を行いビルド。
#apt-get build-dep linux-image-2.6.15-1-686 #exit $mkdir -p /usr/local/src/linux $cd /usr/local/src/linux $tar jxvf /usr/src/linux-source-2.6.15.tar.bz2 $cd linux-source-2.6.15 $cp /boot/config-2.6.15-1-686 .config $make menuconfig $make-kpkg clean $fakeroot make-kpkg --revision=sebastian.1.0 kernel_image $cd .. $su #dpkg -i linux-image-2.6.15_sebastian.1.0_i386.deb
ブート後 Kernel panic。
標準の設定では IDE 関係がモジュールになっているのを見落していた。もう一度設定を修正してビルドしなおして起動。 Linux を使い始めたころ ext2 をモジュールにして失敗したことがあり、ファイルシステム関連は忘れずチェックするようにしているのだが、IDE 関連はノーチェックだった。
module-assistant prepare module-assistant auto-install madwifi
2週間ほど前に ThinkPad X31 (2672-PHJ) の Linux kernel を 2.4.27 から 2.6.15 にしたのだが、その頃からか何となく動作がもったりするようになった。 コマンドを実行した際のレスポンスが遅くなったし、amaroK での音楽再生時にもちょっと負荷が上がるとすぐ音が切れるようになってしまった。
まさか kernel の性能が落ちたとは考えにくいので、設定のせいであろう。 感じからして、HDD まわりのようだ。
もしかして DMA?
#hdparm -t -d /dev/hda /dev/hda: using_dma = 0 (off) Timing buffered disk reads: 8 MB in 3.10 seconds = 2.58 MB/sec
ビンゴ!
#hdparm -t -d1 /dev/hda /dev/hda: setting using_dma to 1 (on) HDIO_SET_DMA failed: Operation not permitted using_dma = 0 (off) Timing buffered disk reads: 8 MB in 3.05 seconds = 2.62 MB/sec
おや?
[Device Drivers] ---> [ATA/ATAPI/MFM/RLL support] ---> [Intel PIIXn chipsets support] (CONFIG_BLK_DEV_PIIX) がモジュールになっていたのが問題のようだ。
組み込みにして Debian kernel パッケージ構築しなおしてインストール・再起動。
hdparm -t -d /dev/hda /dev/hda: using_dma = 1 (on) Timing buffered disk reads: 84 MB in 3.05 seconds = 27.56 MB/sec
なおった。
[ hdparm ]
ThinkPad X31 に入れている Debian GNU/Linux sid の Linux kernel を随分アップデートしていなかった(2.6.17 を使用中)。 今日 aufs を入れついでに、一緒に最新(2.6.23)をビルドすることにした。 Debian kernel パッケージ構築は去年の8月以来。
今回は linux-patch-aufs を入れておいて、aufs 用のパッチを当てる。
#apt-get build-dep linux-image-2.6.23-1-686 #apt-get install linux-source-2.6.23 linux-patch-aufs #exit $mkdir -p /usr/local/src/linux $cd /usr/local/src/linux $tar jxvf /usr/src/linux-source-2.6.23.tar.bz2 $cd linux-source-2.6.23 $make menuconfig $make-kpkg clean $fakeroot make-kpkg --added-patches put_filp,lhash,splice,ksize,sysfs_get_dentry --revision=sebastian.1.0 kernel_image $cd .. $su #dpkg -i linux-image-2.6.23_sebastian.1.0_i386.deb
パッチが一部 2.6.22 用で 2.6.23 には当たらなかったが、よしとしておく。 ここで再起動。次に MADWIFI と aufs をインストール。
module-assistant prepare module-assistant auto-install madwifi module-assistant auto-install aufs
いつも入れている shfs も同様に入れようと思ったがこちらはコンパイルエラー。 頻繁に使うわけではないので、とりあえずほっておくことにする。
コンパイルが面倒なのでそろそろ Debian 公式のを使おうかと思ったが、試してみたところ
ということ NG。 やはり自前でビルドしなければならないことを再確認。
ThinkPad X31 に入れている Debian GNU/Linux sid でしばらく Linux kernel 2.6.23 を使っていたが、TrueCrypt 6.1a を入れたら「2.6.23 以下じゃヤバいよ」と表示されたので 2.6.26 にアップデートすることにした。 Debian 標準イメージを入れてみたが、やはり今まで通りサスペンドできないので、今回もビルドしなおし。
#apt-get build-dep linux-image-2.6.26-1-686 #apt-get install linux-source-2.6.26 aufs-source madwifi-source #exit $mkdir -p /usr/local/src/linux $cd /usr/local/src/linux $tar jxvf /usr/src/linux-source-2.6.26.tar.bz2 $cd linux-source-2.6.26 $cp /boot/config-2.6.26-1-686 .config $make menuconfig $make-kpkg clean $fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image $cd .. $su #dpkg -i linux-image-2.6.26_sebastian.1.0_i386.deb
最初は 2.6.23 の時のソースツリーで make menuconfig したのと見比べながら素から設定したのだが起動中 hda のハードウェアの認識(?)で止まってしまった。 なのでとりあえず起動する .config は Debian 標準イメージのものをベースにすることにした。 変更は ACPI を外して APM を追加した程度。
Debian 標準イメージは IDE も ext3 もモジュールになっていて initrd 使わないと起動できないので今回から --initrd を指定してビルドすることにした(一度忘れてビルドして起動したら何度かアチャーしたことのある kernel panic になった)。
再起動。起動後 cpufreqd が動かなかったが、modprobe speedstep-centrino したら今までどおり cpufreqd が立ち上がって省電力化できた。
次に MADWIFI をインストール。こちらも問題なく接続。
#module-assistant prepare #module-assistant auto-install madwifi
aufs は前回の方法で udba=inotify できるモジュールを作成。
TrueCrypt もテストして警告を出さなくなっていることを確認。 火曜日ぐらいから、ちんたら何度かビルドしないしながら昨日ここまで辿りついた。 めでたしめでたし。
しかし Debian 標準イメージの .config 級の設定だとビルドに1回2時間前後だったかかかるようになった(nice 下だけれど)。 トライアンドエラーしはじめるとかなり時間がかかるな。
ここ最近 ThinkPad X31 の Debian GNU/Linux sid が調子が悪い。 いろいろ調査・トライしてみている途中の状態をメモ。
アプリケーションや X の不具合などと重なって unstable 全開だ。
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
MADWIFI はもはやコンパイルが通らなくなっていた。 試してみたところ ath5k で通信できるようになっているではないか。modprobe ath5k すると wlan0 が使えるようになった(MADWIFI の時は ath0)。
initrd 関係は結構はまった。 最初いつも通りビルドして dpkg した後再起動したのだが、"Unable to mount root fs on unknown-block(0, 0)" が出て先にすすまない。 IDE まわりや ext2、ext3 まわりを M から y にしても駄目。 何度か試しているうちに、 linux-image を dpkg --install した際に実行される update-grub のメッセージで自分で作った Linux kernel だけ initrd 関係の処理がされないことに気が付いた。 自前で update-initramfs したらようやく 2.6.30 が起動するようになった。
2.6.30 にすることで起動時の udev の警告は解消された。 しかしながらサスペンドはまだ駄目。 復帰時にフリーズする。 やはりパワー関係の処理があやしい。今は AC アダプタを外しても KPowersave は気付かない。
もう少しおっかける必要がありそう。
対応できるまではサスペンドできず。毎回起動したりシャットダウンしたりするの面倒くさーい。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。
#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。
ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。
※内容は個人的見解であり所属組織とは関係ありません。