[intro] ということで、今月から NetBSD 日記になりました。 単にスコープが x68k だけだったのが i386 にも広がっただけ。 といいつつたぶん FreeBSD や Human68k のことも書いてそうだけど。
[i386] マザーボードを何にするかが結構問題だった。 当初は研究室で使い慣れていた ASUS にする予定だったが、 うちの回りで何度か些細な事件が起きたことを考慮に入れたり この辺に詳しい会社の先輩に 聞いたりしているうちに Gigabyte にしようと思った。 Gigabyte のページを見て下調べをして、GA-6OXE にすることにした。 決め手は PCI スロットが6本あること、CT5880 を積んでいること、 ATA100 に対応していること、COM2 がマザーボードから生えてること の4点だった。PCI スロット6本は説明するまでもないね。 USB のサポートが弱い(と思われる) *BSD を使うからには PCI バスくらいはたくさん用意しておかないと。 CT5880 は Linux ですらまともにサポートしていないという 新種のサウンドチップ。こんなの選んで何するかというと、 わくわくしながら FreeBSD か NetBSD でサポートされるのを 待つこと。ああ、あほだ...。 ATA100 も説明不要。せっかく一世一代の決心で(大げさ) 買うんだから ATA66 にする理由がない。 COM2 がマザーボードから生えているのは大きい。 わざわざ PCI スロット6本なマザーボードを選んでいるのに COM2 のために PCI のスロット(の外に見えてる部分) 1本占有されたんじゃ何の意味もないからだ。 更に、どうせオンボードビデオチップなんて X じゃサポートしてなくて ビデオカードを買う羽目になるんだから、COM2 のところから VGA が生えてても仕方がない。それに SLIP の実験とかするつもり なので COM2 は欲しい。 ということでいろんな観点から 6OXE が最適なボードだった。 あと、ボードが青いというのもちょっと格好よくて気に入ってたり(笑)。
6OXE-1 というのもあるらしいのだが、Gigabyte のページには 説明が載っていなかった。 以前仕事で Gigabyte の別のマザーボードを調べた時は -1 はサウンドチップを抜いたやつだったのでたぶん今回もそうだろう。
[i386] ♪金曜日、明日は休み、パソコンショップ寄って、シャララララ、 たくさん買い込んで...。
ああ、あほだ...。でも事実だったりする...。
メモリは 128MB で十分だと思ってたんだけど、先輩に 256MB を 勧められて、更に PC133、CL2 が速いと聞いたので それを買うことにした。 FDD なんてどれ買っても一緒なので、とりあえずあるやつを 買うことにする。 NIC はこれまで使った感じで一番お行儀のよかった 3Com 3C905B にする予定で、次候補は Intel EtherExpress Pro/100 の 予定。 あと PentiumIII/1GHz は発熱量が多く 933MHz 版とかと 比べて純正のヒートシンクが一回り大きく、そのためソケットの回りの 部品配置によってはヒートシンクが装着できないマザーボードがあるらしい。 Gigabyte のマザーボードはそれに該当するので 純正より小型で強力なヒートシンクを買わなければならないらしい。
ということで、今日の買いものはマザーボード、メモリ、ヒートシンク、 FDD、NIC の5つ。会社帰りに某P工房に寄ってみるが NIC は 3C905C が置いてあって EtherExpress は売り切れてた。 905C は FreeBSD か NetBSD どっちかでサポートされたっていう commit log を見たことはあったんだけど、もう片方でどうなったか 見てなかったので万が一サポートされてなかったら、 特にインストール時に泣くこと必至なので (というか研究室にいた時に何度これで泣かされたか...) 買わないことにする。
マザーボードは取り寄せになるらしい。 もともと取り寄せは嫌いな性分なのだが、 まあいいか、と思ってお願いする。 6OXE か 6OXE-1 のどっちかと聞かれたので、何が違うのか 聞いてみた。 「6OXE は Dual BIOS、-1 は Single BIOS で、違いはそれだけ」 とのこと。何だ、サウンドチップが除かれてるわけではないのか。 それで3000円違うんだったら -1 にしておこう、と思い GA-6OXE-1 を 取り寄せてもらう。前金3000円が必要でもしキャンセルしても 返却しないとのこと。余計に嫌だったんだがまあいいやと思って了承する。 これが間違いその1。
[i386] 今日は、県主催か何かのいんちき IT イベントの お手伝いとして広島市内に出る。当番は昼からだったので ちょっと早めに出てパソコンショップに寄ることにする。 昨日、某Dパラ広島店の場所を知ったのでイベント前に寄ってみる。
あ、6OXE-1 発見。しかも昨日の某P工房より安い...。 おまけに 6OXE-1 には CT5880 が載っていない。 これはどういうことだ...。某P工房のお兄ちゃん サウンドも載っているって言ってたのに。 かなり賦に落ちないが、まあそれはそれとして、 とりあえず 20GB と 40GB の HDD を買う。 さらに EtherExpress も置いてあったので買う。 よさげなケースも置いてあった(買いはしなかったけど)。 最初からここに来ればよかった。(;_;
[x68k/okiadpcm] ADPCM の再生は問題なくできて、ソースも 公開したので、残るは mulaw の再生だが、、と思って途方に 暮れてたけど sw_code で呼ばれる okiadpcm_mulaw_to_adpcm() の 中に printf 入れたことで、原因判明。 sw_code って start_output ごとに毎回呼ばれるんじゃなくて MI audio layer で適当にバッファリングしてそこで まとめて呼ばれてるのね。 だから最初は再生できてて途中からノイズが混じってたのか。
そうと分かれば答えは簡単。今の MI audio ドライバは sw_code によってデータが縮小することに対応してないのが 原因。だからここをつくってやればいい。
とりあえず /sys/dev/audio.c 見ても何がなんだか さっぱり分からんけど、簡単3分間ハッキングしてみる。 おおーっ、mulaw が再生できたーっ。 と思ったのも束の間、曲の半分のところで正常終了してしまった。 むう入力データ長と再生用データ長を同一視したか。 まあもうちょっと見てれば直せそうだ。 面白くなってきたところでタイムアウト。また来週...。
[etc] 1.5.1 が BETA になったらしい。5月にリリースされるらしい。 ちょうどファイルシステムもずたずた(2001/03/04あたりの 日記参照)なので、BETA テストのお手伝いも兼ねて 入れ換えようかな。 と思ったけど、どうやって入れ換えればいいんだろう。 まさか 30kbps しか出ないシリアルでうん百MBのデータの インストールはできないし、やっぱ i386 マシンが出来上がって からそいつで CD に焼いて CD からインストールしよう。
そういえば loadfont のバグ修正したやつ send-pr でもして 本家に入れておいてもらえばよかったかなあ。
[i386] 5月連休を有意義に過ごす(?)ために、連休までには なんとしてもマシンを組み立てなければならない。 ということで月曜日にも関わらずちょいと仕事を早く抜けて (といってももちろん定時は過ぎてるが)、 紙屋町の某Dパラに向かう。今日は残る CD-RW、ビデオカード、 サウンドカードを買う予定。これが揃えばあとはケースだけ。 会社のこの辺に詳しい人たちにいろいろ聞いて ビデオカードは1万円切るくらい枯れたやつ、GeForce がいいらしい、 CD-RW は Plextor、という情報を持っていた。 ビデオカードは、研究室にいたころからの馴染みで XF86_Mach64 でさくっと動く ATI の 3D Rage シリーズにしたかったんだけど、 案の定古すぎて置いてない。 で、GeForce2 MX が1万円でが置いてあったのでそれにする。 2 とか MX とかついてるけどまあ大丈夫でしょう。 とか思ったのが間違いその2。 CD-RW は Plextor の書き込み12倍、書き換え10倍、読み込み32倍の まあまあいいスペックのやつにした。 32倍ってのが私にとっては心地よい。 40倍速以上になると回転音がうるさいからね。 サウンドカードも枯れたのは置いてなくて困ったが Yamaha YMF754 を積んでいる Xwave-6000 ってやつが 2980円で叩き売られていた。 これは NetBSD ではつい最近みのうらさんが commit されてたやつだから 少なくとも -current にすれば大丈夫だし、 FreeBSD 4.x でもサポートしていたし、駄目でもまあ安いしと思って選ぶ。 これで残るは、マザーボードが届くのを待って それと並行してケースを選ぶだけとなった。
某Dパラを出てすぐ近くにある某Sマップに寄る。 今度は GA-6OXE と GA-6OXE-1 が並べて置いてあった。かなりショック。 Dパラの大きな紙袋を持ったまま(笑)、店員さんに両者違いを聞く。 6OXE は Dual BIOS だが 6OXE-1 は Single BIOS である、 6OXE には CT5880 が載っているが 6OXE-1 には載っていない、 ただし AC'97 は両方に載っている、 6OXE は DIMM スロットが4本だが 6OXE-1 は3本である、とのこと。 うーむ、確かに -1 にもサウンドチップが載っているから 嘘ではないが、やっぱり某P工房にはかなりだまされた気分。
[i386] 昨日、某P工房からマザーボードが届いたという連絡を 受けたので早速受け取りにいく。 かなり賦に落ちないのだが、ごねるのもアレなのでそのまま 受け取る。持ちにくい大きさの袋を提げて紙屋町のSマップまで 歩く。
[x68k/SxSI] 3階の中古コーナをみていて思ったが、ぼちぼち SxSI 実験用にもう1台1GBくらいの SCSI HDD の 中古が欲しいところだ。
[i386] さて、マザーボードも入手して残るはケースだけとなった。 ケースを広島市内の店で買うと自宅までの輸送手段に困る (宅急便も面倒だし) ことになるので、ケースだけは地元の いんちきパソコンショップで買うことにする。 ちなみにケースへの要求は「5インチベイが4つ、3.5インチベイが2つ以上、 3.5インチシャドウベイが2つ以上、電源は念のため300W以上で、 最近は普通になった片側ずつ開くタイプのミドルタワー」。 店に行ってみるとなんとも要求にマッチしたケースがおいてあった。 よさげなので中を確認して買う。電源も350Wだしこれで 8000円くらいだったので、まあまあじゃないかしら。
うちに帰って早速組み立てにかかる。 この辺は研究室にいた時と今の仕事でさんざんやってるから、 痛くも痒くもないし、何も目新しくもない。 お行儀の悪いケースだと取り付け順序に依存関係があって CDドライブをつけたあとで、ああ FDD を先につけないと いけないんだった、、、とかってやり直すことがよくあるんだけど、 このケースは思いの他お行儀がよくて、そういうことが1度もなかった。 気づかない間に手を1箇所切ってたけど(笑)、2時間くらいで無事完成。
電源を入れてみる。おおー、動く動く。 ということで早速設置して NetBSD のインストール。
NetBSD/i386 1.5 自体のインストールはほどなく終了。 とりあえず tcsh だけ pkgsrc から make しておく。 そういえば dmesg 見ると、AC'97 も 1.5 じゃサポートしてないのね。 じゃやっぱり -current にあげないとサウンドは使えないのか...。
さて、まだ pkg いろいろ入れないと NetBSD は全然使えないけど、 それ以前に wscons でキーボードの設定ってどうやるんだっけ、とか X インストールするのって...とかいろいろ調べものが必要なので さっさと FreeBSD もインストールすることにする。
[FreeBSD] BSD Magazine の付録 CD-ROM を使って FreeBSD 4.2-RELEASE を入れる。 私は、学部4年で研究室に入って初めて FreeBSD を触ったので FreeBSD 歴4年目で初めて CD-ROM インストールというものをした。 まあ FreeBSD のインストールなんて何百回とやってきた (脚色あり)ので、あっさり終了。
脚色あり、と書いたが、もしかしたら100回くらいはやってるかも 知れないと思い始めた。初めて FreeBSD (2.2.5) を入れた時、 最小インストールだとカーネルがインストールされないというバグが あってそのせいで20回くらいはやってたからねえ。 あれからマシンが1台研究室にくるたびに FreeBSD を入れ、 時には最初から FreeBSD 2.2.x と FreeBSD 3.x の Dual boot に し、今の会社でのアルバイトは PC 4台組み立てて FreeBSD の インストールだったし、最初の仕事も FreeBSD 6台インストールだった。
その日は sysinstall から必要そうなパッケージを 全部選択しておいて寝る。FLET'S 万歳。
[FreeBSD] 朝起きるとパッケージのインストールが終っていたので 続いて FreeBSD でさくっと X も立ち上げようと思ったが 立ち上がらない。X サーバがビデオカードを認識できないようだ。 ウェブとかで調べてみると案の定、この GeForce2 MX は XFree86 3.3.6 ではサポートされていなかった。 はう。しかし 3月に出たばかりの XFree86 4.0.3 なら サポートされているという。 仕方なしに 4.0.3 のバイナリパッケージ(FreeBSDのね)を一式 ダウンロードしてくる。 X の 4.x 系は初めて触るので XF86Config の書き方に かなり戸惑うもののなんとか X を動かすことに成功した。 おおー、きれいきれい。1280x1024 出るし。
ということで X で動くパッケージを一通り入れて FreeBSD はとりあえず完成。
[i386] 続いて NetBSD/i386 で X を動かす。 こっちも X のミラーサイトから NetBSD 1.5 用の 4.0.3 バイナリを とってくる。4.0.3 は 4.0.2 からの差分っぽいので 4.0.2 も とってくる。 NetBSD と FreeBSD ではマウスの設定が違うので ちょっと手間取ったとはいえ、 さすがに FreeBSD 側で試行錯誤しただけあって すぐに X は立ち上がった。
しかし、X を終了させてみてびっくり。 画面がかなり暗い。なんか NetBSD 系の ML で最近聞いたことのある症状だ。 と思いつつもう一度 X を立ち上げて終らせてみる。 はっ、真っ暗になった。うーむ、ちょっと使えねえ。 まあこれは XFree86 4.x on NetBSD の問題なので、 NetBSD リポジトリの xsrc ではじきに直ってくれるでしょう。 どうせわたしゃ xdm 使うから X 終了させてコンソールで作業することって ほとんどないからよしとしよう。
[FreeBSD] FreeBSD 環境を整えなければ、ということで MPEG1な動画を見れるようするため mtv を入れる。 研究室にいたころは 1.1.4 だったが最新は 1.2.1 になっているようだ。 が、なぜか処理落ちしてる。 研究室の PentiumII/450MHz でも快適に動いていたのに、 PentiumIII/1GHz で処理落ちするとはどういうことだ...。 しかも途中で音がなくなって「お金払ってね」と出た。むう。 金なんて払えねえ。クレジットカードもってないからね:-)。 仕方なく、相変わらずいまいちな MPEG2/Quicktime プレーヤ xmovie を 入れる。こいつ MPEG2 も Quicktime も再生できないので 結局 MPEG1 プレーヤとしてしか使えない。まあ MPEG1 がちゃんと再生 できたから許してやろう(笑)。 また時間ができたら smpeg も試してみよう。 てゆうか、どれでもいいから NetBSD で動かないかなあ。
[x68k/okiadpcm] i386 マシンで遊んでばっかりでも いけないし、今日は大物ダウンロードで回線ふさがってるから 久しぶりに X68k の前に座って頓挫している okiadpcm の ulaw 対応化 を行なうことにする。 MI audio (/sys/dev/audio.c) あたりに printf を 入れたカーネルで ulaw ファイルを再生してリングバッファの 推移をみる。...つもりだが何のことだかさっぱり分からん。 あー、カーネルのシリアル番号(っていうのかな)が 100 越えちゃったよう。 MI な話だし、そろそろ NetBSD ML で聞こうかな。
[x68k/okiadpcm] と思ってたら、みのうらさんに なんで MI つついてるの? と言われた。だってどこつついたら ulaw が再生できるのか分からないんだもん。(^^;