![]() |
| 新浪首頁 > 科技時代 > FreeBSD使用大全連載 > FreeBSD連載(35):串口和modem |
![]() |
撥號網絡局域網上的FreeBSD要和Internet(或其他廣域網)連接,就需要使用廣域網界面。對于一般用戶, 采用普通電話線進行撥號的方式,是比較常見的做法。這就需要首先使用計算機的串口連接到modem(調制解調器)上, 再通過modem連接到Internet上。
因此如果采用撥號方式連接一台計算機到遠端,則必須配置好計算機的串口和modem。 個人計算機一般有兩個串口,在DOS下稱為COM1、COM2,FreeBSD使用Unix的習慣從0開始排 列數字,相應的串口硬件為sio0、sio1。啟動時系統將自動檢測這些硬件,檢測結果顯示在屏幕上,可以在登錄后使 用dmesg來查看這些啟動信息,判斷硬件是否真的被檢測到了。如果串口被檢測到,就能使用連接到相應串口上的外置 modem進行連接。 如果使用內置modem卡,卡上將包括一個串口設備,根據這個卡的設置,這個串口設備可以為sio2或sio3 ,因此必須保証內核支持第三、第四個串口設備sio2和sio3。但與DOS不同的是,modem卡使用的IRQ不 能與已有串口共享硬件資源。由于DOS是單任務操作系統,不可能同時使用兩個串口,共享IRQ是可以的,因此COM1 與COM3共享IRQ 4,COM2與COM4共享IRQ 3。但是對于多用戶操作系統FreeBSD來講,同時會有 多個進程訪問設備,每個設備必須單獨占有IRQ,因此必須在內核中將modem卡的IRQ設為另外的空閑值。 要更改卡上的跳線或在DOS下運行設置程序更改卡上的設置,以使硬件上設置與內核配置相一致。通常PNP的 modem卡能正確設置硬件資源,也可以通過UserConfig重新設置。 當FreeBSD的內核檢測到串口設備之后,就能夠通過相應的設備文件來訪問這些串口了。對應第一個串口sio0 的設備文件為/dev/ttyd0和/dev/cuaa0,對應第二個串口sio2的設備文件為/dev/tty d1和/dev/cuaa1,依次類推。 FreeBSD對一個串口提供了兩個設備文件,事實上它們對應同樣的硬件,只是屬性略有不同。cuaa0主要 用來撥出,ttyd0主要用于撥入和直接連接。設置這兩個設備文件的原因是計算機與modem相互通信的數據有兩類, 一種為計算機通過串口發送給modem的控制指令,常用的為Hayes的AT指令,這些數據是發送給modem的,而 另一種數據是計算機通過modem發送到電話網上的傳輸數據,這些數據只需要讓modem進行調制解調即可。而對于應 用程序來講,要想非常簡單的來區分這兩種數據,就可以使用兩個初始狀態不同的設備文件。 當外部撥入內部時,電話連接已經設置好了,數據傳輸是在計算機與電話網之間,modem只進行調制解調,此時 就使用ttyd0。而當向外撥號時,modem還沒有建立連接,計算機應該向modem發送指令,控制modem執行 撥號等操作,此時就使用設備文件cuaa0。一旦連接建立之后,系統將重置設備文件的屬性,使得cuaa0同樣也是將 數據發送向電話網上。 因此ttyd0和cuaa0這兩個設備文件,只是初始狀態不同,而并沒有本質的差別。事實上大多數撥號軟件會 重置設備文件的狀態,使用哪個設備都可以正確完成撥號過程。然而習慣的做法仍然是使用cuaa0用于撥出,ttyd0 作為撥入,這樣能避免某些軟件不能正確重置設備文件的狀態的問題。 未完,待續。。。 |
|||
| 新浪首頁 > 科技時代 > FreeBSD使用大全連載 > FreeBSD連載(35):串口和modem | ||||
Copyright(C) 1999 SINA.com, Stone Rich Sight. All Rights Reserved
版權所有 四通利方 新浪網