Jul 24, 2008

RTL8102E@OS/2

ポスト @ 22:26:20 | PC

あっちこっちで喜びの声を上げてしまったのでここに書くのもイマサラですが,Intel D945GCLF AtomマザーのオンボードLAN(RTL8102E)をOS/2から使うことに成功しました。rtsnd323+PCI-IDパッチがダメだったのは先日書きましたが,みんみんさんの「LinuxではRTL8169ドライバで動いてる」との声にヒントを得て,chagrinさんのrtgnda(v1.12)に同じくPCI-ID書き換えパッチを施したらこっちはうまく行きました。

これで,ビデオ,サウンド,LANの各オンボードデバイスがOS/2から使えるようになり,外付けハードウェアが不要なぶん,MTBFの向上が期待できます。(嘘。そんなことちっとも考えてません)

んで,ちょうどOS2World.comのフォーラムでMSI Wind notebook U100 (Atomミニノート)のネットワークが使えないという話題がありまして,どうやらこのU100もデバイスはRTL8102Eらしいので,パッチ当てrtgndaの情報を流したところ,そっちもうまく行ったようです。「作者に頼んで正式にサポートに追加してもらえ」的なコメントがあったので,chagrinさんに頼んでみようと思いつつ,最近お姿をあまり見掛けないし,rtgndaのドキュメントには「改編自習。その再配布も自由。ただしCopyrightはあなた」的なことが書いてあったので,ちょっと自分でビルドしてみることにしました。といいつつも,いやぁ〜,組み込み系はともかく,PCでアセンブルなんてDOS時代にもやったことが無いんです。chagrinさんやsavaさんには笑われちゃうレベルでしょうけど,以下,ビルドに成功するまでの試行錯誤。

  1. とりあえずアセンブラはMASMってどっかで聞いたよ!
  2. 今は亡きDDKのローカルミラーを漁ったらmasm60.zipってのがあったよー!
  3. 適当なディレクトリに展開して,ddktools/toolkits/masm60/binpにPATHを切ったよ!
  4. rtgndaのsource.zipを展開したらMakeFIleが出てきたよ!
  5. いつもの環境でmake -f MakeFile してみたよ!
  6. MakeFileの構文エラーって言われたからコマンド行の前のスペースをタブに直したよ!
  7. もいっかいmake -f MakeFile してみたよ!
  8. アセンブルは通ってるっぽいけど,link386でエラーが出てるよ!
  9. Dos16xxxが見つからないらしいよ!
  10. ライブラリにOS2.LIBとかtookitのそれっぽいのとかを指定してみたけどダメだよ!
  11. 途方に暮れたよ!
  12. でも,ふと「makeがダメなんじゃ?」って何故か思ったよ!
  13. MakeFileを元に戻して,nmake.exeってのを呼んでみたよ!
  14. linkも通ったよ!(…そういうものなのか。)
  15. 最後のlxLiteでエラーが出たので,lxLiteにもPathを通して,もいっかい!
  16. でけたー!

…なぜnmakeだとうまく行くのか(というか,なぜgmakeだとダメなのか)いまだに分かっていませんけど,とにかくソースコードレベルでRTL8102Eサポートを入れたドライバが作れました。掲示板とかでchagrinさんには連絡を乞いつつ,コンタクトできなかった場合は自分でリリースすることも視野に入れておきましょう。