在UNIX系統中改變串口設備名稱的方法
在UNIX系統中,標準串行設備com1和com2的名稱為tty1a、tty1A、tty2a、tty2A、ttyXA等。如果要增加一塊多用戶卡,首先必須了解其為智能卡還是與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下調試通過。