本ページでは IBM ThinkPad X40 (HDが40Gのモデルです)に FreeBSD 5.2.1 を載せた時の覚書を載せています. 2004年8月現在,Windows XP と FreeBSD 5.2.1 を Dual boot で使っています. 他の機種用のUSBのFDドライブと, 純正のCD/DVDドライブ(USB 2.0 Portable Multi-Burner)を使ってます.
(追記) 2005年8月にFreeBSDを5.4にupdateしました.
ThinkPad X40では,ファイルシステムは NTFS なので,まずつまづく. X40はそもそも,最初に電源を入れると,勝手に NTFS 化してしまう. 電源を入れる前にこれを回避する方法もあることはある. 具体的には,まず電源を入れる前にHDを取り出して,他の PC でマウントして, convert.exe を移動してしまうらしい.私の場合はそれを知らなかったので, NTFS 化されてしまった.
NTFS 上では,FIPS は使えない.また presizer も,X40 上ではうまく動作しない. 具体的には「複数のパーティションが同じ領域を share している」といった内容のエラーが 出てしまう.たぶんバックアップ関係のパーティションかツールが邪魔しているのだと思うが, 詳細は不明.そこで,Linux のインストールで使う nftsresize を使用した.基本的な手段は 「 NTFSをリサイズしてLinux用領域を作成」と同じ.具体的な手順は以下のようにした.
mount -t vfat /dev/sda /mnt2で FD をマウントする (他のマシンの普通のUSBのFDドライブを使用した)
ちなみに
mount -t vfat /dev/hda2 /mnt2で HD のバックアップ用隠れ領域もマウントできる(←特に意味なし). 以下,私の実行したコマンドと結果は次の通り(あまり整理してないですが).
[fdisk -l /dev/hda の結果] Disk /dev/hda: 40.0 GB, 40007761920 bytes 240 heads, 63 sectors/track, 5168 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 4538 34307248+ 7 HPFS/NTFS /dev/hda2 4539 5168 4762800 12 Compaq diagnostics [./ntfsresize -i /dev/hda1 を実行] [./ntfsresize -n -s16000M /dev/hda1 を実行] [fdisk /dev/hda + p...]など. [最終結果] Device Boot Start End Blocks Id System /dev/hda1 * 1 2068 15634048+ 7 HPFS/NTFS /dev/hda2 4539 5168 4762800 12 Compaq diagnostics /dev/hda3 2069 4538 18673200 ef EFI (FAT-12/16/32)基本的には「 NTFSをリサイズしてLinux用領域を作成」と同じ.FreeBSDにだいたい18Gを割り当てた. この作業の後,Win XP を起動すると,checkdisk がかかったが,正常に終了. Win XP で[ファイル名を指定して実行]でdiskmgmt.msc をやってみて, 各領域が,ちゃんと認識できることを確認した.
CDからのインストールも,DOS領域からのインストールも,うまくいかない. (CDは後述の理由でドライブを認識しなかった.DOS領域は NTFS だからかな?)結局, FreeBSD 5.2.1 の1枚目のインストールCDで起動して,ftp でネットワークインストールした. (ネットワークカードは em0 として認識した.) HD は ad0 として認識した.私の場合のパーティションは以下の通り.
ad0 0-62 Unused 63-31268159 ad0s1 4 NTFS/HPFS/QNX 7 <- Win XP 31268160-68613614 ad0s3 8 freebsd 165 <=* FreeBSD へ 68613615-68614559 - 12 unused 0 <= なぜか残ってしまった. 68614560-78140159 ad0s2 4 Compaq Diagnostic 18 <- Backup?ところどころ使えてない領域があるけど,あきらめる. BootMgr でブートするようにしたが,私の場合起動時に
F1 ? F2 ? F3 FreeBSDと表示されて,F1 だと WinXP,F3 だと FreeBSD が起動するようになった. たぶん F2 はバックアップ領域で,間違えてブートフラグを立ててしまったんだと思う. 実害はないし面倒なので,とりあえずそのまま使っている.
普通に XFree86 で XF86Config を作ってもいいけれど,Depth が 8bit しか動作しなかった. TuxMobilの openbsd on laptopsにXFree86のファイルがあったので, これを参考に,Depth を 24 にして,TrueType も使うようにした. 私が現在使っている XF86Configを置いておきます. これを使って X を起動すると,X を終了したあとの画面がチラチラするんですが, あまり実害はないのでほうってあります. (XFree86 で自動的に作った XF86Config だとチラつかない.)
(付記):2004年10月21日に上記の XF86Config を置き換えました. フォントを読み込む順番,あるいは読み込まないという処置によって, 以下の問題を解決したあとです.個々の工夫についてはもう忘れました…. 特に /usr/X11R6/lib/X11/fonts/cyrillic/ を FontPath から外すこと,が 大切だった覚えがあるのですが,なぜだったかなぁ….
(付記) 2005年8月にFreeBSDを5.4に変更し,ついでに XFree86 も 4.5.0 にupdateしました. i810 のドライバがちゃんとチップセットを認識してくれるようになったので, 上記のチラツキなどもなくなり,ずっといい感じです. 今使っているXF86Configはこちら.
純正のCD/DVDドライブ(USB 2.0 Portable Multi-Burner)を接続しても,
umass0: Unsupported ATAPI command 0x43と言われてしまうので, http://www.clave.gr.jp/ml/bsd-usb/200311/msg00004.htmlを参考に, /usr/src/sys/dev/usb/{umass.c, usbdevs,usbdevs.h, usbdevs_data.h} を書き直して kernel を作り直したら,無事に認識した. まだCDが読めることしか確認してないけど. (後日DVDが読めることは確認しました.) 「USBデバイス動作報告」はまだ出してません.すみません. 誰か時間のある人が先に出してくれてもよいです.
残念ながら,現時点ではCD-Rへの書き込みが,うまくいかない. cdrecord で 16倍とか8倍とかで書き込もうとすると,
umass0: Invalid CSW: tag 790 should be 791などといったメッセージが出て,書き込まずに終了してしまう. (数字はマチマチだけど,どれも1だけずれていた.) 2倍速なら,書き込むところまでうまく行くが,Fix の時に失敗してしまう. そして焼けた CD-R を mount しようとしても, device not configured と言われて失敗してしまう. 実際のメッセージをせっかくなので以下に書いておきます.
Track 01: Total bytes read/written: 664764416/664764416 (324592 sectors). Writing time: 1107.428s Average write speed 3.9x. Min drive buffer fill was 95% Fixating... cdrecord: Input/output error. close track/session: scsi sendcmd: retryable error CDB: 5B 00 02 00 00 00 00 00 00 00 status: 0x0 (GOOD STATUS) cmd finished after 10.042s timeout 480s cmd finished after 10.042s timeout 480s Fixating time: 33.053s cdrecord: fifo had 10471 puts and 10471 gets. cdrecord: fifo was 0 times empty and 8967 times full, min fill was 92%.speed=2 などと指定しても勝手に4倍速で書いているような気がする. man cdrecord にしたがって speed=0 や,-force も試してみたが,ダメ.
(追記) 2005年8月にFreeBSDを5.4にupdateしたあと,もう一度試してみたら,CD-Rに書けるようになっていた. でも原因はOSのバージョンじゃなくて,たぶんドライブにACアダプタで別途電源を供給したことによるような気がする. うまくいったときの状況は,以下の通り.
Win XP だと,[Fn]+[F12]も[Fn]+[F4]も動作するけど,FreeBSDでは動作しない. FreeBSD-users-jp 79698や FreeBSD-users-jp 79956や FreeBSD-users-jp 80122を 参考に
hint.apic.0.disabled="1" hint.acpi.0.disabled="1"を追加
hw.syscons.sc_no_suspend_vtswitch=1を追加
をした結果,zzz や [Fn]+[F4] は X 上でもちゃんと動作して,sleep してくれるようになった. でもそのかわり,以下の問題が発生した.
私にとってはデメリットの方が多いので,当面は FreeBSD で sleep を使うことはあきらめた.
tgif を起動すると
/usr/libexec/ld-elf.so.1: /usr/local/lib/libintl.so.6: Undefined symbol "stpcpy"と言われる.stpcpy がリンクされてないなんておかしい. たぶんライブラリの整合性が取れてないんじゃないか,と思うけど,それ以上はペンディング. これとか これを 見ると,tgif の問題じゃなくて gettext あたりの問題であるようだ.
その後この情報にしたがって, とりあえず /usr/ports/devel/gettext/work/gettext-0.12.1/gettext-runtime/config.hと /usr/ports/devel/gettext/work/gettext-0.12.1/gettext-tools/config.hを 変更して gettext を作り直したら,無事に使えるようになった. kinput2 を使った日本語入力も問題なし.
xemacs をファイルなしで起動すると,画面がちゃんと表示されなかった. マウスでリサイズすると直るんだけど…. これは以前の機種で xemacs on FreeBSD 4.8 を使っていたときも同様だった. 具体的には,
(setq default-frame-plist '(width 108 height 43))と二つ指定しても大丈夫なのに,
(setq default-frame-plist '(width 108 height 43 top 2 left 2))などと指定すると,この症状が出る.
上記の問題は,.Xdefaults と .xemacs/init.el の記述を調整してみたら直った. 今の私のこのあたりの設定は,
Emacs.default.attributeBackground: #f8f8f8 Emacs.geometry: 88x37+2+2 Emacs*fontList: -*-fixed-medium-r-normal--14-*:を指定している.
使用して2カ月くらいたつと,起動時など,HD を頻繁にアクセスするときに
TIMEOUT - READ_DMA retrying (2 retries left) LBA=xxxxといった感じで,ディスクの読みだしエラーが頻発するようになった.
ので,HD の寿命ではなく,FreeBSD 固有の問題ではなかろうか,,,と思っている. とりあえず BIOS で,[Config]→[Power]を選んで,Power Mode for AC などを Customized にして, CPU の速度を[Fixed Medium]に落としてみたら,上記のエラーが止まった. CPUが遅めでもなんでも,無事に FreeBSD が動く方がいいので,暫定的にこれで対処.
(付記) 2005年8月にBIOSをupdateしたら,また上記のエラーがときどきでるようになった. 速度を[Fixed Medium]からデフォルトの最高速に戻したら,エラーがでなくなった. 理由はまったくわかりません ;-)
PCMCIA/pccardがまったく使えない. これを参考に, NEWCARD, OLDCARD 両方の kernel で試してみたが,全然だめ. NEWCARD だと,PCMCIA スロットに何か挿すと,マシンがフリーズする. よくみると,非常に低速(高負荷?)で動いているようにも見えるけど. OLDCARD だと,PCMCIA スロットに何か挿しても,無反応. そもそもスロットがあることすら認識してないみたいに見える. どちらのカーネルでも
pccardc dumpcisを実行すると,
0 slots foundと言われるから,そもそもどちらもスロットを認識していないのかもしれない.
実害はないけどBootmgrのメニューを書き換えたい. Bootmgr ではメニューは自分で書き換えられないようなので, OS-BSでも入れるかな…?
Last modified: Wed Aug 24 09:03:31 JST 2005
by R.Uehara (uehara@jaist.ac.jp) |