在UNIX系统中改变串口设备名称的方法
在UNIX系统中,标准串行设备com1和com2的名称为tty1a、tty1A、tty2a、tty2A、ttyXA等。如果要增加一块多用户卡,首先必须了解其为智能卡还是与UNIX系统兼容的标准卡。一般智能卡上有CPU,如i960、TMS320或80286,厂家提供安装驱动程序;而后者是以com1或com2方式安装,其分别利用中断3和中断4,在系统提示下输入命令 `# /etc/mkdev serial` 来完成。
无论安装哪一种卡,安装成功后在/dev下会出现ttyxx的设备名称,如tty1a、tty2b、tty2a、ttye11等。编辑 `/etc/inittab` 文件,会有:
```
...
Se1a:234:off:/etc/getty tty1a m
Se1A:234:off:/etc/getty -t60 tty1A 3
...
```
通过启用 `tty1a` 端口,连接tty1a的终端即会出现 `login:` 提示。然而,在实际运用中,有一些端口设备的名称已被固定写入可执行程序中不能改动,只能调动原来已有的设备名称。那么如何利用已有的设备来映射程序中的设备名称呢?以 `tty1a` 为例,欲改为 `tty21a`,首先编辑 `/etc/conf/node.d/sio` 将 `sio tty1a c 0` 一行中的 `tty1a` 改为 `tty21a`,然后编辑 `/etc/conf/init.d/sio` 将 `Se1a:234:off:/etc/getty tty1a m` 一行中 `tty1a` 改为 `tty21a`,重建内核 `# /etc/conf/bin/idbuild`。
机器重新启动后,编辑 `/etc/inittab`。将原来 `Se1a:234:off:/etc/getty tty1a m` 一行中的 `tty1a` 变为 `tty21a`。接着,编辑 `/etc/ttytype` ,增加一行 `ansi tty21a`,设定tty21a的终端类型为ansi。在/dev下会产生一个tty21a的设备名称。此时如果 `# enable tty21a`,则原先连接tty1a端口的终端会出现 `login:`,说明名称改变有效。若再 `# enable tty1a`,即会提示非法tty名称错误。
这种方法特别适用于串口设备改变但又不便改动运行程序的场合。以上示例分别在SCO Unix 3.2.4.2和OpenServer 5.0下调试通过。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。