はじめてのはっきんぐ
どうもうちのパソくんが USB を認識してくれない.せっかくデジカメなど
あるのだから,SD メモリーカードなど認識してくれるととってもとっても
嬉しいですが.じゃあ Windows 使えよとか言う子は馬に蹴られてしまえ.
いや,まあ120GBのうち40GBくらいは確かに WindowsXP とか入れてるのが
実状なんですけどね.あんまり起動しないからなあ.ふと気が向いた時に
起動すると,死ぬほど Windows Update させられて再起動を求められて,
結局そのまま FreeBSD をブートさせてしまうこと度々.機械を使う用事は
もう全部こっちでまかなえるんですよねえ.むしろ,メールの設定とかは
FreeBSD のほうでしかやってないから,Windows あげると通信できないし.
結局,巨大なメモリーカードリーダーソフトとしてしか Windows を使って
いないことに気づく.うーん.ちょっともったいないけど.まあいいや.
で,少し前に OS のバージョンを 5.1 にあげた時に USB は使えなくなって
しまったので,おそらくそこが原因と思われる.じゃあ 4.x 系列へ戻せば
USB 復活か? と皮算用を行い,さくりさくりと4系最新の 4.9 をごろごろと
インストールすることにしたのです.ああ,なんと有意義な連休の使い方.
パーティション切ってー,/home 以外全部 newfs しちゃってー,がりがり
設定をやり直してー,接続環境はルータのDHCPにおまかせでー,などと軽く
見ていたわけですよ.いろんな package も FTP 経由でころがしまくって
さああとは再起動だ.デバイス確認メッセージがうわーと流れて.おのおの
ファイルシステムをマウント…しない? え? /home だけマウントできない?
顔色が変わりましたよ.root で /home/shiromal とか移動して ls 打つと
おためごかしなドットファイルしかない? もしかして間違えて /home まで
フォーマットしてしまった? 顔どころか身体全体から血の気が引きました.
…よく考えてみると.4系と5系ではファイルシステムの仕様が異なるので
こういう目に遭っているのだな.考えがそこに至るまでに,物凄い勢いで
どうしようどうしようどうしようという感情がぐるぐる回ってましたが.
とりあえずばたばたと 5.1 のインストール CD を捜し出してリトライだ.
ちゃんと見事に /home は復活してくれたのでハッピー.むしろ cvsup で
いろんな package をアップデートできたのでこれはこれでよしとしよう.
でもこれだと前の状態からほとんど変わっていないわけで.あれこれ調べて
USB 認識のための修正パッチを発見.でも実はこれまで patch コマンドの
お世話になったことがないのです.ということでびくびくしながら OS の
ソースの海へ潜っていくことに./sys/cam/scsi/ とかにもぐりこみ,まず
patch 対象である scsi_da.c を発見.えいやっと patch を当て,そこに
scsi_da.c.orig があることを確認.うむ,これで少なくともひとつ前まで
戻れるだろう.他にもいくつか OS そのものに手を入れることになる.まあ
それがオープンソースのよいところなのでしょう.逆に,手を入れただけの
責任もかぶることになるわけですが.…いいもん./home さえ newfs せず
保持できれば,後はどうなってもいいやー.とか言う前にバックアップを
きちんと取っとけ自分.絶対いつか泣く日が来るから.めんどくさいけど.
で,カーネルの再構築.これはさすがにやったことあるから気楽なもの.
make depend;make ぽちっとな.…おや,なんだかしらないけれども冒頭で
すぐコケる? ああそうか,CC=gcc33 だからダメなのかも,とすぐに気づく
これまでとは少し違った賢いわたくしを褒めていただいてもよくってよ.
ということで環境変数を CC=gcc に戻し,再度 make depend;make だっ.
ういうい,ちゃんとコンパイルが始まってますね.ずずーっ,ああお茶が
おいしい.ふくふくと茶菓子などつまんでいる間に再構築は無事に完了だ.
さくっと make install して再起動.デバイス認識ログをぼーっと見つめ…
ちゃんと USB カードリーダライタを認識できてるっぽいぞ.しめしめ,と
うれしそうにデジカメで適当なテスト画像を撮り,カードリーダにぷちっと
差し込む.ちゃんとランプがついてくれているよ.FreeBSD 5 系は自動的に
デバイスを認識して良きに計らってくれるので,差せば新しいデバイスが
/dev/da2s1 とかいった感じで作成される.mount_msdosfs すればちゃんと
/mnt あたりにマウントされる.root でしかその下に潜れないようだけど,
このさい些細な事だよね….SD カードの中のファイルをつまみ出すことも
できたわけだし,これにて無事にはじめてのはっきんぐ終了.ばんざーい.
そして欲が出て USB 2.0 に挑戦して惨敗したのは秘密にしておきましょ.
あと,cvsup しすぎて OS が FreeBSD 5.2-BETA になっちゃったのもね.
さらにもうここまでくればデジカメ自体がカードリーダになってくれるので
このカードリーダライタに費やしたお金は何? とか考えるのもナシナシ.