FreeBSD 当前支持dumb 多端口串行接口卡 , 如BocaBoard 1008 and 2016 , 就象许多Digiboard
和Stallion TechnologIEs 制造的智能多接口卡 。默认的内核只会寻找标准的COM 接口 。
要看看你的内核是否支持你的串口 , 需要在内核启动时查看一些信息 , 或使用
/sbin/dmesg 命令重新播出内核启动信息 。特别的 , 寻找以sio 为特征的启动信息 。
提示:要看看带有sio 的信息 , 可以使用下面的命令:
# /sbin/dmesg | grep "sio"
第3 页FreeBSD 使用手册
例如 , 在一个带有4 个串行口的系统上 , 这些是串行口特定的内核启动信息:
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A
如果你的内核没有认出你的所有串行口 , 你需要为你的系统定制一个内核 。更多有关配
置内核的细节 , 可以看看第9 章 。
在你的内核配置文件中相关的设备行是这样的:
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr
你可以注释掉或完全删除你没有的设备 。请看看sio 的有关如何为你的多端口主板写入
配置信息的联机手册 。如果你使用了一个不同版本的FreeBSD 的配置文件 , 请小心点 , 因为
设备的标记在两个版本之间已经改变了 。
15.2.4 设备指定文件
内核中的绝大多数设备可以通过device special files 来访问 , 它就在/dev 目录下 。
Sio 设备通过/dev/ttyd N (dial-in)和/dev/cuaa N (call-out)来访问 。FreeBSD 也提供了初
始化的设备(/dev/ttyid N and /dev/cuai0 N) 和锁定的设备(/dev/ttyld N and
第4 页FreeBSD 使用手册
/dev/cual0 N) 。初始化的设备在每次端口被打开时被用来初始化设备通讯端口参数 。例如使
用CTS/RTS 的流控制信号的crtscts 。锁定设备被用来锁定端口的标记以阻止用户或程序改
变某个参数;看看termios, sio, and stty 的联机手册了解更多信息 。
15.2.4.1 编译设备指定文件
注意:FreeBSD 5.0 已把自动创建设备接点的devfs 文件系统作为是必需的 。如果你在
运行启用devfs 的FreeBSD 版本 , 你就可以跳过这一节 。
一个在/dev 目录下的叫做MAKEDEV 的shell 脚本管理着设备的特殊文件 。要使用
MAKEDEV 来编译拨号设备 , 以使用COM1:(port 0),cd 进入/dev,然后执行命令MAKEDEV
ttyd0 。同样地 , 要编译拨号设备以使用COM2:(port 1),可以执行MAKEDEV ttyd1 。MAKEDEV
不仅仅创建/dev/ttyd N设备特殊文件 , 也创建/dev/cuaa N, /dev/cuaia N, /dev/cuala N,
/dev/ttyld N, 和/dev/ttyid N节点 。
编译完支持新设备的特殊文件之后 , 需要检查文件的权限来确定谁可以在这些文件上读
写—你可能不想让普通的用户来使用你的modem 吧 。默认的在/dev/cua*上的权限应当比较
充分:
crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1
这些许可允许用户uucp 和在组拨号上的用户使用呼出设备 。
15.2.5 串行端口配置
ttyd N (或cuaa N)设备是你要打开你的应用程序的规则设备 。当一个进程打开某个设备 ,
它将有一个终端I/O 的默认设置 。你可以在命令行看这些设置:
# stty -a -f /dev/ttyd1
当你修改了这个设备的设置 , 这个设置会生效 , 除非设备被关闭 。当它被重新打开时 ,
它将回到默认设置 。要修改默认设置 , 你可以打开和调整initial state 设备的设置 。例如 ,
推荐阅读
- 在FreeBSD 4.0下安装USB鼠标支持
- 2 FreeBSD handbook中文版 11 打印 高级打印机设置 B.Header Pages
- FreeBSD 4.0 Kernel Hacking Guide--vm/vm_object.c
- NDIS wrapper for FreeBSD 5.2 CURRENT
- 如何压缩FreeBSD内核
- FreeBSD 4.0 Kernel Hacking Guide--i386/i386/machdep.c
- FreeBSD紧急救援状况的应变措施
- freebsd 文件类型表示
- 用 NT loader 来启动 FreeBSD
- FreeBSD中用MRTG监测网路流量