Q0 - 问题:irport 和 irtty 之间有什么区别?
答案:我从未使用过 irport,因为 irtty 对我来说有效,但您使用哪个底层驱动程序应该无关紧要。我成功地使用了 irtty、nsc-ircc 和 irda-usb(取决于我的硬件)。
Q1 - 问题:我对端口和 IRQ 一无所知。我应该怎么办?
答案:A 部分:硬件设置 - 1 查看您的硬件规格!!!如果不可用,请查看您供应商的支持页面,或联系支持热线。您也可能在上面提到的硬件调查之一中找到信息。B 部分:如何告诉内核硬件设置 -4 cat /proc/ioports 以查看哪些端口已被使用。 -5 cat /proc/interrupts 以查看哪些中断已被使用。 -6 使端口和中断可用于红外设备,例如停止 PCMCIA 服务或在 /etc/sysconfig/pcmcia 中包含如下行:PCIC_OPTS="irq_list=3,4,5,7,9,10,12,14,15" -7 现在尝试猜测正确的中断和端口是什么。使用 setserial /dev/ttySx irq M port 0xNNNN 告诉内核。如果有多个可能的机会,请全部尝试(注意:如 Serial-HOWTO 中所述,您不应尝试 irq 0、1、6、8、13、14)。-8 如果您成功了,请将这些参数发送给作者,因为我想将它们包含在红外硬件调查中。-9 祝你好运。可能还需要使用 setserial 微调红外串口,例如,setserial /dev/ttyS0 spd_vhi(速度 115200)。
Q3 - 问题:我在 /var/log/messages 中收到类似 tcsetattr read/write error 的消息。
答案:可能是由错误的 /dev/ttyS* 或错误的 irq 或端口引起的。
Q4 - 问题:每个设置看起来都正确,因为我收到了相应的消息。但它仍然不工作。
答案:将设备移动到 0.5 米(1.5 英尺)以内。检查是否只有一个应用程序正在使用红外端口。检查两个设备是否都使用相同的协议,例如 IrOBEX 或 IrCOMM。
Q7 - Ho Chin Keong 提问:除了在两台笔记本电脑之间设置 LAN 路由之外,还有其他方法可以在这两台笔记本电脑之间建立通信吗?
Dag Brattli 回答:是也不是!IrDA 标准之一 IrCOMM 允许您模拟两台笔记本电脑之间的串行电缆,因此您可以使用为串行端口编写的任何应用程序(终端、PPP、slip 等)。但这尚未在 Linux/IrDA 中实现。IrLPT(打印机)支持实际上是 IrCOMM 的一个子集,所以它的一些部分是工作的!
Q8 - Ho Chin Keong 提问:如果我故意阻塞红外路径超过 10 秒,则连接将无法重新建立。我必须终止 irattach 并重新启动整个过程才能启动红外路由。但是,如果阻塞时间少于 10 秒,则可以保持连接。这是设计的一部分还是一个错误?有没有办法可以将此时间限制从 10 秒延长到更长或无限期?
Thomas Davis 回答:这似乎是 IrLAP/IrLMP 代码主端的一个错误。它似乎没有将重置/断开连接通知一直发送回堆栈。当您尝试与打印机通信时,您会注意到 IrLPT 卡在查询模式中,并在握手时断开连接/中断了它。(现在,它出现在 IrLAN 部分中)
Q11 - BSD 是否有任何 IrDA 支持?
答案:Linux/IrDA 似乎是目前唯一可用的 GPL 源代码。
Q12 - Rui Oliveira 提问:我正在尝试将 PalmIII 连接到装有 Actisys 220L 适配器的 Linux 机器时遇到问题。使用主板适配器(没有品牌,但我认为类似于 Actisys 210L),我只是将 pilot 同步工具 (pilot-xfer) 重定向到 /dev/ttyS1,该端口连接了红外适配器,并且使用 SIR 模式下的 IrLink,我可以让 Linux 机器与 PalmIII 通信。尝试通过带有串行 irda Actisys 220L 适配器的串行端口进行上述操作,我无法使其工作。我的问题是:如果有人只是将数据投入到带有 irda 适配器的串行端口中会发生什么?
Lichen Wang 回答:在硬件方面,IrDA SIR 需要一个串行器-解串器、一个编码器-解码器和一个收发器。驱动任何 PC 的 COM 端口的 UART 都是一个串行器-解串器。在某些 PC 中,还有一个编码器-解码器,可以通过 BIOS 启用或禁用。当它被禁用时,COM 端口可用作旧的 COM 端口。当编码器-解码器被启用时,通常 COM 端口不再可用,但 IrDA 端口现在可用了。Actisys IR-210 是一个 SIR 收发器,因此如果 PC 具有这种带有 IrDA 编码器-解码器的 UART 并且 BIOS 已启用它,则可以使用它。在这种硬件配置下,您需要告诉 Windows 安装程序您有“标准红外设备”和“笔记本电脑或台式机上的内置红外端口”。另一方面,Actisys IR-220 包括编码器-解码器和收发器。它被设计用于常规 UART。如果 PC 中的 UART 也内置了编码器-解码器,则必须使用 BIOS 禁用它。在这两种硬件配置下,您都需要告诉 Windows 安装程序您有一个“ACTiSYS”制造的“ACT-IR220L 红外无线接口”。为了回答您的问题:除了将数据投入到串行端口之外,您还需要告诉 UART 和编码器-解码器要使用的数据速率。在内置编码器-解码器的情况下,当您设置 UART 的数据速率时,编码器-解码器也会被正确设置。在单独的编码器-解码器的情况下,您需要分别告诉它们两个数据速率。
Q13 - 如果我尝试建立连接,比如 telnet,登录提示符需要很长时间才能出现。
Renaud Baldura、Dag Brattli 和 Hee Thong 回答:... 这是一个 DNS 问题。解析器在尝试反向解析传入连接的 IP 地址时超时。我认为只需将 /etc/resolv.conf 重命名为其他名称即可解决问题。... 或者在 /etc/hosts 中为您要访问的 ad-hoc 网络中的机器添加一些静态绑定。这应该避免 DNS 查找。... 如果两台机器都在私有测试环境中,请将以下行放在 /etc/host.conf 中:order hosts, bind。这将使机器在执行 DNS 查找之前检查 /etc/host 文件。记住更新两台机器上的 host 文件以反映这两台机器的 IP 和主机名。
Q14 - David LaPorte 提问:我想知道是否有人成功地使 Toshiba Tecra 740cdt 上的 irda 端口工作。... 我读到它应该出现在 IRQ 11,ttyS2。好吧,我有一个 PCMCIA 调制解调器,它占用了 ttyS2,而 PCMCIA 控制器占用了 IRQ 11。有人有什么建议吗?
Dag Brattli 回答:如果您的机器上仍然安装了 Win95,您应该转到设备管理器并更改 IrDA 端口的 PnP 设置(与您已使用的内容不同的内容)。例如,您可以移开 ttyS1(在 Win95 中),使其使用 PCMCIA 卡将要占用的值,然后将 ttyS1 的设置用于 ttyS2。
dagbnb ~/linux/test/ > cat /etc/sysconfig/pcmcia PCMCIA=yes PCIC=i82365 PCIC_OPTS="irq_list=7,9,10" CORE_OPTS= |