FreeBSD 串行 IO 卡安装

FreeBSD 串行 IO 卡安装

我正在尝试在 FreeBSD 9.1(预发行版)机器上安装 PCI 串行 IO 卡。我花了几个小时都没有成功。我使用 puc 和 COM_MULTIPORT 选项重新编译了内核。没有成功。

这是“pciconf -l | grep ^none”的结果:

none0@pci0:0:9:0:       class=0x070002 card=0x32534348 chip=0x32534348 rev=0x10 hdr=0x00
none1@pci0:0:17:5:      class=0x040100 card=0x45521106 chip=0x30591106 rev=0x50 hdr=0x00

答案1

如果我们翻译部分信息,我们会得到这样的结果:

none0@没有连接驱动程序
pci0:0:9:0:卡的位置(在 PCI 总线上)
class=0x070002 这似乎表示串行 IO 卡
card=0x3253 4348 4348表示南京秦恒电子有限公司(http://wch.cn)
                    PCI 数据库将 0x3253 标识为
                    “PCI 串行并行多串行板”

换句话说,我们知道它是哪张卡。但你的内核无法识别它。没有识别它,就没有加载正确的驱动程序。

这里有三种可能的解决方案:

  1. 找到正确的驱动程序(通常通过制造商的网站)并使用它。
  2. 或者将内核更新到可以识别此设备的版本
  3. 或者编写自己的驱动程序。

3)工作量很大。

2) 最简单的方法是更新内核,但您已经在使用最新的非当前内核。您可以尝试 10/current,但我怀疑它是否有效。不过值得一试。

或者修改内核源代码。如果你还没有,请下载它,然后:(
cd /usr/src/sys/dev/uart/ vim uart_bus_pci.c /TOPIC Semiconductor TP560 56k modem 向前搜索包含以下内容的行TOPIC 半导体 TP560 56k 调制解调器

添加标有加号的行。(使用i进入插入模式)

{ 0x151f, 0x0000, 0xffff, 0, "TOPIC Semiconductor TP560 56k 调制解调器", 0x10 },
+{ 0x4348, 0x3253, 0xffff, 0, "WinChipHead 双端口 RS-232", 0x10 },
 { 0x9710, 0x9820, 0x1000, 1, "NetMos NM9820 串口", 0x10 },

节省 (Escape:wq

重新编译内核。您已经使用 puc 和 COM_MULTIPORT 选项完成了此操作,因此您知道如何操作。对于遇到类似问题的其他读者,请参阅http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-building.html

如果一切顺利,内核现在将 [尝试] 附加驱动程序。希望是可以工作的驱动程序。
后者无法保证,因为并非所有串行卡都以完全相同的方式使用乘法器。

相关内容