2.4. 設定について

2.4.1. Device 番号

mknod /dev/ircomm0 c 161 0
mknod /dev/ircomm1 c 161 1
mknod /dev/irlpt0 c 161 16
mknod /dev/irlpt1 c 161 17
mknod /dev/irnet c 10 187
chmod 666 /dev/ir*
irkbd を使う場合、必要になるデバイス番号がこれ以外にもあるでしょう。最新のデバイス番号は ../src/linux/Documentation/devices.txt にあります。

2.4.2. Device 配置

まず、IrDA デバイスを通信可能な距離においてください。 運が良ければ Linux/IrDA サービスがすべての新しいデバイスを自動的に検出できることもあるかもしれませんが、 経験上コンフィグレーション時に所定の距離にある場合だけ良好な結果が得られるでしょう。

赤外線デバイスは 1m 以内で、角度の傾きは 30 度以内にしてください。 二つのデバイスが真っ直ぐ見通せる状態にある必要があります。 こうできない場合には鏡を使ってください (未使用の M$ の CD-ROM が良い鏡として使えます)。

2.4.3. /etc/modules.conf

/etc/conf.modules に以下の行を加えてください。
# IrDA over a normal serial port, or a serial port compatible IrDA port
alias tty-ldisc-11 irtty
# IrCOMM (for printing, PPP, Minicom etc)
alias char-major-161 ircomm-tty     # if you want IrCOMM support
# IRLAN
alias irlan0 irlan
# To be able to attach some serial dongles
# These values are hard-coded in irattach (not instance order)
alias irda-dongle-0 tekram          # Tekram IrMate IR-210B
alias irda-dongle-1 esi             # ESI JetEye
alias irda-dongle-2 actisys         # Actisys IR-220L
alias irda-dongle-3 actisys         # Actisys IR-220L+
alias irda-dongle-4 girbil          # Greenwich GIrBIL
alias irda-dongle-5 litelink        # Parallax LiteLink
alias irda-dongle-6 airport         # Adaptec Airport 1000 and 2000
# To use the FIR driver. This applies only to the specific device!!!
#options nsc-ircc dongle_id=0x09	# NSC driver on a IBM Thinkpad laptop
#options nsc-ircc dongle_id=0x08	# HP Omnibook 6000
#alias irda0 nsc-ircc
#alias irda0 smc-ircc
# IrNET module...
alias char-major-10-187 irnet       # Official allocation of IrNET
このあと depmod -a を行って更新を反映してください。 これで全 IrDA デバイスが必要に応じて自動的にロードされるはずです。 注意が必要な点として、テスト時にこれらのモジュールを手動でロードすることはできますが、二回ロードされることがないように確認しておいてください。 irkbd や USB ドングルを使う場合には、これ以外にも必要なエントリがあるかもしれません。 設定の元となる例は irda-utils パッケージに含まれています。

2.4.4. /etc/irda

/etc/irda に目を通してください。 あなたの設定を反映するよう適宜編集してください。

2.4.5. BIOS 設定

BIOS で赤外線ポートが有効になっていることを確認し、その際に赤外線ポートが使用している割り込みとポートアドレスをチェックしてください。 一部のラップトップでは BIOS のパラメータを設定するのに Window$ をインストールしておく必要がある場合があるようです。

一部の機種では、ドッキングステーションに接続した場合に赤外線ポートが無効にされた、という報告を受けています。

2.4.6. シリアルポート (setserial)

シリアルデバイスとのある種の競合を避けるため、 setserial /dev/ttyS1 uart none としておく必要があります。あなたの SIR ポートにあわせて ttySx の部分は変更してください。 ヒント: dmesg | grep tty

Florian Lohoff さん から: 多分 "port 0x0 irq 0" もやっておく必要があります。こうしておかないと突然別の S1 がシステムで使えるようになったとき (例えばモデム PCMCIA カードを挿入したとき) 妙なことになります。その際にシリアルドライバは、自分の支配下にないのにも関わらず旧ポートをアクセスするため、IrDA 関係が死んだりハングしたりしてしまいます。まだ、シリアルドライバでどこが悪いのか見つけていませんが、はっきり存在するバグです (serial_out と serial_in 関係の前後で printk してみた限り)。

2.4.7. IrDA を動かしてみる

まず、とにかく Disk を sync してください。 リブートする羽目になるかもしれません。最初の免責の項参照。

ローレベルドライバには、SIR、ドングルと FIR の三つのカテゴリがあります。 Linux/IrDA を始めるにはまず SIR から使ってみることを薦めます。

modprobe irda irtty でモジュールをロードします。 irattach /dev/ttyS1 -s 1 で IrDA サービスに IrDA デバイスを接続します。lsmod の出力と dmesg をチェックしてください。

irdadump は届く範囲の全 IrDA デバイスを列挙します。 ヒント: 別の Linux マシンとの間で接続している場合、hostname YOUR_HOSTNAME として各コンピュータに固有の名前を与えることができます。

サーバ側になるマシンで、"pppd /dev/ircomm0 LOCAL_IP:REMOTE_IP" を クライアント側で "pppd /dev/ircomm0" を実行してください。

これで接続を ping でテストできるようになります。 また、各種のネットワーク接続 (ssh, NFS など) を、この時点で使ってみてください。