在UNIX系統(tǒng)中改變串口設(shè)備名稱的方法
在UNIX系統(tǒng)中,標準串行設(shè)備com1和com2的名稱為tty1a、tty1A、tty2a、tty2A、ttyXA等。如果要增加一塊多用戶卡,首先必須了解其為智能卡還是與UNIX系統(tǒng)兼容的標準卡。一般
在UNIX系統(tǒng)中,標準串行設(shè)備com1和com2的名稱為tty1a、tty1A、tty2a、tty2A、ttyXA等。如果要增加一塊多用戶卡,首先必須了解其為智能卡還是與UNIX系統(tǒng)兼容的標準卡。一般智能卡上有CPU,如i960、TMS320或80286,廠家提供安裝驅(qū)動程序;而后者是以com1或com2方式安裝,其分別利用中斷3和中斷4,在系統(tǒng)提示下輸入命令 `# /etc/mkdev serial` 來完成。
無論安裝哪一種卡,安裝成功后在/dev下會出現(xiàn)ttyxx的設(shè)備名稱,如tty1a、tty2b、tty2a、ttye11等。編輯 `/etc/inittab` 文件,會有:
```
...
Se1a:234:off:/etc/getty tty1a m
Se1A:234:off:/etc/getty -t60 tty1A 3
...
```
通過啟用 `tty1a` 端口,連接tty1a的終端即會出現(xiàn) `login:` 提示。然而,在實際運用中,有一些端口設(shè)備的名稱已被固定寫入可執(zhí)行程序中不能改動,只能調(diào)動原來已有的設(shè)備名稱。那么如何利用已有的設(shè)備來映射程序中的設(shè)備名稱呢?以 `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`,重建內(nèi)核 `# /etc/conf/bin/idbuild`。
機器重新啟動后,編輯 `/etc/inittab`。將原來 `Se1a:234:off:/etc/getty tty1a m` 一行中的 `tty1a` 變?yōu)?`tty21a`。接著,編輯 `/etc/ttytype` ,增加一行 `ansi tty21a`,設(shè)定tty21a的終端類型為ansi。在/dev下會產(chǎn)生一個tty21a的設(shè)備名稱。此時如果 `# enable tty21a`,則原先連接tty1a端口的終端會出現(xiàn) `login:`,說明名稱改變有效。若再 `# enable tty1a`,即會提示非法tty名稱錯誤。
這種方法特別適用于串口設(shè)備改變但又不便改動運行程序的場合。以上示例分別在SCO Unix 3.2.4.2和OpenServer 5.0下調(diào)試通過。