2014/03/16

Let's note CF-S10上のLinuxで正常にサスペンドするために (Arch Linux用カーネル再ビルドスクリプト)

Let's note CF-S10シリーズではLinux環境でサスペンドすると、内蔵キーボードやトラックパッドが認識されなくなる不具合があります。(知っている人は知っていると思いますが...。)
参照: Ubuntu 日本語フォーラム - サスペンドから復帰後キーボードが認識されません

Ubuntuに限らず、Arch Linuxなどの他ディストリビューションでもこの問題が発生します。 (i8042に関する問題ですが、他のi8042搭載マシンでは問題ないらしく、CF-S10シリーズのみ発生します。)
カーネルのドライバを書き換えてビルドしなおせば対策できますが、アップデートの度に自分で書き換えるのはあまりにも面倒です。
(ちなみに先日、東京で学会発表する機会があって CF-S10を持っていったのですが、何日か前にカーネルのアップデートをしてから再起動せずにサスペンドして使っていたところ、この問題の影響で一部デバイスが認識されなくなり焦りましたw)

...ということで...ちょっと今更ですが、
Arch Linux環境向けにカーネルを自動で書き換えてビルドしなおすスクリプトを書きました。
行っている内容としては...
  1. Arch Linuxの公式リポジトリからPKGBUILDやpatchを取得。
  2. makepkgを用いてPKGBUILDから最新カーネルのソースコードを取得。
  3. 上記参照ページと同様に drivers/input/serio/i8042.c を書き換え。
  4. makepkgでビルドを実行してパッケージ化し、システムに上書きインストール。
    (尚、ビルドは4コア使うように設定してありますが、数十分を要します。)
となっています。

わざわざこの機種のためにAURにカスタムカーネルとしてパッケージを登録するのもよろしくないのかな...と思いつつ、このような方法を取ってみました。
今後、Linuxカーネルがアップデートされたときにもこのスクリプトを実行すれば、不具合対策済みカーネルで上書きできます(...できるはずです)。

尚、このスクリプトは特に自己責任でご利用ください
また間違いやもっと良い方法がありましたら、ご指摘をお待ちしております m(_ _)m

それでは♪

0 件のコメント:

コメントを投稿

お気軽にコメントをお寄せください m(_ _)m♪
"コメントの記入者"欄から[名前/URL]を選ぶと、登録なしでコメント投稿していただけます。