それには色々と調べな!
 もしできたとしても (いや、データによっては変換結果をリアルタイムで演奏することは可能だって聞いた)、どのくらいレイテンシが発生するのか気になる。
			
そもそも timidityは止めて、AWE32に流すようにすればいいか。
			
 ヘッダのプロトコル番号をプログラムチェンジに変換して round-robin方式で別チャネルに流しながら、packetの大きさを volumeの大きさにすればいいかな。
			
音の高さはどうしよう。ずっと同じじゃイマイチだし、ランダムってのも変だし、なにかいいのは無いかなあ?
			
 そうだ、ポート番号って 127を遥かに越える数があるので、128で割った余りで、段々低い音から高い音に割り当てていこう。あまり低すぎても音が出ないので、c2辺りを基準音にしてそこから段々高くしていき、上限を越えたら(って越えるのか?!) また低い音から高くしていこう。
			
たしか全部で 65536個(16bit)のポートがあるから、これで tcp/ipポートスキャン攻撃を耳で感じる事ができるゾ! (^^)
		
 ここで新たな課題が。
		
W83977TF chipの DataSheetを入手したので、高速 serialに対応すべく挑戦中。W83877Fにも高速モードがあるのかどうか確認したいし。
		
midiモードとか、面白そうな機能があることも発見。
		
でも、よく考えたら over115kの最新 patchを探せば済む話かも? (midiモードは関係ないけど)
	
そうそう、netbootのパッチをまとめなきゃ。ついでに wide-dhcpに対して行なった FreeBSD用 vendor extensionの追加 patchも。
でも、なんで電源ユニット単品と安物ケース(電源付き)の値段があまり変わらないのか、非常に不思議だ。(安物ケースの筐体部分って、二束三文!?)
 というわけで、改造部分のプログラム・データサイズ (特に debug用 printf!!) を縮小してみると、何事も無かったかのように NFS root mount処理までちゃんと動いているのであった。(kernelの config fileに BOOTPオプションは無くても OK)
		
でも、2回に 1回の adapterが見つからない不具合だけはそのまんま(笑)。
		
 でも、このままじゃ userconfig_script読み込み処理を書くのが大変。プログラムサイズとの戦いになりそう(汗)。
		
 だってそれ以前に -DNO_TFTPのオプションを削除しただけで nb3c509.romが 16kBを越えてるんだもん(涙)。
		
もう、ROMには焼けない(汗)。(32kB ROMを使ってもらうしか(汗))
		
2回に 1回はかならず adapterが見つからないと言って resetする nb3c509.comをなだめつつ、またちゃんと kernelを読み込んだにもかかわらず、kernelが実行する bootpの反応がやたらと鈍くてハングしているとしか考えられない ep0や、まだまだ debug printfがたくさん入ったままの netboot改造ソースなど、いろいろ問題が山積み。
 それと補足。
		
kernelが実行する bootpの反応が鈍いのは、多分 kernelに埋め込まれてる IRQ番号が間違えているからでしょう。なんせ別マシン(celeron機)は、今さっき floppyから boot upして、全然元気に動いてるもん。(packet driver経由で!)
		
 ちなみに現時点での使用上の欠点(バグ)は、userconfig_scriptを自動的に読み込ませる手段が無いってことかな。(手入力だったら大丈夫だけど、kernelプロンプトを出すまでが大変。ま、tftpで転送する config fileに flags設定文を書けばプロンプトはすぐに出ると思うけど.....)
		
おかげで SB AWE64の midiが聞けない。(いちいち手入力は面倒すぎ)
		
 エラーで停止していたので、取り敢えず autobootとかコマンドを入力したんだけど、command not foundっておい(汗)、んなわけないはずなのに。仕方なく helpコマンドを入力してみると、なんと、途中までしか表示されない。と思ったら、突然画面が真っ白に!
		
ということで、原因は netbootの領域を壊していることが確定。どのタイミングで壊しているのかな〜?
		
 それはやっぱ大げさなので、現在の netbootで言うところの tftpで読み取ってくる時のコマンドを拡張して、loadコマンドを新たに追加する。
		
/boot/loaderと同じようなことができるようにする。それで十分だよね?
		
(autobootしか実行手段が無いのは結構不便。/boot/loaderと同じように、先行 loadができるようにしないと。それだと unloadコマンドも欲しいなっ)
		
 そこでチャーンス! シリアル切り替え機のスイッチをテスト機側に切り替え!、mule上で kernel compile directoryへ移動!、さらに以降のコマンド『M-x gdb』、『gdb kernel』、『target remote /dev/cuaa0』を連続実行!!
		
 O.K.!! ちゃんと stack traceできてるッ。これで、前々からずっとやりたかった、サーバー機で作った kernelの remote debugができるッ。
		
これなら file systemには一切影響なし!! 完璧だぁッ!!!
		
ということで、このまま改造を続ける。
 早速読んでみると、しっかりと初めの方に載っていた。さらに i386の仮想メモリに関する概念まで説明してくれている。
		
