第一步是修改你的内核,使其识别到你安装了 BocaBoard。不幸的是,这并非配置脚本的一部分;你必须手动修改源代码。在旧版本的内核中,这需要在以下文件的开头添加如下行:linux/drivers/char/serial.c:
#define CONFIG_BOCA 1 |
从某个内核版本开始,情况发生了变化。为了使其在新内核中工作,请搜索
"BOCA_FLAGS" #define |
#define BOCA_FLAGS ASYNC_BOOT_AUTOCONF |
然后,你可以使用源代码树中包含的说明重新编译你的内核。我建议从软盘运行新内核,直到你非常确定它工作正常;否则,恢复系统的过程充其量会让人感到非常头疼。
至少对我来说,深入研究我的内核并重新编译它是一项相当有压力的冒险!放轻松;只要你将其复制到软盘,你的新内核是完全无害的。它不会咬人!真的!:-)
卡和 Linux 软件上配置的默认地址都是 0x100;保持不变。将卡上的 IRQ 设置为 Linux 默认值 12。如果你想更改 IRQ,你需要在文件中搜索 "BOCA_FLAGS"。你会找到如下行
{ BASE_BAUD, 0x100, 12, BOCA_FLAGS }, /* ttyS16 */ { BASE_BAUD, 0x108, 12, BOCA_FLAGS }, /* ttyS17 */ |
你可以通过将 12 更改为任何有效的 IRQ 来更改 IRQ。但我没有尝试过。
一旦你编译了新的内核,关闭机器并安装卡。然后,在驱动器中放入新内核软盘,打开机器。如果安装成功,你应该会看到关于 16550 UARTS 连接到 ttyS16-ttyS32 的各种奇怪信息。然后系统将正常启动。
你很可能实际上在/dev中没有这些行的条目。请记住,它们从 16 开始,一直到 32。如果你查看源代码,你就会明白原因;对其他卡的支持包含在较低行号的代码中。一旦你知道了窍门,创建它们非常简单。
要为拨出线路(你呼出的线路)创建条目,请输入
#mknod /dev/cuaxx c 4 N |
n = 64 + {线路号}。C 表示这是一个字符模式设备。例如,要在你的板卡上创建前几行,请输入
#mknod /dev/cua16 c 4 80 #mknod /dev/cua17 c 4 81 |
要为拨入线路(用户呼叫你的线路)创建条目,请输入
#mknod /dev/ttySxx c 5 n |
其中 N 与上面描述的相同。例如,要在你的 BocaBoard 上创建前几行,请输入
#mknod /dev/ttyS16 c 5 80 #mknod /dev/ttyS17 c 5 81 |
建议你为每个端口创建拨入和拨出线路,以便获得最大的灵活性。事实证明,通过将你的其中一条线路激活为拨出并呼叫你的主号码来呼叫系统的另一条线路非常方便。我已经这样做了,效果很好!这对于检查“围栏另一侧”的情况非常有用;我用它来了解我的软件在 2400bps 下的外观。(它比 Linux 控制台慢。事实上,慢很多)。
完成此操作后,你可以像为标准 ttySx 条目一样,将条目添加到你的inittab文件中,并且调制解调器或终端应该会出现!