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* |
首先,你应该将你的 IrDA 设备置于有效范围内。虽然 Linux/IrDA 服务可能自动检测到每个新设备,但我只有在配置过程中将设备置于有效范围内才有良好的经验。
将你的红外设备保持在一米以内和 30 度角范围内的范围内。它们之间必须有直接的视线。如果这不可能,你可以使用镜子(未使用的 M$ CD 应该效果不错)。
将以下行添加到你的/etc/modprobe.conf(对于内核 2.4/etc/modules.conf)文件(注意:实际文件名可能取决于你的 Linux 发行版)
# IrDA over a normal serial port, or a serial port compatible IrDA port (SIR) alias tty-ldisc-11 irtty # IrCOMM (for printing, PPP, Minicom etc) alias char-major-161 ircomm-tty # if you want IrCOMM support # IRLAN # But currently the IrLAN protocol is no longer maintained # by the Linux/IrDA core team. 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/ESI JetEye 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 # options smc-ircc ircc_irq= ircc_dma= # 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 |
注意:但是,对于 Debian GNU/Linux,你不应该编辑/etc/modules.conf直接编辑,而是将这些行放在/etc/modutils/irda-utils并在之后运行 update-modules。对于 2.6 内核,运行 update-modules 似乎已过时。
确保你的红外端口在 BIOS 中已启用,并检查它使用的中断和端口地址。对于某些笔记本电脑,似乎需要安装 Microsoft-Windows 才能设置 BIOS 参数。
我收到报告,在某些笔记本电脑上,当连接到扩展坞时,红外端口被禁用。
请先决定你是想在 SIR 还是 FIR 模式下设置 IrDA。建议从 SIR 开始。
根据你的 SIR 端口选择 ttySx。提示:dmesg | grep tty(详情请参阅下面的“启动 IrDA 堆栈”章节)。
要获取 SIR “串行”设备,请查看 BIOS。然后运行 dmesg | grep tty 以获取你的机器支持的 tty 设备概览。现在尝试选择一个,它很可能是 IrDA 设备。
如果你使用 SIR 没有成功(这似乎是罕见的情况),你可以尝试 FIR。首先查看 BIOS。为了避免与串行设备发生冲突,你应该执行 setserial /dev/ttySx uart none。注意:当在 SIR 模式下设置 IrDA 时,永远不要使用 setserial /dev/ttySx uart none。
来自 Florian Lohoff 你还应该设置 “port 0x0 irq 0”,否则如果突然出现不同的 S1,例如插入调制解调器 PCMCIA 卡,你将会看到有趣的效果。串行驱动程序将接触旧端口,而没有获得这些端口,这将导致 irda 组件崩溃/挂起。这是一个我尚未在串行驱动程序中找到的错误,但它确实存在(将 printk 放入 serial_out serial_in 代码中)。
在某些情况下,可能会发生 IRQ 冲突,特别是已报告与声音、PCMCIA 或热插拔系统的冲突。检查 cat /proc/interrupts 以获取有关你的机器上 IRQ 使用情况的一些信息。
最重要的是,你必须同步你的磁盘!!!也许你必须重启你的机器。你读过免责声明了吗?
有三种类型的底层驱动程序: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 等)。