知人に貸し出し中。更新は完全に止まります。あしからず Last update: Jan 17 2003
ACPI 絡みの問題もあるので、(いつかは抹消する予定の) Windoze 領域を 最小限残すこととする。以下のように partition を切る。
Old partition: | 2000.3MB |
Cylinder: | 255 |
New partition: | 7585.4MB |
Partition table
Start | End | Start Sector | Num. of Sectors | MB |
Head Cyl. Sector | Head Cyl. Sector | |||
1 0 1 | 254 254 63 | 63 | 4096512 | 2000 |
0 255 1 | 254 1221 63 | 4096575 | 15534855 | 7585 |
Plamo2.2 の CDROM を Mac OS X on PBG4 に。Let's note(Linux) と PBG4を クロスケーブルで繋ぎ Plamo2.2:/AT/Install/Net/bootdsk を Floppy disk に 書き込む。
dd if=/mnt/Plamo2.2/AT/Install/Net/bootdsk of=/dev/fd0
作成した bootdsk で boot する。( f キーを 押しながら電源ボタンを押すと、floppy から boot する。)
Plamo2.2 の CDROM をコピーする領域として 2GB(/dev/hda2) /dev/hda3 を拡張として残り領域を割り当てた。(後に変更)
デバイス Begin Start End Block Id System /dev/hda1 1 1 255 2048256 c Win95 FAT32(LBA) /dev/hda2 256 256 510 2048287+ c Win95 FAT32(LBA) /dev/hda3 511 511 1222 5719140 5 Extended /dev/hda5 511 511 549 313236 83 Linux native /dev/hda6 550 550 583 273073+ 82 Linux swap /dev/hda7 584 584 838 2048256 83 Linux native /dev/hda8 839 839 1222 3084448 83 Linux native
デバイス Begin Start End Block Id System /dev/hda1 1 1 255 2048256 c Win95 FAT32(LBA) /dev/hda2 256 256 1222 7767427+ 5 Extended /dev/hda5 256 256 294 313236 83 Linux native /dev/hda6 295 295 328 273073+ 82 Linux swap /dev/hda7 329 329 583 2048256 83 Linux native /dev/hda8 584 584 838 2048256 83 Linux native /dev/hda9 839 839 1222 3084448 83 Linux native
alias eth0 eepro100
sendmail の停止。inetd.conf の編集。仮想 terminal数を 3に。 /etc/rc.d/rc.inet2 の portmap, mountd, nfsd をコメントに。 ええい、inetd も止めてしまえ。
make all sh MAKEDEV-cupuid-msrした後、./longrun -p を実行すると「CONFIG_X86_CPUID=y にしろ」と表示。
insmod /lib/modules/2.4.9/kernel/arch/i386/kernel/cpuid.o insmod /lib/modules/2.4.9/kernel/arch/i386/kernel/msr.o(後に、これらは kernel に組み込む。)
ところがここで、問題が発覚。kernel の build 中に Error Invalid inode ... なるエラーが頻発。(@@;; inode がどうたらと言っているので disk 周りの障害の可能性もあり。
他の可能性としては、memory の障害、swap partition の障害、 Crusoe 用に build した実行中の kernelの問題などがあり得るか。
確証はないが、reboot した後には障害が発生しにくいように感じる。 曖昧:)
Crusoe 用でない kernel (2.2.19) 上で、Crusoe 用の kernel (2.4.10) を build した場合、エラーは発生しなかった!! このため、先に Crusoe 用に作った kernel (2.4.9) に何らかの問題があった 可能性がある。
2.2.19 kernel 上で 2.4.10 を error なく作成できたことだけは確か。
どこぞの France の人が作っていた XF86Config を参考にさせてもらう。 1280x600 はうまく表示できるようになった。但し、X の終了時 画面が乱れることがある。
スクロールボタンを使えるように。但し、右スクロールボタンを 中ボタンとして使えるようにした。
既存のファイルを backup するために、tar.gz を作成する際に warning らしきものが表示される。どうやら system 負荷 が高くなったときに kernel が warning もどきを吐き出している模様。
このメッセージは、kernel 作成時に 表示された error メッセージと 雰囲気が似ている。(あぁ、なんていいかげん。。。)
kernel 作成時に出ていた error の原因は crusoe 用の kernel が原因 かもしれない。この件は pending にして、次回 kernel の build を行う際 に longrun command performance に制限を付けてやってみよう。
./longrun -s 0 66 (通常 performance は 0 から 100 )
この際、patch を当てた kernel 2.4.9 を rebuild する必要があるので、 rebuild 前に performance に制限を付けてみたところ、 エラーは発生しなかった。ということで、(絶対確実とは言えないが) 上述のエラーはハードウェア的な障害によるものではなく、 以前 crusoe 用に作った kernel に問題があったか、 システム負荷が高すぎたことかが、原因と思われる。
magic SysRq キー を生かした kernel を作成した。しかし 実際にどのキーに SysRq キーが割り当てられているかわからなかったので、 sysvinit-2.76 に swsusp 用パッチを当て作成した shutdown command で software suspend を実行してみた。
************* /var/log/messages から **************** Sep 28 21:47:35 lb kernel: klogd 1.4-0, ---------- state change ---------- Sep 28 21:47:35 lb kernel: Kernel logging re-started after SIGSTOP. Sep 28 21:47:35 lb kernel: Strange, keventd not stopped Sep 28 21:47:35 lb kernel: Strange, kreiserfsd not stopped Sep 28 21:47:35 lb kernel: Suspend Machine: Continuing normal operation *****************************************************途中までうまく行ったように見えたが、 上述のように keventd と kreiserfsd が止まらず失敗。suspend 失敗後、 normal 状態に戻ったかのように見えたが、kreiserfsd が高負荷状態に なっており大慌てで reboot した。 reiserfs にしているのがまずいのかもしれないが keventd も止められなかったみたいなので多分無理か。 今のところあきらめることとする。
modules の load が必要。以下のように
modprobe usb-ohci modprobe usb-storageとすると、 usbcore, usb-ohci, scsi_mod, sd_mod, usb-storageが load される。mount /dev/sda /mnt で mount できる。
ACPI BIOS で irq が割り当てられない。ACPI が何とかならんと 無理か。kernel option の pci=biosirq をやってみたが、 boot できない。
2.2.19 あたりだと、lostirq2.c なる irq を割り当てる ためのコードを使えばいけるとの事だけど、 2.4 系では構造体 pci_dev の型が変わっており compile できない。
pci_dev の構造体をきちんと調べて lostirq2.c を書き換えることは できそうに思われる。が、優先度は低いので(今は)やらない。
suspend や Sound より優先度が高いのは、外部 CRT への出力。 これができないと、プレゼンテーションができない。 これも今のことろうまくいかない。これも ACPI の問題。 さて、どこから手を付ければ良いやら。。。
輝度調整ができないためか、標準バッテリーで 2 時間強しかもたない。 もっと稼働時間が長くなるようにしたい。
gnome-terminal を起動しようとすると、libdb.so.2 がないと 言われたので、cd /lib; ln -s libdb-2.1.2.so libdb.so.2; ldconfig を 実行。
使っていない /dev/hda9 を利用して、reiserfs へ移行する。
注:tar で backup を戻すとき(特に /dev 辺り)は single user mode で umask 000 した後に行った方が良い。(permission がらみの問題)
/dev に関しては、plamo には devs.tgz という /dev を固めたものが あるのでそれで上書きする手もあり。
Grub を MBR にインストールする際の注意
Reiserfs 上から grub の書き込みを行おうとすると失敗した。
grub な floppy ディスクを使って、command mode から install すると ok
emacs では lookup を ndeb で。 eb, eblook, lookup, appendix(jitenban97) を入れる。 こんなに lookup が便利とは知らなかった。\(^^)/
terminal 用にはいつもの dic を。
LED を見る限り system は止まっているように見えるが、 数時間後に起動するとバッテリーが確実に消耗している。
full 状態 (19882mWh)から shutdown し、6 時間後に起動すると 約15000mWh になっている。Windowze から終了した場合、10 時間後に 確認しても ほとんどバッテリーが減少していない。
cd /usr/src/linux rm -rf drivers/acpi tar zxvf acpica-linux-20010920.tar.gz # for debugging gzip -d -c acpi-other-files-20010920.diff.gz | patch -p1
make all && make install して、/etc/acpi/events/ の中に event と action をセットにしたファイルを用意する。
起動時に acpid -d & を実行すると、/etc/acpi/events/ 以下の 設定ファイルを読み込む。設定ファイルのルールにのっとり、 event が実行される。こんな感じに書くらしい。 ----- /etc/acpi/events/power file に ---- event=button power.* action=/usr/local/bin/power.sh "%e" ----- /usr/local/bin/power.sh に ------- #!/bin/sh case "$1" in button) case "$2" in power) /sbin/init 0 ;; *) echo "Action $2 is not defined" ;; esac ;; *) echo "Group $2 is not defined" ;; esac-----------------------------------------
full 充電状態(19882mWh)で shutdown し電源アダプタを外す。 9 時間後に再起動。Remaining Capacity は 19364mWh に。
ということで、Intel site の patch を適用することで shutdown 後の battery 消耗問題は解決。。。
↑と思ったら、どうやら間違っていたみたい。(^^;; Intel patch 無しの古い kernel 2.4.9 で念のため再テストしたら、 5 時間おいておいても battery が消耗していない。 どうやら、このテスト前に、Windoze 側の省電力設定を default に 戻したことが効いた模様。なんてこった、紛らわしいなぁ。
S3 savage の driver を書いている Tim Roberts氏の web page に、 LCD と CRT の出力切り替えができるような事が書いてある。 そこで、XFree86 4.1 に移行してみる。
既存の /usr/X11R6 は別の場所に固めてとっておき、 4.1 のファイル群で上書きする。(/usr/X11R6 以下には様々な application があるので上書きした方が良いと判断。) xf86cfg を使って大雑把に XF86Config を作った後、以前の XF86Config を参照して、 1280x600 and 800x600 を表示する設定ファイルを作成する。 解像度は以前と同じく Ctrl+Alt+[+] で切り替えられる。 スクロールボタンもちゃんと使える。
X を入れ替えたことで、X のアプリケーションがきちんと動かなくなる 可能性がある。(ただの杞憂で、ちゃんと動くかもしれない)
/etc/rc.d/rc.xfs で xfs-xtt を実行しているところを xfs に変更する。一応起動はしているが、何か変。 Netscape のメニューは化けるし、gimp のタイトルバーの日本語が汚い。 緊急度は低いのでそのうちに直そう。
外部 CRT が手元に無いので確かめられないが、 ./s3switch both とかすると LCD と CRT の両方に、 ./s3switch lcd とすると LCD のみに送出するらしい。 明朝テストしてみよう。わくわく。
Nanao の液晶ディスプレイにつないで s3switch を試してみたが 何も映らない。信号が送出されていないみたい。くやしい。
./s3switch crt をやると Libretto の画面がホワイトアウトする。(@@; s3switch の問題 ? それとも X の問題 ? s3switch も X も binary を 別々に取ってきたので、全てを source から make するか...
s3switch を source から作る。(svgalib の lrmi が必要。 debian に置いてあった s3switch_0.0.20010719 には lrmi が含まれている) やっぱりだめ。何かの切り替えはしているみたいなんだけど、 外部出力へは何も信号が出ていない。;_; 結局 pending か...
2.4.11 にしてみたが、大きな変更はない模様。 acpica は古いままだし。(20010831)
2.4.11 に致命的なミスがあったみたい。あわてて 2.4.12 を作る。 ついさっき 2.4.11 を作ったばかりなのに
CONFIG_TOSHIBA=m として kernel の make をしたが、 例えば dispswitch を実行しても
「this computer is not supported or kernel module is not installed」と言われるだけ。modules は load できていたので この utility を使うのは無理らしい。APM only なんだろうな。 ACPI をやっつけないとどうしようもないということですね。ふぅ。
mozilla はまぁまぁ。でもまだ重いかな。
StarOffice 6.0 beta は XFree86-4.1 ではインストールできない。 インストール中に X が高負荷状態に陥る。XFree86-3.3.6 は OK。 StarOffice 自身は良い感じ。ちょっと試した限りでは日本語も OK 。
本体に貼ってあった変なシール(「田」みたいな捻れた窓の図柄 :p )を 剥がしました。本体裏面に貼ってある目障りな変なシールも 剥がしたかったですが、うまく剥がせそうになかったので ほったらかしにしてます。
音が鳴るように、kernel source (driver/pci/pci.c)をちょこっと修正。 IRQ の設定されない ALi5451 に無理矢理 IRQ=4 を割り当ててみる。
Alsa-0.9.0betax の ali5451 を使って音は一応出るのだが、 再生音(cat english.au > /dev/audio)が一定時間繰り返してしまう。;_;
IRQの変更、Alsa-driver の変更、kernel の変更等、思いつくことは 試してみたのですが、いずれも同じ結果。もうひとひねり必要みたい。。。
Device | IRQ |
Software Modem AMR | 5 |
ToPIC100 CardBus | 6 |
Keyboard | 1 |
ALi Audio Accelarator | 5 |
ACPI SCIIRQ | 9 |
CMOS RTC | 8 |
TIMER | 0 |
Programable 割り込みコントローラ | 2 |
数値データプロセッサ | 13 |
S3 Savage IX | 11 |
Ethernet | 10 |
IDE Controllar | 14 |
Mouse | 12 |
ALi PCI to USB | 7 |
前回に引き続き、kernel 2.4.14 の source (driver/pci/pci.c と arch/i386/kernel/pci_irq.c )を修正。やっと鳴りました。(T^T) ループしないできちんと鳴ります。
pci.c の修正(irq の強制割り当て)は こちら から。感謝。
pci_irq.c の修正の方は、TurboLinux の kernel (2.4.5)を 参考にさせてもらいました。感謝。
使う人なんていないと思いますが、kernel 2.4.14 に対する 差分ファイルはこれ。 (実験で用いた必要ない code が含まれています。) なお、この patch は無保証です。ろくすっぽ検証していません。ですので、 これを使って何が起ころうと当方は責任は持てません。あしからず。
補足:sound driver は ALSA を。 alsa-driver-0.5.12, alsa-lib-0.5.10b, alsa-utils-0.5.10 を 用いました。
CardBus bridge ToPIC と ALi5451 が同じ irq 5 を 割り当てられているのが気になる。 pci は同じ irq を使うことができるけど、 ALi5451 に irq 4 を割り当てるべきなのかなぁ。 そのうち検証することにしよう。
source が公開されているっていうのは、やはり良いですね。 いじる楽しみがありますからね。この達成感は どこぞの出来の悪い OS では未来永劫味わえないですね。:-p
早速 2.4.15 を試してみたのですが、irq の取得は失敗。 そこで 2.4.14 で用いた patch を適用してみたところ、 irq は取得できたのですが、別の問題が発生し音が鳴らない。;_;
Alsactl (alsamixer)が "Invalid argument" とかいって、 mixer のコントロールができないという症状。 2.4.15 で何が変わったか調べないといけないのかなぁ。
上述の kernel 2.4.15 での問題は、alsa を 0.5.12 から 0.9.0beta8 にすることであっさり解決。d(^^)/
kernel 2.4.15 用 sound patch は こちら。 ( ALi5451 の irq=4 とした。)
patch -p0 < LibrettoL2-sound_2.4.15.patch
先日 ext3 に対応した e2fsprogs-1.21 も入れておいたので、 これで ext3 が使えます。:-)
ということで kernel 2.4.14 に戻す。 sound driver は ALSA 0.9.0beta8 に。
最近 kernel に致命的なバグが続いてるなぁ。どうしたんだろう。
plamo に入っている kterm はスクロールバーを右に出す パッチの当たった物なので、.Xdefaults に以下の 2行を 加えるだけで ok。
KTerm*scrollBar: true KTerm*rightScrollBar: true
remote で作業中、画面表示が乱れた。そこで、 Ctrl キーを押しながら、 マウス中ボタンを割り当てた右スクロールボタンを押すと、、、 vt options メニューが激しく点滅する。(@@;;
Web 上にはそのような情報は見つからなかったので、 色々実験してみた。右スクロールボタンに割り当てた中ボタンの機能が 正しく働いていないことが判明。
XF86Config の Pointer section に
Emulate3Buttonsを付け加えた。 vt options を出す時には左右ボタンを同時に押してしのぐ事にする。
kernel を 2.4.17 にする。irq の取得ができなかったので sound patch を用いる。 2.4.15 用で ok。
次のようにキーを変更したかった。
loadkeys による矢印キーの割り当て変更が X 上で有効にならない。 XkbDisable としていれば console でのキー割り当てがそのまま X 上で 使えるらしいのだが。。。何が悪いのか。。。pending
とりあえず、Up arrow と Shift_R を入れ替える暫定的対処でしのぐ。
なんとなく状況が分かってきた。loadkeys で指定した以下のような key combination が X に引き継がれていない模様。
glib-1.2.9, gtk+-1.2.9, dia-0.88-1, magicpoint-0.9a, sylpheed-0.7.0
Logitech の光学式 USB マウスを安く(\2280)入手したので、これを機に設定した。
(cf. /usr/src/linux/Documentation/input/input.txt,
/usr/X11R6/lib/X11/doc/xinput,
man XF86Config )
# cd /dev # mkdir input # mknod input/mice c 13 63
# modprobe usb-ohci # modprobe input # modprobe keybdev # <-- usb keyboard (no check) # modprobe mousedev # modprobe hid
Section "Pointer" Protocol "IMPS/2" Device "/dev/input/mice" ZAxisMapping 4 5 EndSectionだけで OK
Section "Xinput" SubSection "Mouse" Protocol "IMPS/2" Device "/dev/input/mice" DeviceName "USB_Mouse" ZAxisMapping 4 5 AlwaysCore EndSubSection EndSection
sawfish も良いんだけど、WindowMaker を久しぶりに入れてみた。 バージョンもずいぶん上がっていて良い感じ。しばらく WindowMaker を 使ってみることにする。.
asclock-2.0.12 のソースを取ってくる。こちらもバージョンが 上がっていてなかなか面白い。
John Belmonte 氏が公開している ACPI Extra driver を使ってみる。現 version は 0.1。LCD の輝度調整が可能に。感謝。
アイコンのサイズを 64x64 より小さくした時に、 きちんとドックに乗る時計を見つけられなかったので、 pclock version 0.10 を修正。
-G (-geometry) option でアイコンのサイズを変更可能。 但しアイコンの画像として対象サイズの xpm ファイルを用意し、 -B(--backgroud) option で指定する必要がある。
battery 駆動時や AC adapter 駆動時、longrun mode や輝度調整を 動的に切り替えるように acpid を設定。単に script を書いただけ。
WindowMaker 用の電源状態表示アプリケーション wmacpi を入れる。 バッテリーの残量等が一目瞭然。
battery 駆動時には、 輝度を level 2 まで落とし longrun mode を最低 level にしている。 この時の駆動時間は 2 時間 4,50 分程度。 (輝度を最低の level 0 にすれば、もう少し伸ばせるが 暗すぎて視認性が悪い)
ACPI Extra driver の version が 0.11 となり RGB 出力が可能になったとのこと。2.4.18 に上げるのとあわせて 適用してみる。
確かに RGB 出力がでるようになった。すばらしい。\(^^)/ しかし 1280x600 が 800x600 に圧縮されて表示されちゃうぞ。うーん... XFree86 3.3.6 じゃなくて XF86-4 でテストしてみる必要があるかな。
音は鳴らなかったので、sound patch を適用。 2.4.15 用で ok。
XFree86-4.1.0 としてみたが... やっぱり 1280x600 が 800x600 に圧縮される。うぅーん。 わかんないぞ...
何のことはない。私のやり方が悪かっただけだった。(^^;; LCD と CRT の両方に出力すると LCD の解像度が優先されて 1280x600 が 800x600 に圧縮されるが、CRT のみの出力とすると 外部ディスプレイの解像度にあわせて正しく表示される。\(^^)/
ユーザー権限で出力切り替えを行う為のコマンドを用意し、 そのコマンドを何かのキーに割り当てることにしよう。
上記 RGB 出力に前後して、Frame buffer にしてみる。
kernel config option を変更して Frame buffer 用の kernel を make し、GRUB の menu.lst を
title kernel 2.4.18 fb 1280x600 root (hd0,4) kernel /vmlinuz2418fb root=/dev/hda5 vga=0x404てな具合にすると 1280x600 に。vga=0x303 とすると 800x600 に。
...が、kernel panic で起動できず ;_;
...が、起動できず ;_;
現在充電中。何時間持つかな? 8 時間 30分強くらいか。 (LCD輝度を最低にすると、9時間を超える:-p)
でもやっぱり重いなぁ...
swsuspend が merge された模様。(gcc の version に制約はないのかなぁ?) 試してみたところ shutdown -z now すると kernel panic(?) を起こす。(^^; 今後の楽しみに。
2.5.x 系を再トライ。今度は起動できた \(^^)/ (ちょっとだけ source を修正したけど)
changelog にもあったように ACPI まわりが大きく変わっている。 Patch を当てない状態でも、sound chip の IRQ が 割り当てられているみたい。
software suspend を試してみたところ、2.4.19-pre5-ac3 から改善が みられた。shutdown -z now したところ、kernel panic も起こらず swap へ 書き込まれた。:) resume できないけど :( なんでかなぁ?
若干の細かな問題はあるけど software suspend できた。すばらしい!!!
以下に試した手順を書いておく。
resume=/dev/hda6付きで boot する。ここで /dev/hda6 とは swap partition。 resume には結構時間がかかる。(以下の表示が 1 分ぐらい続く) じっと我慢。
Resume Machine: Reading resume file was successful Waiting for DMAs to settle down...
memory を使っていればいるほど復帰時間が長い。 復帰するのに 3-4分かかる場合も。
base: linux-2.4.18 + patch-2.4.19-pre7 + patch-2.4.19-pre7-ac3 + LibrettoL2-sound_2.4.15.patch (me) + toshiba_acpi_0.11-linux_2.4.17.diff (from JB's page)
この後、pcmcia-cs-3.1.29 および alsa lib をいれる
IDE の DMA まわり(ALi1533)がまともに使えていないのが主原因では ないかと予測。まずは、それ以外に原因がないかを調べることにした。
reiserfs を使っているためではないか調べた。file system を 全て ext3 にしても同様に復帰に時間がかかる。kernel に reiserfs を 組み込まなくても同様。reiserfs のためではなさそう。
ext3 も一応疑って ext2 のみにしてみたが、状況は何一つ変わらない
usb 関連の modules を疑ってみたが、これも関係なさそう。
2.4.19-pre7-ac4 で kernel option の ide=nodma を使うと kernel panic -> NG
2.4.18 に ide.2.4.18-rc1.02152002.patch を適用してみたが、 dma 周りに改善はみられない。-> NG
ALi15x3 を殺した kernel -> NG
うぅ、わからん... swsusp は諦めるかなぁ...
2.4.19-pre7-ac4 と状況に大差なし
...が kernel panic ;_;
2.5.18 の kernel/suspend.c の l.68 辺りに linux/buffer_head.h の #include 行を追加しないと make できない
swsuspend が merge され、suspend to disk (S4) が できるようになっている。 しかし resume 時の復帰時間は相変わらず遅い。
suspend to RAM (S3) はかなり良いところまできているのかな。 resume しようとすると
hwsleep_0304: *** Error: Method _BFS failed, AE_ACQUIRE_DEADLOCKとか何とか表示されて失敗するけども。
ここのところ、Libretto 上で 2.5.x を make した際に気づいたことのメモ
2.5.19 と同じく、suspend.[ch] に patch をあてないと make できない。 この patch は linux-kernel ml に流れている。
echo 3 > /proc/acpi/sleep すると、
ACPI: ACPI-based suspend currently broken, abortingと表示される。あれれ? まだ道は遠いのか...
どの version からか不明だが、最近の 2.5.x 系では sound patch 無しで irq を取得でき、kernel 付属の ALSA ali5451 ドライバで音が鳴らせる。 確実に ACPI 周りが良くなっている :)
うーん、ACPI 周りがさらに良くなっている"らしい"のだけど、 make できないや。
こんどは make できるぞ。さてどうなるかな。。。
echo 3 > /proc/acpi/sleep すると suspend(S3) する。 が、resume はできない。黄色い文字で Linux! と表示されるだけ。
echo 4 > /proc/acpi/sleep すると、swsusp(S4) しようと幾らか進んだ 所で、
Suspend Machine: Writing pagedir(18pages): ..kernel BUG at page_alloc.c:87! invalid operand: 0000 (以下略)と表示され止まってしまう。うーん、以前の version では swsusp できていたのにな。
frame buffer での boot は ok 。
今後基本的に開発版の 2.5 系を追いかけることにする。 このために、John Belmonte 氏による ACPI Extra driver を 2.5.22 用にちょびっと修正。 修正した patch
基本的に Belmonte 氏の patch と同じ使い方ですが、 modules 名を toshiba_extra に変えているので注意。 ( 2.4.1[78] と 2.5.22 での acpi の tree 構造が異なっている為、 それにあわせた修正を行い、module 名も ospm_toshiba から toshiba_extra へと変えました。) quick hack なので、関数名など細かい修正はしていない。
original driver の作者 Belmonte 氏にあらためて感謝。
kernel 2.5.23 に。上述の 2.5.22 用 ACPI extra driver patch は そのまま利用可。
echo 3 > /proc/acpi/sleep は resume できず。
echo 4 > /proc/acpi/sleep は ok 。
login 時や boot 途中に次のようなメッセージが表示され止まる。
hda: error: DMA in progress...なんかやばそう... kernel configuration は以前と変えてないので DMA 関連に手が入ったのか?
ide DMA disable な kernel を作ればとりあえず boot できる
DMA が効いてないとディスクアクセスが遅いので、 再度 DMA を enable にしてみた。やはり時折(?)上記の error で 止まる。再現性が無いのが気色悪いなぁ。
書き忘れていたが、2.5 を追いかけることにしてから、 wmacpi の version を 1.34 にし、あわせて acpid の設定ファイルを 若干書き直した。これらは /proc/acpi 以下の書式が変わった為。
2.5.24 用もあり。fan control もできるようになったらしい。
うぅぅぅ、2.5.24 と同じく IDE DMA enable にすると... ;_;
Toshiba ACPI extra driver が ACPI patch for 2.5.25 に 取り込まれたとか。(acpi-devel ml より) 便利になりますね。
2.5.25 だが DMA disable にしても固まる事があるみたい。 IDE まわりがとても変。先ほども rsync していたら固まってしまった。 どうなってんだ ? 困るので 2.4.19-pre10-ac2 で起動している。
2.5 kernel の IDE は危険だと John Belmonte 氏から教えてもらう。 以下の URL を参照のこと。
Toshiba ACPI extra driver は merge されたため patch は不要
IDE patch や、acpi 周りの変更等が merge された模様。 いろいろと直ったみたい。→ と思ったら直ってないみたい。 ディスクアクセスが激しい(?)と kernel panic
Unable to handle kernel NULL pointer dereference at virtual address 0000001c printing eip: c01d47e7 *pde = 00000000 Oops: 0000 (snip)といった感じ ;_;
IDEDMA を disable にしたら何とか動くみたい(自信なし)
make はしたが remote で作業中なので、まだ試していない
2.5.27 をテストしてみた。いかん。だめだ。IDEDMA enable では これまでと同じくだめ。
IDEDMA disable にしてみたが、reiserfs を mount するところ(?)で 止まる。
make mrproper してなかったせいじゃないかと思い 再 make してみたが、やはり reiserfs の所で止まる。;_;
ということで 2.5.26(IDEDMA disable) のまま。
Linux Kernel ML の message によると、やはり 2.5.27 の IDE には問題があるらしい。
この page のアクセスログを見ると、いつの間にか 10000 アクセスを 突破していた。まさかこんなに人が来ているとは。
ただいま昼御飯を食べながら make 中。IDE はどうだろうか?
kernel make の途中、ali5451.c の compile で error
ali5451.c:1971: macro `synchronize_irq' used without args ali5451.c:2119: macro `synchronize_irq' used without args最近 Libretto で sound を使うことは無いので、 sound を disable にする。暇があったら直すということで。
Oops ;_;
(snip) ld -m elf_i386 -T arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/init.o --start-group arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o security/built-in.o /usr/src/linux-2.5.28/arch/i386/lib/lib.a lib/lib.a /usr/src/linux-2.5.28/arch/i386/lib/lib.a drivers/built-in.o sound/sound.o arch/i386/pci/pci.o net/network.o --end-group -o vmlinux drivers/built-in.o: In function `acpi_system_suspend': /usr/src/linux-2.5.28/drivers/acpi/system.c:259: undefined reference to `save_flags' /usr/src/linux-2.5.28/drivers/acpi/system.c:273: undefined reference to `restore_flags' make: *** [vmlinux] Error 1手が回らない。時間が欲しい...
案の定 Linux Kernel ML にこの件↑があった。system.c に
#include <linux/interrupt.h>を付け加えれば良い。
IDE DMA はダメ
boot してから一度だけだが、S3 suspend からの resume ができた。\(^^)/ (error は吐くけどね。)確実にゴールが近づいている。 (resume 時に hda の irq を lost(?) して止まることもあり)
注:resume 後に network が使えない。resume 時の初期化の問題だろうな
DMA disable で boot するけど、IDE 周りが何だか怪しい。 filesystem を mount するところで止まったり or 遅かったり....
IDE が怪しいと思っていたが、 どうやら suspend/resume のテストをした後だったからみたい。 通常に halt した後は正常に boot している。
ML にも流れていたが CONFIG_ACPI_DEBUG=y とすると make できない。
S3 suspend からの resume はダメ。2.5.28 の方がまし。
ide まわりに幾つかの patch が加えられたらしいが、 ide-dma active で使えるようになった模様。
S3 suspend の resume であるが、次の message が表示され止まる。
Device Resumed ACPI-0355: *** Error: Method _BFS failed, AE_ACQUIRE_DEADLOCK ACPI-0360: *** Error: Method _WAK failed, AE_ACQUIRE_DEADLOCK Restarting tasks ... done.うーん、どっかで見た message だなぁ
みたところ ACPI 周りの変更は無さそう。
acpi-devel ml はここのところ盛ん。お楽しみ
S3 suspend から resume すると、以下のような表示
Device Resumed Device Resumed ACPI-0355: *** Error: Method _BFS failed, AE_ACQUIRE_DEADLOCK ACPI-0360: *** Error: Method _WAK failed, AE_ACQUIRE_DEADLOCK Restarting tasks ... done. hda:status error:status=0x58[drive ready, seek complete,data request] hda:drive not ready for command end_request: I/O error, dev 03:00, sector 4550374 Buffer I/O error on device ide0(3,5) logical block 56717つまりハードディスク hda が使用可能状態に復帰できてない。
上記の状況は DMA を disable にしても同じ
ChangeLog を見ると、
S3 and swsusp: fixing device_resume orderなんて事が書いてある。期待して make。→ 相変わらず S3 suspend の resume 時に止まる。;_;
S3 resume について、特に状況変化はなし。;_;
なぜか keyboard が使えない ?
2.5.32 で drivers/input 以下が変わったみたい
あれぇ、まだ keyboard が使えない ? 割り込み irq=1 が取れないぞ。
keyboard が使えなかったのは、kernel config の Input Device のところの設定の仕方が悪かった事が原因みたい。 ちゃんと keyboard も使える。
と思ったら、"¥" key が効かない。atkbd.c で unknown key とか 言ってる。押すたびに
atkbd.c: Unknown key (set 2, scancode 0x6a, on isa0060/serio0) pressed atkbd.c: Unknown key (set 2, scancode 0x6a, on isa0060/serio0) releasedを繰り返す。¥キーが使えないと、パイプが打てない。これは困る。
S3 suspend だが、何とか、できるようになってる。 network は復活できなかったが、resume もちゃんとできたぞ。\(^^)/
相変わらず、"¥" key は効かない。
S3 suspend の resume がうまくいかない。うーん、一進一退だなぁ
あれ? boot 中に kernel panic になるぞ。ide 周りかな?
2.5.35 の drivers/ide を移植して make すると boot できる。
相変わらず、"¥" key は効かない。
S3 suspend は 2.5.35 と同じく、resume を失敗する。
echo n > /proc/acpi/sleep が効かないぞ? acpi-devel ML にも そんな事が書いてあるな。
2.5.36+acpi-20020918 と同じく、suspend できない。
keyboard も同じく。code を書かんとだめかなぁ
ide 周り(acpi かもしれない)に問題あり。halt 後に boot すると、
hda: lost interruptと表示されて止まる。
2.5.31 で boot している状態から、reboot で 2.5.38 を起動した 場合には、問題なく起動する。ということは、acpi 周りの irq table の 初期化(?)に問題があるということかもしれない。
事態はあまり変わっていない
kernel 2.5.40 が出ているみたいなんだけど、kernel.org に アクセスできない→おっと、できた
起動時に kernel panic 。事態は変わってない。;_; ← 実は大間違い
実は私の kernel config がおかしかっただけ。 config を修正したら、問題なく起動できた。あぁ、へぼだなぁ
ということは kernel 2.5.35 以降、私の kernel configuration が 正しくなかっただけの可能性あり。;_;
udma(33) だったのが udma(66) になっている。:-)
S3 は resume で失敗する。
suspend できない。kernel に acpi-20021002 が反映されてない
reboot and halt 時に、落ちてくれない。 つまり reboot できない。電源ボタンを押す必要あり
前述 ac5 と同等。S3 resume はダメ
reboot は ok 。多分 2.5.41 に対して acpi-20021002 を 適用すれば、上記の halt できない問題は解決するだろう。
remote で make & boot up。故に、suspend test はまだ。
S3 resume できた。但し、network unreachable になる。
"|" が入力できるようになっている。:-)
S3 resume の状況は 2.5.42 と変わらず。S3 resume 後 以下のように表示される
... Device Resumed Restarting task... done hda: status time out: status=0x80 { Busy } hda: DMA disabled hda: drive not ready for command ide0: reset: master: error (0x00?)network が使えなくなる(eth0 がわからんようになる)以外は S3 resume は成功しているように見える。
eepro100 or e100 を kernel 組み込みにして S3 suspend & resume すると、eth0 device を失い、network 不可に。
eepro100 or e100 を modules にした場合、 suspend 前に "ifconfig eth0 down ; rmmod {eepro100|e100} " とした後で、resume しておいても network は不可。 resume 後 modules の load はできるし、 eth0 への network 設定も一見できているようにみえる。 が、network unreachable な状態のまま。;_;
kernel 2.5.42 と状況は変わらず。
kernel make 時に error がでる。 arch/i386/kernel/mpparse.c に以下の 1 行を加える
#define BAD_APICID 0xFFuこれでいいのか分からないけど。(^^;
S3 resume で固まる
... と、思っていたんだけど、いろいろやってみると、 ばっちり S3 suspend/resume できそうな気配が。詳細は後程。
わぁぁん、やっぱりだめだった。network が死んじゃう。何でぇ ;_;
おまけにマウス(Libポイントだっけ?)も使えなくなる。他にも使えない device があるに違いない。
えっちらおっちら、Plamo3.0 に入れ替える。ext3 にしてみる。 /home は reiserfs のまま。kernel は 2.5.44 + acpi-20021024 に
ついでに長らくほったらかしにしていた pcmcia wireless LAN cardを 使えるように設定。
そうそう、標準バッテリーはちょうど一年でお亡くなりになりました。 まさか Sxny タイマーがついているわけじゃ無いと思うけど。:p
変更点がたくさんある模様。
現在 make 中。(make menuconfig で QT が無いとか言って error が 出るが、make -k menuconfig とかすれば、とりあえず ok)
suspend/resume (S3) について、特に状況の変化は無い模様。残念。。。
root device を mount するところで、kernel panic
grub の記述を以下のように変えると boot 出来た。
ダメなケース root (hd0,4) kernel /vmlinuz2546 root=/dev/hda5 ro vga=0x303 resume=/dev/hda6
boot 成功したケース root (hd0,4) kernel /vmlinuz2546 ro vga=0x303何か変ですねぇ... ext2/3 周りが変わったからかな ?
S3 resume の状況は変わらず。 network device 等が使えなくなる。 外部からの packet を受け取れない模様。
特に御利益無し。
2.5.46 と同じく root device を mount するところで、kernel panic
S3 resume の状況変わらず...
S3 resume に特に変化なし ;_;
S3 resume 変わらず。
module loading 周り変更あり。
最近購入した Let's note CF-T1 上の kernel 2.4.19+swsusp15 で、 software suspend が良い具合だったので、Libretto でも試してみた。
ちなみに最近の kernel 2.5 系列では S4 suspend は そもそも失敗する。kernel panic を起こす。
Florent Chabaud の page から swsusp の v15beta-2.4.19 を取得し、kernel を再構築。
echo 4 > /proc/acpi/sleep或いは
echo "1 0 2" > /proc/sys/kernel/swsuspすることで、suspend する。電源ボタンで boot させると 途中で image を戻して resume する。格段に速くなっている。
resume 後にも network がちゃんと使える ;-)
これでもういいかな...