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