Laptop-プリンタ-PDA Sourceforge http://irda.sourceforge.net の Drag-n-Drop 関連のところを見てください。PDA に (IrOBEX を使って)、およびプリンタに (IrLPT を使って) ドラッグアンドドロップでファイルを送れるようになります。
ブリッジング/ルーティング James さんによると「ルーティングを兼ねたブリッジングを行うずっといい方法があります。これは完全にユーザ空間で動作し、カーネルパッチは必要としません。
これは2つの部分からなっています (一方だけで良いかもしれませんが、終着点はそれによって変わるでしょう)。 最初の部分は irdaipcfg という名で、次のことをします。
1) 最初の部分は、"irdaipcfg ifeth ifirlan" としてデーモンで実行します。これは ifirlan の ARP パケットを監視し、デーモンを実行中のマシンによって出されたものではない arp パケットをチェックします。 この arp パケットは実行中のマシンと irlan の反対端の IP アドレス (これは irlan コードで、gratuitous arp 要求の結果から作成されます) を含みます。 このプログラムはそれを使って、ifirlan を用いたこの ip アドレスへのホストルートを作成し、ifeth にそのアドレスに対する proxy arp を行うよう付け加え、ifeth に向けて gratuitous arp を送ります。 これはクライアントの IP アドレスを /var/run/host.ifirlan に書き込みますので、 上記すべてをスクリプトから簡単に無効にすることができます。 【訳注: gratuitous arp/proxy arp (rfc2002) は定訳がないようですので、そのままにしました。原文の typo は修正。】
2) 二番目の部分は "gratarp ifirlan" として実行します。時々 gratuitous arp がパイプ処理中で行方不明になるようですので、gratarp はデーモン化して、起きていることすべてを吐き出し続けます。
私は以下のようにして使っています (使い方はお好きなように)。
私のホストマシン (ローカルネットに繋がっているマシン) では、irlanx は アドレス 10.192.0.1 でネットマスク 255.255.255.255、 またブロードキャストアドレスを 10.192.0.1 として、irattach により /etc/irda/network 中から ifup スクリプトで立ち上げています。 /etc/irda/network では次に irdaipcfg eth0 irlanx と実行してルーティングを行います。
/etc/irda/network から
"start") echo 1 >/proc/sys/net/ipv4/conf/all/forwarding ./ifup ifcfg-${device} /sbin/irdaipcfg ${localnet} ${device} ;; "stop") host=`cat /var/run/host.${device}` if [ .$host != . ]; then /sbin/arp -d ${host} dev ${localnet} /sbin/route delete ${host} dev ${device} fi ./ifdown ifcfg-${device} /sbin/ifconfig ${device} down ;; |
IPv6 私の知る限り、IPv6 には近傍探索メカニズムが規定されていますが、Linux/IrDA を IPv6 で使うことに関する情報は持っていません。この話題に関する議論は Subject "patch-2.2.7-ac1-irda4" のスレッドでありましたので、 メーリングリストアーカイブを当たってみてください。
dhcpcd を IrLAN で使えるとの報告を受けています。最新の DHCP ソフトウェアを使うようにしてください。