ThinkPad T4x で FreeBSD
T42 + 5.3-RELEASE
メインで使ってるのはこっち。2373-1YJ + PentiumM 755 (2.0GHz)
いろいろなデバイスとか
Intel PRO/Wireless 2200BG
FreeBSD Native なドライバ (iwi) が出ていて、これでちゃんと動くが、これ load したあと、 ACPI で suspend/resume すると CardBus が使えなくなる。
ndis ドライバでも動くが、ロードの時にしばらく止まるので、ちょっ と緊張したりする。方法は、blog に載せた記事 を参照のこと。
Video
Dual head で X も動いてます。映画見ながら仕事できます。
Dual head 用の設定は、 外付けのディスプレイが本体ディスプレイの右側にくるようになってます。 使う場合は、外付けディスプレイの設定を、 お手持ちのディスプレイに合わせてください。
USB
device ehci で、USB 2.0 も認識される。
5.x での、USB2.0 の挙動はだいぶ変で、 いちど 2.0 で認識しても、usbdevs -v とか見てると、 すぐ 1.1 のほうに行っちゃうので、実は動いてない模様。
CardBus/PC-Card
CardBus はたぶん動く。PC-Card は動いてる。4.x までと違って、 挿すと一瞬で認識するので幸せ。
Audio
普通に、snd_ich で動く。
Enhanced SpeedStep
Enhanced SpeedStep driver for FreeBSD が出てます。 これ使うと動的なクロック変更とかができるようになって、 電池の持ちもばっちり。
加速度センサ
机から落としたときなんかに、加速度を検出して HDD を停止する仕掛けがついてるのですが、どうやら Windows only.
セカンドバッテリ
UltraBay Slim (CDのところ) に挿すバッテリを装着して、 FreeBSD が動いているときに、画面の明るさとか音量を変更したり、 ACPI 的なイベント (電源つないだり抜いたりとか) 一発で落ちる。 逆に、それをやらなければ 4 時間ちょっと動く。
電源まわり
ACPI はそこそこ動くようになりました。ACPI で suspend/resume を使う場合の注意点としては、
- device agp は必要。radeondrm はロードしない (つまり、このあたりは GENERIC のまま)
- DRI は切っておく (XF86Config のほうで)
- /boot/device.hints に hint.psm.0.flags="0x6000" を書いて、resume 後に mouse が reset されるようにする。これしないと、resume 後に mouse が使えない
- 起動後、X を上げる前に一度 suspend/resume する
- X の画面のままで suspend するとよくない感じなので、 Ctrl+Alt+F1 で、コンソールに戻してから suspend するとよい
こんな感じ。ただ、S3 suspend だと、 比較的電池を消耗する感じ。これは Linux でも同じらしい。 S4 に持っていけるとよいのですが、うまくいってません。
T40+4.10 の頃は apm で suspend してて、 電池の消耗はあまり感じなかったのですが、5.3 ではなんか、 apm でうまく suspend できない感じ。
古い情報
T40 (2373-66J) + 4.10-RELEASE で使ってた頃の話。 4.10-RC で使ってたパッチ。
いろいろなデバイスの状況
Video
device agp が有効だと、液晶のサイズが認識できず、 X が上がらない。agp を切るか、パッチ を当てると、agp + radeondrm 有効で、DRI も使えるようになるが、 若干不安定な感じなのと、あんまり速くならないのでやめた。
XFree86-4.3.0 では suspend/resume できなかったが、 開発スナップショットを入れてたら動くようになった。 4.4.0 くらいなら普通に動くでしょう。
X あげないで suspend して resume すると、そのあと X あがらずに固まります。 X を一度落として上げ直しても固まりません。上げた状態での suspend/resume は、 正常です (/dev/agp は切ってます) 。
USB
使えるが、/dev の下のエントリがなかったりする。 cd /dev ; sh MAKEDEV usb1 ; sh MAKEDEV usb2 で、 USB 1.1 が動くようになる。4.10 から入った ehci は、 認識されるがまったく動かない模様なので、使わないほうがよい。
Audio
device pcm を有効にすると音はちゃんと出る。 内蔵スピーカーはステレオである。すばらし。
そのほかの設定とか
kernel で、options CPU_ENABLE_SSE を有効にすると、 SSE 命令が使えるようになる。
Power management
Suspend/resume すると ATA controller のリセットで死ぬ。 これは、パッチで直る。 パッチを当てて、device apm を有効にするのがよい。 acpica は、恐ろしいほど動かない。
同じく、resume 後に mouse が使えない。 device psm に、flags 0x6000 を付けておくと、X で resume 後、 数秒で正常にマウスポインタが動くようになる。 これ付けないとまったくダメなので注意。
暫定パッチ
ふゆさんのページ のパッチを最低限の部分だけ手で当てて (めんどくさかったのさ)、 suspend/resume に関する乱暴な手パッチをして、 最後に diff -ru したものです。suspend/resume のところは、 けっこうヤバいことをしているので、保証の限りではありません。 ちなみにこれで apm は使えますが、acpica は駄目でした。
XFree86 で DRI を使うためには、以下の記述を kernel configuration に追加してください。
device agp # support several AGP chipsets device radeondrm # RADEON DRM
んで、DRI 使えてるはずなんですが、 速くなった実感はありません...
参考
と思ったのだけれど、やっぱりあんまりないんですよ...
- D.J.Bernstein 氏の Linux/FreeBSD on T40 リポート (当然、英語)
- Running FreeBSD on the IBM ThinkPad T40p
- 浅井さんによる、XFree86+DRI on FreeBSDの解説
- ふゆさんの、FreeBSD on X31 なページ
おまけ
Full build of FreeBSD 5.3-RELEASE-p5 @ Tokyo (T42/2.0GHz)
% time make -j4 buildworld 1614.536u 318.715s 34:47.88 92.5% 3541+2049k 22010+2504io 1469pf+0w % time make KERNCONF=GENERIC buildkernel 353.392u 52.135s 8:06.49 83.3% 3655+1746k 4667+700io 12pf+0w
Full build of FreeBSD 5.4-RC3 @ Tokyo (Athlon64 4000+)
% time make -j4 buildworld 1452.311u 277.193s 29:07.22 98.9% 3492+2056k 1761+2830io 967pf+0w % time make KERNCONF=GENERIC buildkernel 322.136u 45.720s 6:14.00 98.3% 3632+1745k 361+761io 1pf+0w