Let's Note CF-B10 のサスペンド問題
この記事をもとにした作業の実行は自己責任でお願いします。
Let's Note B10 に Ubuntu をインストールすると、
サスペンドから復帰した後にキーボードとマウスが動かないことがあります。
うちでは、Ubuntu 11.04 と 12.04 に対してこの現象が出ました。
なお、抜けているバージョンは試してないだけで、
「現象が出ない」ということではありません。
カーネルの再構築をすると幸せになれるらしいので、やってみます。
ところで、この現象でキーボードとマウスが動かなくなったときには、
- USB接続のキーボードとマウスを差して再起動を実行する
- リモートログインして再起動
(対象機にopenssh-server をインストールしておいた上で、
リモートからログインできる環境が必要)
などで強制終了(電源スイッチによる終了)を回避できます。
カーネル再構築
以下、バージョンによって異なる場所は 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 でカーネルをいじる場合は、
以下をやると速くなって吉らしい。
- Generic-x86-64 --> Core 2/newer Xeon
左パネル "Processor type and features" を選んで、
右上パネル "Processor family" で変更する。
なお、"newer"かどうかは /proc/cpuinfo の "cpu family" を見て、
数字が 6 なら newer, 15 なら older だそうです。
- Timer frequency
デフォルトは 250 Hz ですが、デスクトップ用途には 1000 Hz が良いそうです。
ただし SMP を使う場合は周波数が低い方がいいみたい。
トラブルシューティング
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