はじめに
Let's Note CF-N10, CF-S10はXubuntu18.04LTSをインストールした場合、そのままではサスペンドから正常に復帰できません。他の機種(CF-B11、CF-NX、CF-SX等)でも同様の問題が発生した場合、今回の方法で解決するものと思います。これはカーネルの再構築で直ります。
問題の詳細
状態としては、サスペンドからの復帰後ロック画面は出るのですが、キーボードとタッチパットが操作不能になります。ちょっとしたことですが、サスペンドからの復帰のほうが起動が速いですから、使えるようにしようと思います。。
カーネルの再構築
解決方法は先人の非常に素晴らしい記事Let's Note CF-B10 のサスペンド問題と同じになります。
記事の内容とほぼ同じの方法で成功できたため、18.04LTSで修正が必要な箇所以外は引用させていただきました。更に詳しい内容については上の記事に書かれていますので是非ご覧ください。
この記事は手順のまとめのみを書いています。
まず最初にルートになります
$ sudo -s
再構築に必要なパッケージのインストールをします
ここでxubuntu18.04の場合引用元の記事とすこしだけ違いがあってlibqt3-mt-devがないため除いています。さらにlibssl-devがあとで必要になるため入れておきます。
apt-get install build-essential kernel-package libssl-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のコピー
(デフォルトの 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
(オプション)CF-N10,S10のCPUへの対応
やると速くなるらしいです。コンパイルは非常に時間がかかるためやっておきましょう。当方の環境では特に問題はありませんでした。
(ついでにカーネルをいじる場合:なくても良いと思う)
# make menuconfig (or # make xconfig)
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 を使う場合は周波数が低い方がいいみたい。
カーネルのコンパイル
とても時間がかかりますので、時間があるときにやったほうがいいと思います。3時間程度かかると思います。
(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
おわりに
カーネルのコンパイルと聞くとなかなか、大変に思えますが非常に簡単に行なえます。同じ問題で困っている方がいましたら是非やってみることをおすすめします。