作成日:2003/07/08
更新日:2003/07/16
カーネルは 2.4.21 に変更してある.googleさんに聞いて,以下のものが必要だということが判明.
Software suspend のパッチについては,2.4.21 に対しては,まだ,pre-release 版へのパッチしか無いが,大丈夫だろうと,patch-acpi-acpi20020918-swsusp15.gz をダウンロードして適用してみたものの,コンパイルの段階で失敗する.やはり,バージョンの違うものに無理矢理パッチをあててもダメか.
モノがモノだけに無理は禁物.2.4.21acpi 用のパッチが出るのを待つかとも思ったが,バッテリー残量だけでも確認できるようにしておきたいので,software suspend パッチはとりあえず見送って,acpi パッチだけをあてることにする.
# 古いソースツリーを温存してkernel sourceを展開.別名にしておく. cd /usr/src mv linux-2.4.21 linux-2.4.21.org tar jxvf linux-2.4.21.tar.bz2 mv linux-2.4.21 linux-2.4.21-acpi mv linux-2.4.21.org linux-2.4.21 # パッチあて. cd linux-2.4.21-acpi gunzip -c ../acpi-20030619-2.4.21.diff.gz | patch -p1 # Makefile で EXTRAVERSION を "acpi" に設定 make xconfig emacs -nw Makefile # コンパイル time make dep clean bzImage modules modules_install install
うお!5分たらずでコンパイル完了,っと喜んだのも束の間.新しいカーネルで再起動して,バッテリーモニタを起動してみたが,認識されてない./proc/acpi も存在していないので,何か間違っている.
config でミスしたかと,再度 make xconfig してみたら,ACPIサポートのところで,CONFIG_ACPI のみが有効になっており,以下全てがグレーアウトしていてオプションが選べない状態になっている.
.config ファイルを見ると,ちゃんと CONFIG_ACPI_BATTERY=y とかなってるし,おっかしいなあと,いろいろいじった結果,CONFIG_SMP=y とすれば CONFIG_ACPI_BATTERY=y とかも(xconfig上で)有効になるみたい.
これでいいんだか.なんだか訳がわかりませんし,Z1R/PはSMPじゃないので気分が悪いのですが,一応この状態で再度カーネルを build してみる.
成功!(証拠)
今日はひとまずここまで.ACPI関連ユーティリティーの導入や,サスペンドの実現は後日挑戦
CONFIG_SMP=y としたカーネルでは,APMが無効にされて shutdown -h などで,自動電源断ができないというのは知っていたのだが,ACPIでも同じ症状がでた.ノートパソコンなので,結構shutdownするんだよね,これでは不便.
カーネルの Config を色々試して,# CONFIG_SMP is not set でも,CONFIG_X86_UP_APIC=y ならば ACPI のオプションが選択できて,有効になることが分かったのだが,自動電源断ができないのは相変わらず.
次に,RedHat のカーネルソース(2.4.20-18.9)でもACPIが有効にできるので,こちらで試したら,特にSMPやAPIC(ああ,ACPIだのAPICだの,ややこしい…)を有効にしなくても ACPI のオプションが選択できて,ACPI,電源断ともに有効なカーネルが出来た.
しかーし! ACPIが有効になっていることは,dmesg や /proc/acpi 以下で確認できているものの,今度は gnome-applets に含まれているバッテリーモニタで残量確認ができなくなった./proc/acpi 以下に現れるディレクトリ名やファイル名,ファイルのフォーマットが微妙に異なっているために,常に残量 0 と思ってしまうようだ.gnome-applets のソースに手をいれようかとも思ったが,それは最後の手段./proc/acpi 以下を見ればバッテリー残量は確認できるものの,やっぱり Desktop Workstation として利用しているので,リアルタイムかつグラフィカルに確認したい.
次に試したのは,linux-2.4.20 のオリジナルのソース + ACPI パッチ.これはあっさりうまくいきました.ACPIが有効になって,自動電源断もできるし,バッテリーモニタの表示も正常.当面はこれでしのぐか?
しかし,2.4.20 は RedHat-9 のデフォルトカーネルより古いし,セキュリティパッチも出ている.Ext3脆弱性のパッチをあててみたが,ACPIパッチと両立しなかった…
なんとか 2.4.21 でうまくいかないものかと,試行錯誤した結果,make xconfig の時に
とやれば良い判明しました.Config 関連のバグ … なのかな?
カーネルを最新テスト版のlinux-2.6.0-test1にしてみました.
パッチも要らず,Configの変な苦労も無く,問題なくACPIが使用できています.
最新安定版カーネル(linux-2.4.22)では,ACPIパッチは不要で,Configも何ら問題なくなりました.