5.1. 故障排除

5.1.1. 一般信息

如果您遇到问题,请尝试以下操作:

5.1.2. 已知 Bug

如果您发现 Bug,请发送 Bug 报告到邮件列表,包括 dmesg 输出,以及您使用的 Linux 版本和硬件。谢谢!

有时 IrCOMM 连接失败,尤其是在两个设备互相发现时。您可以使用 echo 0 >/proc/sys/net/irda/discovery 禁用发现。

无法通过 IrCOMM 在两台 Linux 机器之间传输 CR(回车)字符,使用 cat file >/dev/ircomm0cat /dev/ircomm0。 这会导致奇怪的事情并冻结您的 Linux 系统。

IrOBEX 可能会在接收时丢失一些数据。该 Bug 很可能在 IrOBEX 的用户空间端。

5.1.3. 故障排除技巧

虽然我不是一个黑客高手,但我收集了一些技巧来跟踪 Linux/IrDA 软件中的错误或 Bug。

对于某些 ThinkPad 型号,您必须重启到预装的 M$ OS 并使用 Thinkpad 工具激活 IrDA 端口。 目前没有 Linux 工具可以实现这一点。 这将禁用您的内部串行端口 (ttyS0)! DOS 工具是 PS2.EXE,据我所知 tpctl 无法实现这一点。 使用此 DOS 程序启用 IrDA 非常重要。 使用 Microsoft-Windows 工具不起作用。 如果不这样做,驱动程序会正确加载,一切看起来都正常,但 LED 不够亮。

5.1.4. PCI 设备号

Daniel R. Risacher magnus_at_alum.mit.edu 写道:为了将我的 Palm III 与运行 2.2.17 的 Tecra 8100 同步,我需要编辑 /usr/src/linux/include/net/irda/toshoboe.h。 我将 "#define PCI_DEVICE_ID_FIR701 0x0701" 更改为 "#define PCI_DEVICE_ID_FIR701 0x0D01"。

5.1.5. scanport

scanport 可用于获取芯片的正确设备 ID。 它是 hwtools 包的一部分(在 Debian 上,可能在其他地方也一样)。 您只需输入它,它就会扫描从 0x100 到 0x400 的 I/O 端口 - 通常的 ISA 范围。 在 0x400 以上是 0x400 以下设备的阴影,再往上是 PCI 设备,因此默认情况下不扫描 0x400 以上。“无论如何,我不得不手动扫描使用 inb 来找到我的芯片的 I/O。 幸运的是,我不需要走太远就能找到它。(较新的声卡通常位于 0x530 左右,0x220 保留用于旧版兼容模式) 通常,如果您知道某个设备的位置,您只需将驱动程序指向它,驱动程序就会探测以查看它是否是驱动程序期望的设备。 这不是完全安全的,但比每个驱动程序探测每个 I/O 端口寻找它认为可以理解的东西要安全得多。 scanport 只进行读取,这通常是安全的。”