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 にあります。
まず、IrDA デバイスを通信可能な距離に置いてください。 運が良ければ Linux/IrDA サービスがすべての新しいデバイスを自動的に検出できることもあるかもしれませんが、 私の経験では、良好な結果が得られるのは設定時に所定の距離にある場合だけです。
赤外線デバイスは 1m 以内の距離に置き、角度の傾きは 30 度以内にしてください。 二つのデバイスが真っ直ぐ見通せる状態にある必要があります。 こうできない場合には鏡を使ってください (未使用の M$ の CD-ROM が良い鏡として使えます)。
/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 alias irda-dongle-7 old_belkin # Belkin (old) SmartBeam dongle alias irda-dongle-8 ep7211_ir # Cirrus Logic EP7211 Processor (ARM) alias irda-dongle-9 mcp2120 # MCP2120 (Microchip) based alias irda-dongle-10 act200l # ACTiSYS Ir-200L alias irda-dongle-11 ma600 # Mobile Action ma600 # 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 # options toshoboe max_baud= # alias irda0 toshoboe # options w83977af_ir io= io2= irq= qos_mtt_bits= # alias irda0 w83977af_ir # IrNET module... alias char-major-10-187 irnet # Official allocation of IrNET |
このあと depmod -a を行って更新を反映してください。 これで全 IrDA デバイスが必要に応じて自動的にロードされるはずです。 テスト時にこれらのモジュールを手動でロードすることはできますが、二回ロードされることがないようによく注意してください。 irkbd や USB ドングルを使う場合には、これ以外にも必要なエントリがあるかもしれません。 設定の元となる例は irda-utils パッケージに含まれています。
/etc/irda に目を通してください。 あなたの設定を反映するよう適宜編集してください。
BIOS で赤外線ポートが有効になっていることを確認し、その際に赤外線ポートが使用している割り込みとポートアドレスをチェックしてください。 一部のラップトップでは BIOS のパラメータを設定するのに Window$ をインストールしておく必要がある場合があるようです。
一部の機種では、ドッキングステーションに接続した場合に赤外線ポートが無効にされた、という報告を受けています。
まず IrDA を SIR モードと FIR モードのどちらでセットアップするか決めましょう。SIR モードがおすすめです。
あなたの SIR ポートにあわせて ttySx を選びます。 ヒント: dmesg | grep tty としてみます。 詳細は、以下の「IrDA スタックを使ってみる」の節を見てください。
SIR シリアルデバイスを決めるには、BIOS を調べてください。それがだめなら、 dmesg | grep tty を実行して、マシンでサポートされている tty デバイスの概略情報を得てください。そこから IrDA デバイスとおぼしき一デバイスを選び出します。
SIR では動作しない場合 (まれなようです)、FIR を試してください。まず BIOS を調べます。 シリアルデバイスとどこかで競合することを避けるため、 setserial /dev/ttyS1 uart none としておく必要があります。
注意:setserial /dev/ttySx uart none は、IrDA が SIR モードの場合に使ってはいけません。
Florian Lohoff さん から: 多分 "port 0x0 irq 0" もやっておく必要があります。こうしておかないと突然別の S1 がシステムで使えるようになったとき (例えばモデム PCMCIA カードを挿入したとき) 妙なことになります。その際にシリアルドライバは、自分の支配下にないのにも関わらず旧ポートをアクセスするため、IrDA 関係が死んだりハングしたりしてしまいます。まだ、シリアルドライバでどこが悪いのか見つけていませんが、はっきり存在するバグです (serial_out と serial_in 関係の前後で printk してみた限り)。
システムにサウンド機能、PCMCIA やホットプラグシステムがある場合は特に起きがちですが、IRQ がコンフリクトする場合があります。マシンの IRQ の利用状況を cat /proc/interrupts でチェックしてください。
まず、とにかく Disk を sync してください。 リブートする羽目になるかもしれません。最初の免責の項参照。
ローレベルドライバには、SIR、ドングルと FIR の三つのカテゴリがあります。 Linux/IrDA を始めるにはまず SIR から使ってみることを薦めます。
modprobe irda irtty でモジュールをロードします。 irattach /dev/ttyS1 -s で IrDA サービスに IrDA デバイスを接続します。lsmod の出力と dmesg をチェックしてください。
irdadump は届く範囲の全 IrDA デバイスを列挙します。 ヒント: 別の Linux マシンとの間で接続している場合、hostname YOUR_HOSTNAME として各コンピュータに固有の名前を与えることができます。
サーバ側になるマシンで、"pppd /dev/ircomm0 LOCAL_IP:REMOTE_IP" を クライアント側で "pppd /dev/ircomm0" を実行してください。
これで接続を ping でテストできるようになります。 また、各種のネットワーク接続 (ssh, NFS など) を、この時点で使ってみてください。