4.1. 获取有关笔记本电脑红外端口的信息

要使您笔记本电脑的 IrDA 端口在 Linux/IrDA 下工作,您可以使用标准红外 (SIR) 或快速红外 (FIR)。

4.1.1. SIR

最高 115.200bps,红外端口模拟一个串行端口,例如 16550A UART。这将在启动时或当您加载串行模块时被内核串行驱动程序检测到。如果在 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

4.1.2. FIR

如果您想使用高达 4Mbps 的速度,您的机器必须配备特定的 FIR 芯片。您需要特定的 Linux/IrDA 驱动程序来支持此芯片。因此,您需要有关 FIR 芯片的准确信息。您可以通过以下方式之一获取此信息

  1. 阅读机器的规格,尽管您在那里找到足够且可靠的信息的情况非常罕见。

  2. 尝试找出 FIR 芯片是否是 PCI 设备。执行 cat /proc/pci 命令。适用于 2.2.x 内核的相关文件位于/proc/bus/pci。尽管通常 PCI 信息是不完整的。您可以在内核文档中找到有关 PCI 设备和供应商编号的最新信息,通常位于/usr/src/linux/DocumentationCraig Hart 的页面。从内核 2.1.82 开始,您也可以使用 pci-utils 软件包中的 lspci 命令。

  3. 使用德国计算机杂志 CT 以 ZIP 格式提供的 DOS 工具 CTPCI330.EXE。此程序提供的信息有时比 Linux 工具提供的信息更好。

  4. 尝试获取有关即插即用 (PnP) 设备的信息。虽然我尚未将它们用于此目的,但 isapnp 工具可能有用。

  5. 如果您已安装 Linux/IrDA® 软件,请加载 FIR 模块并查看 dmesg 的输出,以确定是否检测到 FIR。

  6. 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 
    
    如果有疑问,请始终查找 Windows95 的 .inf/.vxd 驱动程序。Windows95 没有附带 _任何_ FIR 驱动程序。(它们都是第三方的,主要来自 Counterpoint,该公司被 ESI 收购了)。

  7. 此外,Thomas Davis 找到了一个由 SMSC 制作的小型 DOS 实用程序包。请查看 IR_UTILS.ZIP。该软件包包含 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 Tag, Mask (bit mapped - ) = 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,具有 8 字节的 io 范围;irq = 3

    c) 另一部分位于 0x02e8,io 范围为 8 字节;dma = 1 (0x02 =0000 0010)

    Warning

    该软件包不适用于最终用户,并且某些实用程序可能有害。软件包中唯一的文档是 Microsoft Word 格式。

  8. 使用 MicroSoft Windows9x/NT 操作系统的设备管理器

  9. 您也可以使用下面提到的硬件调查

  10. 最后,作为最后的手段,您甚至可以打开笔记本电脑并查看芯片本身的铭文。以下是一个可能不完整的制造商列表:Chrystal、Hewlett Packard (惠普,芯片组标记为 HSDL)、Hitachi、IBM、National Semi Conductor (NSC)、NEC、Philips、Sharp、Standard Micro Systems Corporation (SMC/SMSC)、Texas Instruments (TI)、VLSI、Winbond。作为应用电路的示例,HSDL-7001(来自惠普手册,由 WH 修改)

        LEDs    Encode/Decode    SIR/FIR
    
       HSDL-1001    HSDL-7001      UART 16550/
                      MicroController
       ______      ______________      ____________
      |      |    |              |    |            |
    (||   TXD|<---|IR_TXD     TXD|<---|SOUT        |
      |      |    |              |    |            |
      |      |    |           RCV|--->|SIN        |
      |      |    |              |    |            |
    (||   RCV|--->|IR_RCV  16XCLK|<---|BAUDOUT     |
      |      |    |          NRST|-+  |            |
       ------      --------------  |   ------------
                                   V