これなら netbootの i386固有の初期化処理(netboot自体 i386にベッタリなんだけどね)の部分も理解でき、netbootの改造に確信が持てそう。
		
 とゆ〜ことで今使ってます。使い始めて間もないんだけど、一般の単語、言葉が出てこないなどということはまず無く、出てくる説明もしっかりしているのでかなり便利。
		
あとは、英語のままでいいから jargon fileを検索したいな。(笑)
		
 ところで最近、いつも使用している (使えないことの方が多いんだけど) XF86_Mach64では無く、間違って XF86_SVGAサーバーを起動してしまうことがあった。
		
それがなんと、今は回復していないハズの画面表示の障害が、まったく発生していない。
		
windowをドラッグした時とか、スクロールのパフォーマンスはすごく悪いのだけど、解像度等の設定はちゃんと反映されていて、パフォーマンスが悪いこと以外、通常の操作にはまったく問題がない。
		
回復したのかと思い XF86_Mach64に設定し直してみたが、やはりノイズが表示されて使い物にならなかった。
		
ということで、この事実を報告し、さらに XF86_SVGAでの初期化部分を XF86_Mach64側からでも設定で使えるように依頼すべく、Xサーバーのメッセージ(SVGA, Mach64両方)を記録し、XFree86@XFree86.orgにメールを出した。(英語で)
以上。
なななんと、install処理が正常に進行中。
		
う〜ん、うちの環境では Lizardが正常に動かないみたい。downloadミスかなあ。
		
これで Voodoo2用テストプログラムが動かせるってもの。
		
(は! Voodoo2デバイスドライバが 2.2 kernelに対応していなかったりして.....(汗))
		
ところで ktermから rloginした感じでは、3.1-RELEASEよりも Key responseが良い。
		
3.1-RELEASEでも、直接 ktermを張り付けた場合は responseが良いんだけどな。
		
それからそれから、ちょっと CVSを覗いてみたんだけど、3.2が出る以前に BusLogicのドライバがちょっと変更されている模様。setup intrとかなんとか。
		
これで probeの問題が解決していたら嬉しいんだけどな。
		
buildworldが終わった。
		
しかし画面に終了時刻は表示されないみたいだ。(表示するのは X Window Systemの方だった)
		
でも teeコマンド経由で logを録っていたので、その log fileのタイムスタンプを見てみた。
		
んで、そのタイムスタンプによると終了時刻は 10:13ということなので、掛かった時間はと言うと、なんと 1時間弱。
		
3.2-RELEASEの buildworldなど、1時間もいらないってか! なんてヤツだ > celeron300A(450)!!
		
一応マシン環境を書いておくと、HDDは UDMA33で HDDにも優しい softupdatesを利用してます。
やっぱり、まだ netbootは ELF対応されてなかった。このまま改造を続けるしか。
動いたらサーバー機に装着して、UW-SCSIの 9.1G HDDを 2つほど追加して、ccdでストライピングだー、、、なんてできるわけないか。いくら安くなったと言っても IDEの倍するんだもんな。
kernel imageのメモリ位置とか。
		
再配置は不要だと思うけど...
		
普通の関数形式で呼び出して大丈夫みたいで、引き数の型とかにも変更は無いようだし。
		
SSYMとか、metadataとかの細かな扱いを調べるのが結構面倒。
		
で、まだ解析中。
		
で、ただいま改造中...。なんと、kernelに引き渡すデータは、kernelを普通に関数呼び出しする際のパラメーターとして渡しているだけであった.....。(aoutの場合)
		
elfでも、おそらく同じかも??
		
恒例の芋蔓式。でも今回はちょっとだけ進展しているので、いつものように結局何もできないまま時間だけが過ぎてゆくことは避けられそうだ.....。
うん、fj.sys.nextとか見れて、満足。(SPAMは見苦しいけど)
さて。
		
私の利用している mirror siteは、Master siteの permission情報を再現していないため、手で設定しなければならない。面倒だ。
		
で、また CD-RWを焼く。RWの消去も入るから、約 1時間強かかる。
		
install floppy実行。
		
ちゃんと入っているはずなのに、lizardが起動できないと言ってくる。
		
でもまあ、前回とはメッセージが異なるので、確実に進んではいる、けど。
		
よく見ると live/activateは shell scriptなのに、実行 permissionが付いていないことに気付く。
		
………また焼き直し。
ということで今度こそ!
		
またもやメッセージを吐いて停止している。
		
『root filesystemがマウントできない』という感じのメッセージ。
		
install scriptを調べたりして気付いたのだけど、この場合の root filesystemとは、install先の事のようだ。
		
そもそも install先を指示した覚えは無い。そりゃ mountできない (mountしていない)ハズ。
		
何かがおかしい。(lizard自体が動いていないという事実)
………ところが、install floppyが起動しない。正確には boot直後、画面が切り替わった後の kernelイメージ読み込みに失敗しまくっている。昨日はちゃんと動いてたのに!
		
