5.1. トラブルシューティング

5.1.1. 一般的情報

問題に出くわしたら、まず以下を試してみてください。

5.1.2. トラブルシューティング技術

私は強力なハッカーというわけではありませんが、ここには Linux/IrDA ソフトウェアのエラーやバグを追跡するための技を集めてあります。

5.1.3. PCI デバイス番号

Daniel R. Risacher さんによると 「Palm III と私の Tecra 8100 (2.2.17 使用) で同期をとるため、 /usr/src/linux/include/net/irda/toshoboe.h で "#define PCI_DEVICE_ID_FIR701 0x0701" を "#define PCI_DEVICE_ID_FIR701 0x0D01" と書き換える必要がありました」

5.1.4. scanport

チップの正しいデバイス ID を得るには、scanport コマンドが使えます。これは hwtools パッケージの一部です (Debian では。他のディストリビューションでも多分同じでしょう)。 単にコマンドを入力すれば、コマンドで 0x100 から 0x400 までの I/O ポート (標準的 ISA のアドレス範囲) をスキャンします。0x400 以上は 0x400 以下のデバイスのシャドウがあり、更に上は PCI デバイスが使っていますので、 標準では 0x400 以上はスキャンしません。「結局 inb を使って私のチップの I/O アドレスを手で探すことになりました。 運良くそんなに先まで見る必要はありませんでした (最近のサウンドカードは 0x530 付近に居座っており、0x220 を従来モード互換のために押さえています)。 普通は、デバイスがアドレス空間内でどこにいるか分かっていれば、 ドライバでそれを指してみて、それがドライバが期待しているデバイスかどうかドライバに検出させることになります。 これは完全に安全とは言えませんが、全ドライバに全 I/O ポートをそのドライバが扱えるものを求めて総当たりさせるよりはずっと安全です scanport はポートの読み込みを行うだけで、これは通常安全です [2]

Notes

[1]

訳注: 割り込み処理を引き続いて行うこと

[2]

訳注: PC-AT の仕様上は 16bit フルデコードしろということになっているが、守っているデバイスは少ないため、結果として上のようなことになる。