宁为红毋宁死。 | |
作者不详 |
要使您的笔记本电脑的 IrDA® 端口在 Linux/IrDA® 下工作,您可以使用标准红外 (SIR) 或快速红外 (FIR)。
高达 115.200bps,红外端口模拟一个串行端口,例如 16550A UART。这将在启动时或当您加载serial模块时被内核串行驱动程序检测到。如果 BIOS 中启用了红外支持,对于大多数笔记本电脑,您将收到类似如下的内核消息
Serial driver version 4.25 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A #first serial port /dev/ttyS0
ttyS01 at 0x3000 (irq = 10) is a 16550A #e.g. infrared port
ttyS02 at 0x0300 (irq = 3) is a 16550A #e.g. PCMCIA modem port
|
如果您想使用高达 4Mbps 的速度,您的机器必须配备特定的 FIR 芯片。您需要特定的 Linux/IrDA® 驱动程序来支持此芯片。因此,您需要关于 FIR 芯片的准确信息。您可以通过以下方式之一获取此信息
阅读机器的规格,尽管您在那里找到足够且可靠的 Linux 可用信息的情况非常罕见。
尝试找出 FIR 芯片是否是 PCI 设备。执行 cat /proc/pci 命令。适用于 2.2.x 内核的相关文件位于/proc/bus/pci。尽管 PCI 信息通常不完整。您可以在内核文档中找到关于 PCI 设备和供应商编号的最新信息,通常位于/usr/src/linux/Documentation或 Craig Hart 的页面。从内核 2.1.82 开始,您也可以使用 pci-utils 包中的 lspci 命令。
使用 DOS 工具 CTPCI330.EXE,该工具由德国计算机杂志 CT 在 ZIP 格式中提供,您可以在 这里 找到。此程序提供的信息有时比 Linux 工具提供的信息更好。
尝试获取关于即插即用 (PnP) 设备的信息。虽然我还没有为此目的使用过它们,但 isapnp 工具可能很有用。
如果您已经安装了 Linux/IrDA® 软件,请加载 FIR 模块并观察 dmesg 的输出,以查看是否检测到 FIR。
另一种找出方法的方式由 Thomas Davis 解释(WH 修改):“深入挖掘供应商的 FTP 站点,找到 Windows9x FIR 驱动程序,他们有(对于 SMC 芯片)”
-rw-rw-r-- 1 ratbert ratbert 743 Apr 3 1997 smcirlap.inf -rw-rw-r-- 1 ratbert ratbert 17021 Mar 24 1997 smcirlap.vxd -rw-rw-r-- 1 ratbert ratbert 1903 Jul 18 1997 smcser.inf -rw-rw-r-- 1 ratbert ratbert 31350 Jun 7 1997 smcser.vxd |
此外,Thomas Davis 还找到了 SMC 制作的一个小型 DOS 实用程序包。该软件包包含 FINDCHIP.EXE。并包含一个 FIRSETUP.EXE 实用程序,该实用程序应该能够设置除芯片地址之外的所有值。此外,它还包含 BIOSDUMP.EXE,它产生以下输出
示例 1(来自 COMPAQ Armada 1592DT)
In current devNode: Size = 78 Handle = 14 ID = 0x1105D041 = 'PNP0511' -- Generic IrDA SIR Types: Base = 0x07, Sub = 0x00, Interface = 0x02 Comm. Device, RS-232, 16550-compatible Attribute = 0x80 CAN be disabled CAN be configured BOTH Static & Dynamic configuration Allocated Resource Descriptor Block TAG's: TAG=0x47, Length=7 I/O Tag, 16-bit Decode Min=0x03E8, Max=0x03E8 Align=0x00, Range=0x08 TAG=0x22, Length=2 IRQ Tag, Mask=0x0010 TAG=0x79, Length=1 END Tag, Data=0x2F |
结果 1
Irq 标签,掩码(位映射 - )= 0x0010 = 0000 0000 0000 0001 0000 因此,它是 IRQ 4。(从 0 开始,向上计数...),所以这是一个仅 SIR 设备,位于 IRQ=4,IO=x03e8。
示例 2(来自未知机器)
In current devNode: Size = 529 Handle = 14 ID = 0x10F0A34D = 'SMCF010' -- SMC IrCC Types: Base = 0x07, Sub = 0x00, Interface = 0x02 Comm. Device, RS-232, 16550-compatible Attribute = 0x80 CAN be disabled CAN be configured BOTH Static & Dynamic configuration Allocated Resource Descriptor Block TAG's: TAG=0x47, Length=7 I/O Tag, 16-bit Decode Min=0x02F8, Max=0x02F8 Align=0x00, Range=0x08 TAG=0x22, Length=2 IRQ Tag, Mask=0x0008 TAG=0x47, Length=7 I/O Tag, 16-bit Decode Min=0x02E8, Max=0x02E8 Align=0x00, Range=0x08 TAG=0x2A, Length=2 DMA Tag, Mask=0x02, Info=0x08 TAG=0x79, Length=1 END Tag, Data=0x00 |
结果 2
a) 这是一个 SMC IrCC 芯片
b) 一部分位于 0x02f8,io 扩展为 8 字节;irq = 3
c) 另一部分位于 0x02e8,io 扩展为 8 字节;dma = 1 (0x02 =0000 0010)
![]() | 该软件包不适用于最终用户,并且某些实用程序可能有害。软件包中唯一的文档是 Microsoft Word 格式。Linux 用户可以使用 catdoc 阅读它。 |
使用 MicroSoft Windows9x/NT 操作系统的设备管理器。
您也可以使用下面提到的硬件调查。
作为最后的手段,您甚至可以打开笔记本电脑并查看芯片组本身的标记。
我在 TuxMobil 上做了一个 IrDA 硬件调查。此列表还包含有关此处未提及的红外设备的信息(鼠标、打印机、遥控器、收发器等)。
为了使此列表更有价值,有必要收集更多关于不同硬件中红外设备的信息。您可以通过向我发送一封简短的电子邮件来提供帮助,其中包含您拥有的硬件的确切名称以及使用的红外控制器的类型。
还请告诉我 Linux/IrDA® 的工作情况(它在哪个 tty、端口和中断下工作,以及相应的红外设备,例如打印机、手机)。
您还可以通过提供关于某些红外设备的详细技术信息来提供帮助,这对于开发 Linux 驱动程序是必要的。
Linux 红外支持仍处于实验阶段,但正在迅速改进。我尝试在一个简短的概述中描述安装过程。请阅读我的 Linux-Infrared-HOWTO 以获取详细信息。并访问 Linux/IrDA 项目。
从 Linux/IrDA 项目 获取 2.4.x 内核和最新的 Linux/IrDA 补丁。
编译它时启用所有 IrDA® 选项。
还要启用实验性、sysctl、串行和网络支持。
从 Linux IrDA 项目 获取 Linux IrDA® 软件 irda-utils。
解压软件包。
执行 make depend; make all; make install
Linux 红外遥控 LIRC 是一个软件包,它支持接收和发送最常见的红外遥控器的红外信号。它包含一个用于连接到串行端口的硬件的设备驱动程序、一个使用此设备驱动程序解码和发送红外信号的守护程序、一个将红外信号转换为鼠标移动的鼠标守护程序,以及一些允许您使用遥控器控制计算机的用户程序。我没有关于红外遥控在笔记本电脑红外设备上工作情况的有效信息。