もう一度 ddコマンドで install floppyを上書きするも、今度は LILOが『LILO』と表示し切れず、『LIL』まで表示(汗)した途端に画面が暴走。さっきより症状悪化してるやん!!
		
仕方なく別の floppyに書き込んでみた。そしてようやく起動。ふぅ。(起動に失敗した sony製 dos/v format済み floppyは、勿論ゴミ箱行き決定!)
		
今回は CDからの installなので、module floppyには入れ換えずにそのまま放置しておく。
		
順調にハードウェアの検出が進んでゆき、以前は失敗していた install手段の auto-probeだけど、今回は CD-ROMの検出に成功しているようだ。これでようやく!!
		
がしかし、明るい灰色一色で塗りつぶされた画面の中、黒背景に灰色の文字でメッセージが表示され、おまけにシェルプロンプト(#)で停止している。なんてこったい!
		
メッセージによると、Lizardという PC66の RPG(懐かしい!!)じゃなくって、install用 softwareが起動できないようだ。
		
原因調査のため downloadしたファイルを漁ってみたが、それらしきファイルは見つからない。
		
またもや ftp siteを徘徊して、ようやく lizardという名の directoryを見つける。
		
Lizard………それは、live/下に存在した。
		
liveイメージなんて不要と決め込んでいたのが失敗の元(って確定したワケじゃないけど、それ以外考えられない)だったようだ。
		
OpenLinux 1.3の CDには存在しなかったものだから、てっきり。
		
download日数を、もう 1日追加!(笑)
これは憶測でしかないけど、NFS経由で installするためには、おそらく bootpの設定で root filesystemの位置を download先に指定すると、うまくいくのかもしれない。
		
download終わったら、ちょっと試してみよー。
		
あっとそれから勘違いする人がいるといけないので、ちょっと補足。
		
前回 downloadした時、ちょっと手順にミスがあって col/data下のファイルが一部 downloadできていなかったんだ。これが CD-ROMの検出失敗の原因だったみたい。
		
やっぱり Win9xで日本語 bitmap fontは使えないのかな?
………今度 LDAP softwareを入れて遊んでみようかな。(NetMeetingは自由にサーバーを指定できるようだし。)
ちゅ〜ことで、早速フリーソフトを探してみる。
		
1バイト文字 Font(いわゆる半角)に関しては FONTX2形式からの変換ソフトを見つけるが、Win98ではそのデータをうまく扱うことができなかった。でもまあ、98から直接吸い出すソフトも見つけたので、なんとかなるでしょう。
		
しかし、2バイト文字 Font(いわゆる全角の類)に関して、まったく情報が見つからなかった。
		
プログラムを書こうかと思っても、ファイル構造や、肝心のビットマップ Fontを Win9xで扱う方法を僕は知らない。
		
………行き詰まる。
		
仕方なく、せっせとダウンロードに励むことにした。
		
………約 400MB (Liveイメージとソースを除く)。テレホタイムを最大限活用したが、4晩も掛かった(汗)。1晩 100MBの計算になるぜ。
		
まず、Install over NFSを試したかったけど、Network I/Fがうまく動かないようだ。
		
仕方なく、CD-RWへテスト焼きして Installを試してみる。
		
…なに? 配布 CDが見つからない!? ………これもうまくいかないや。
		
OpenLinux 1.3の CDを参考にして .mkisofsrcをいぢり倒したりもしたが、やはりうまく行かない。
		
なぜだー。
		
何度か試行錯誤しているうち、kernel起動時の待ち時間中に module floppyに差し替えることで、Network I/Fは無事動くようになったみたいだ。仮想 consoleを切り替えた時、bootpからの返事をちゃんと受け取っていたのを確認。
		
で、Install over NFSだッと思ったのも束の間、Install手段までもが auto-detectionらしく、うまく動かないというか、自動で Skipするんだけど………(MENUらしきモノが無い)。
		
なぜだー。
		
でもそう言えば、NFS protocol versionが違うとかなんとか言うメッセージを見たような見なかったような………。
		
FreeBSDは最新の version 3を基本としているけど、現在 Linuxは version 2だとかなんとか言う噂も。
		
その後何度か ftp siteを徘徊しているうち、READMEには以下のような感じの文章が記述されていたのを発見。
		
『fileを downloadする場合、ちゃんとパーミッションも保存しておいてください。』
		
私が利用している Mirror siteである mirror.nucba.ac.jpでは col/bin下の fileは全て -r--r--r--なのに対し、Master siteの ftp.calderasystems.comでは -r-xr-xr-xだった。(爆)
		
他にパーミッションが影響しそうな fileは見当たらない。これが CD-ROMから installできない原因かも。
		
んで、さっき CD-RWを焼き終わった所だ。(script書いたので、celeron機は全自動 CD焼き焼き機と化している。ちなみに今現在 TrackAtOnceしか実現できていないけど、FreeBSD上で cdrecord使って焼いてマス。)
		
………今日はここまで。