34.3 赤外線データ通信

IrDA (Infrared Data Association)は赤外線による無線通信の標準規格名です。現在販売されている多くのラップトップにはプリンタ、モデム、LAN、他のラップトップなど、リモートデバイスとの通信を可能にするIrDA互換トランシーバが装備されています。通信速度は2400 bpsから4M bpsの範囲になります。

IrDA操作モードには2種類あります。SIRは標準モードで、シリアルインタフェースを使用して赤外線ポートにアクセスします。このモードはほぼどのシステムでも機能し、ほとんどの要件に対応します。一方、より高速なFIRモードにはIrDAチップ用の特別なドライバが必要になります。しかるべきドライバがないため、FIRモードでサポートされていないチップタイプもあります。コンピュータのBIOSで必要なIrDAモードを設定します。また、BIOSではSIRモードで使用されるシリアルインタフェースも表示します。

IrDAについての情報は、http://tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.htmlでWerner Heuser著の『Linux Infrared HOWTO』を参照してください。また、http://irda.sourceforge.net/のLinux IrDA Project Webサイトも参照してください。

34.3.1 ソフトウェア

必要なカーネルモジュールは、カーネルパッケージに組み込まれています。irdaパッケージでは赤外線通信インタフェースをサポートするために必要な各種アプリケーションを提供しています。このマニュアルはパッケージをインストールした後、/usr/share/doc/packages/irda/READMEで参照できます。

34.3.2 設定

IrDAシステムサービスはシステムのブート時に自動的に開始されません。YaSTのIrDAモジュールを使用して有効にします。このモジュールで変更できる設定は1つだけです。赤外線デバイスのシリアルインタフェースのみが変更可能です。テストウィンドウに2種類の出力が表示されます。1つはirdadumpの出力です。IrDAを介したすべての送受信パケットを記録します。この出力にはコンピュータ名および、通信圏内にあるすべての赤外線デバイス名が表示されます。34.3.4項 「トラブルシューティング」で、これらのメッセージ例を参照できます。IrDA接続を持つすべてのデバイスがウィンドウの下部に表示されます。

IrDAは相当な量の電力を消費します。周辺機器を検出するために数秒間隔でディスカバリパケットを送信するためです。そのため、電源がバッテリのみの場合は、必要なとき以外はIrDAを開始しないようにします。コマンドrcirda startでIrDAを有効に、またコマンドrcirda stopで無効にします。インタフェースが有効なった時点で、必要なカーネルモジュールがすべて自動的にロードされます。

ファイル/etc/sysconfig/irdaを使用して、手動による設定が可能です。このファイルに含まれるのは変数IRDA_PORTのみです。この変数はSIRモードで使用するインタフェースを決定します。

34.3.3 使用方法

印刷用のデータをデバイスファイル/dev/irlpt0に送信できます。デバイスファイル/dev/irlpt0は、データ送信が赤外線を使用して無線で行われる以外、通常のケーブル接続されたインタフェースである、/dev/lp0と同様に動作します。印刷時には、プリンタがコンピュータの赤外線インタフェースから見える範囲にあり、赤外線サポートが開始されていることを確認してください。

赤外線インタフェースを介してプリンタを操作する場合、プリンタモジュールを使用してプリンタを設定できます。プリンタは自動検出されないため、[その他(未検出)をクリックし、手動で設定してください。その後にダイアログで[IrDAプリンタ]を選択します。通常、irlpt0が正しい接続になります。Linuxでのプリンタ操作に関する詳細については、第11章 プリンタの運用を参照してください。

その他のホストおよび、携帯電話またはそれに類するデバイスとの通信は、デバイスファイル/dev/ircomm0を介して行われます。たとえば、携帯電話のSiemens S25、Nokia 6210といった機種では、赤外線インタフェースを使用するwvdialアプリケーションで、ダイヤルおよびインターネットへの接続が可能です。Palm Pilotとのデータ同期も可能です。対応するアプリケーションのデバイス設定は、/dev/ircomm0に指定されています。

必要に応じて、プリンタまたはIrCOMMプロトコルをサポートするデバイスのみ指定できます。3Com Palm PilotのようなIROBEXプロトコルをサポートするデバイスにはirobexpalmおよびirobexreceiveなどの特別なアプリケーションを使用してアクセスできます。.詳細については、IR-HOWTO (http://tldp.org/HOWTO/Infrared-HOWTO/)を参照してください。irdadumpの出力で、デバイス名の隣にあるカッコ内にデバイス別にサポートされるプロトコルが一覧表示されます。IrLANプロトコルのサポートは現在「開発中」です。

34.3.4 トラブルシューティング

赤外線ポートに接続されたデバイスが応答しない場合は、コマンドirdadump (rootで)を使用して、コンピュータが他のデバイスを認識しているか確認します。Canon BJC-80プリンタがコンピュータの通信可能範囲内にあると、例 34.1. 「irdadumpの出力」のような内容が定期的に表示されます。

例 34.1 irdadumpの出力

21:41:38.435239 xid:cmd 5b62bed5 > ffffffff S=6 s=0 (14) 
21:41:38.525167 xid:cmd 5b62bed5 > ffffffff S=6 s=1 (14)
21:41:38.615159 xid:cmd 5b62bed5 > ffffffff S=6 s=2 (14)
21:41:38.705178 xid:cmd 5b62bed5 > ffffffff S=6 s=3 (14)
21:41:38.795198 xid:cmd 5b62bed5 > ffffffff S=6 s=4 (14)
21:41:38.885163 xid:cmd 5b62bed5 > ffffffff S=6 s=5 (14)
21:41:38.965133 xid:rsp 5b62bed5 < 6cac38dc S=6 s=5 BJC-80 
                        hint=8804 [Printer IrCOMM ] (23) 
21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* earth 
                        hint=0500 [ PnP Computer ] (21)

出力が得られない、または他のデバイスが応答しない場合は、インタフェースの設定を確認してください。正しいインタフェースが使用されていることを確認します。赤外線インタフェースが/dev/ttyS2または/dev/ttyS3にあったり、IRQ 3以外の割り込みが使用されていたりする場合もあります。ほぼすべてのラップトップのBIOS設定メニューから、これらの設定を確認および変更できます。

簡単なビデオカメラでも赤外線LEDライトが点灯しているかどうかを確認できます。多くのビデオカメラは人間の眼に見えない赤外線を感知することができるためです。