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

5.1.1. 一般的情報

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

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

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

一部の ThinkPad モデルでは、プリインストールされている M$ OS で再起動して、 ThinkPad ツールを使って IrDA ポートを有効にしなければなりません。これを行う Linux 向けのツールは現在ありません。これは同時に内蔵シリアルポート (ttyS0) を無効化します。DOS 用のツールは PS2.EXE で、私の知る限り tpctl はこの機能を持ちません。この DOS プログラム (ps2.exe) で赤外線ポートを有効にすることがきわめて重要です。windows ツールを用いてこれを行うことはできません。 これを行わなければ、ドライバは正しくロードされて何もかも OK のように見えますが、LED が十分に明るく発光しません。

5.1.3. PCI デバイスナンバ

Daniel R. Risacher magnus@alum.mit.edu さんによると「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 はポートの読み込みを行うだけで、これは通常安全です」 【訳注: PC-AT の仕様上は 16bit フルデコードしろということになっているが、守っているデバイスは少ないため、結果として上のようなことになる。】