Let's Note CF-B10 のサスペンド問題

この記事をもとにした作業の実行は自己責任でお願いします。

Let's Note B10 に Ubuntu をインストールすると、 サスペンドから復帰した後にキーボードとマウスが動かないことがあります。 うちでは、Ubuntu 11.04 と 12.04 に対してこの現象が出ました。 なお、抜けているバージョンは試してないだけで、 「現象が出ない」ということではありません。 カーネルの再構築をすると幸せになれるらしいので、やってみます。

ところで、この現象でキーボードとマウスが動かなくなったときには、

などで強制終了(電源スイッチによる終了)を回避できます。

カーネル再構築

以下、バージョンによって異なる場所は x.x.x などと書いています。 適切なバージョンを選んでください。

(root になって作業をする)
$ sudo -s

(再構築に必要なパッケージのインストール)
# apt-get install build-essential kernel-package libqt3-mt-dev libncurses5-dev
# apt-get install linux-source-x.x.x
(linux-source-x.x.x をインストールすると /usr/src/linux-source-x.x.x.tar.bz2 ができる)

(場所を移動してソースを解凍)
# cd /usr/src
# tar xvjf linux-source-x.x.x.tar.bz2
# cd linux-source-x.x.x

(デフォルトの config ファイルを使う)
# cp /boot/config-x.x.x-yy-generic .config

(ここで suspend-resume問題に対応する)
# cd drivers/input/serio
# cp i8042.c i8042.c.orig (バックアップを取る)
# vi i8042.c

.resume = i8042_pm_resume,

の行を

.resume = i8042_pm_restore,

に変更する

(元に戻って configファイルを作る)
# cd ../../..
# make oldconfig

(ついでにカーネルをいじる場合:なくても良いと思う)
# make menuconfig (or # make xconfig)

(makeする)
# make-kpkg clean
# make-kpkg --initrd --revision=(適当な数字) kernel_image kernel_headers (1行で書く。とても時間がかかる)

(debができているのでパッケージインストールする)
# cd ..
# dpkg -i linux-image-x.x.x_(さっき決めた数字など).deb

(再起動したら新しいカーネルで起ち上っているか確認する)
# uname -a

make xconfig でカーネルをいじる場合は、 以下をやると速くなって吉らしい。

トラブルシューティング

Ubuntu 12.04LTS で linux-source-3.2.0 に対して、 sudo -s をせずに sudo で make していると、 最後のパッケージを作る段(make-kpkgの二つ目)になって
ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!
などと言われてコンパイルに失敗しました。 sudo -s で root になってから make-kpkg をやると吉です。
Last modified: Tue Apr 30 12:18:16 JST 2013