|
|
|
在寬帶接入還沒有走進千家萬戶之時,我們要連上互聯網,還是要驅“貓”,所以對於許多網民而言,Modem是一個十分可愛的東西。Windows對Modem提供了很好的支持,使得安裝Modem十分簡單。但是在Linux下安裝這個可愛的東西時,卻並不是那麼好辦呀!
一、 認清Modem 我們都知道,電腦處理的是數字信息,而電話線路則是模擬信息,而Modem就是用來做數字信息和模擬信息之間的轉換的。 當電腦要將信息傳出來時,Modem將其調製成為模擬信號,然後通過電話線傳送出去。 而當信息通過電話線傳送到電腦時,Modem將其從模擬信號解調成數字信息,這樣就能夠傳給電腦,讓電腦識別。 從這裏大家就應該不難理解它的學名:“調製解調器”了。 Modem可謂是五花八門,下麵我們一起來理清這些“類型”: 1. 按照Modem的速率進行分類: 也就是Modem調製的速度,我們使用單位bps來衡量。Bps的全稱是Bit per second,也就是表示每秒多少位! 最早是2400bps,後來發展到9600bps、14.4Kbps、28.8Kbps、33.6Kbps、56Kbps。 大家是否記得,通常我們使用一個33.6Kbps的Modem下載時,每秒鍾的傳輸速度最大也就4K左右,可能大家對這個速度會有一些疑惑。其實這個問題很簡單,這個4K代表的是4K Byte,而33.6Kbps則是33.6K Bit,1Byte=8Bit。 2. 按照外形進行分類: 1) 外置式Modem,也稱外貓 這種Modem的外形是一個小盒子,它通過串口與電腦相連。 2) 內置式Modem,也稱內貓 這種Modem的外形則是與顯卡、聲卡、網卡相似,是通過插在電腦主板的ISA插槽或PCI插槽中使用的。 3. 按照實現原理來分: 1) 硬貓:顧名思義,使用硬件電路實現的MODEM; 2) 軟貓:隨著CPU速度的提高,使用軟件將CPU模擬成為MODEM的DSP。使用這種MODEM,就需要軟件的支持。Windows中提供了這種軟件支持,因此,軟貓又常被稱為Win貓,這種MODEM的特點是便宜但占用資源厲害。筆者認為,硬貓價格已經很低,使用這種軟貓沒有什麼意義。
二、 Linux對Modem的支持 首先,我們一起來看一下Linux對於MODEM的支持情況: 1. Linux對軟貓支持有限,我的建議是你別買軟貓這種東西!如果你真的需要驅動這種軟貓,參見本篇的第八部分:驅動軟貓。 2. 對於外置式MODEM而言,可謂是配置最簡單的設備,隻需插入某個串行口,再對這個串行口進行相應的配置就可以使用了! 3. 對於內置式MODEM而言,也是通過串行口來進行使用的,但有些內置式MODEM並不能被Linux所認識(畢竟是插在主板上的,是一種虛擬的方式來使用串行口的),我們將在第七部分:驅動內貓中說明。 4. 在Linux中,MODEM的速率並不影響Linux的支持。 總而言之一句話:在Linux中使用MODEM,都是通過串行端口來進行的。隻要係統能夠找到這個串行端口,就可以通過串行端口來通訊。因此,驅動MODEM的思路就是: 1) 對於外置式MODEM與能夠被Linux係統識別的內置式MODEM,隻需直接使用串行端口對其操作就行了; 2) 對於那些Linux不能夠識別的內置式MODEM,我們先得想辦法讓它被Linux係統識別,然後才能夠使用第1種方式來操作。
三、 Linux下的串行口 在Linux下,所有的設備都表現成為一個文件形式,對設備的操作也就與對文件的操作一樣了。這些所有代表設備的文件都存放在“/dev”目錄下。 串(chuan)行(xing)端(duan)口(kou)也(ye)不(bu)例(li)外(wai),不(bu)過(guo)有(you)些(xie)特(te)別(bie)的(de)是(shi),每(mei)個(ge)串(chuan)行(xing)端(duan)口(kou)對(dui)應(ying)的(de)不(bu)僅(jin)是(shi)一(yi)個(ge)文(wen)件(jian),而(er)是(shi)兩(liang)個(ge)。其(qi)中(zhong)一(yi)個(ge)是(shi)用(yong)於(yu)拔(ba)入(ru),而(er)另(ling)一(yi)個(ge)則(ze)用(yong)於(yu)拔(ba)出(chu)。 1) 用來拔出的的設備文件名是ttySx,其中最後一個x是個數字,從0開始編號,與DOS串行口名的對應關係是: DOS下的名稱 Linux下的名稱 COM1 /dev/ttyS0 COM2 /dev/ttyS1 COM3 /dev/ttyS2 COM4 /dev/ttyS3 …… …… 2) 而用來拔入的設備文件則是caux,其中最後一個x也是個數字,也是從0開始編號,與DOS串行口名的對應關係是: DOS下的名稱 Linux下的名稱 COM1 /dev/cau0 COM2 /dev/cau1 COM3 /dev/cau2 COM4 /dev/cau3 …… …… 不過現在許多Linux發行版本似乎已經不對拔入、拔出加以區分了,都統一使用ttySx命名了。如果在你的係統的/dev目錄中找不到ttySx的話,則需要自己手動創建,如: # cd /dev # ./MAKEDEV ttyS0 每個串行端口都均需使用IRQ與I/O地址資源在,一般來說COM1和COM3共用IRQ3,而COM2和COM4共用IRQ4(如下表所示): 串行端口 IRQ I/O地址 /dev/cau0、/dev/ttys0 4 0x3f8 /dev/cau1、/dev/ttys1 3 0x2f8 /dev/cau2、/dev/ttys2 4 0x3e8 /dev/cau3、/dev/ttys3 3 0x2e8 通常,在Linux係統中,每一個設備都需有一個唯一的IRQ號,也就是說如果有三個串行設備的話,就必須把空閑的IRQ中斷拿過來用了。例如: /sbin/setserial /dev/ttyS0 irq 3 (COM1口上接著鼠標,中斷號為3) /sbin/setserial /dev/ttyS1 irq 4 (COM2口上接著一個MODEM,中斷號為4) /sbin/setserial /dev/ttyS2 irq 5 (COM3口上還有一個MODEM,而IRQ3已經占用,因此隻得使用空閑的IRQ5) 我們隻需將這些命令放在/etc/rc.d/rc.local文件中,這樣就可以保證每次啟動Linux時就完成設置。 我們可以使用兩個簡單的命令來查看一下是否存在IRQ和I/O地址的衝突: cat /proc/interrupts 查看IRQ中斷號 cat /proc/ioports 查看I/O地址
四、 使用MODEM拔號上網 通常,我們是通過MODEM拔打ISP提供的拔號服務電話號碼,從而連入Internet的,在Linux係統中,整個過程為: 1.準備好相應的軟件 做為拔號上網的客戶端所需的程序有chat和pppd,如果你的機器上還沒有這兩個程序,就要安裝它們,它們包含在ppp軟件包中(如ppp-2.3.7-2.i386.rpm)。 chat程序的用途是撥號並等待提示,根據提示輸入用戶名和密碼等登錄信息。而pppd的用途則是建立並維持與服務器的ppp連接,傳輸數據。 另外,為了測試方便,我們還需要一個名為minicom的軟件。不過通常這些軟件都已經會在安裝Linux係統時安裝了。 2.使用minicom測試拔號 我們可以通過minicom軟件來測試MODEM是否工作正常。 1) 首先以root身份登錄係統,然後運行命令:minicom -s。這將會啟動一個文本對話框的配置界麵。在這個配置界麵中,我們可以使用上、下箭頭鍵在菜單中選擇,用Enter鍵選中命令。 2) 測試調製解調器的關鍵在於設置串行端口。我們在此選擇Serial prot setup,進入串行端口配置菜單。如果對這裏的項目需要修改,隻需按相應的字母鍵就可以了。 3) 首先我們應設置串行設備(選擇A Serial Device)。這時,要將這個位置變為相應的設備文件,例如,如果調製解調器連接在第2個串口上.則要將其設置為/dev/ttys1,因為Minicom用於輸出連接。不過,由於Minicom默認是使用/dev/modem來標識MODEM的,因此,你可在此之前執行命令:ln /dev/ttys1 /dev/modem。這樣會省去不少麻煩。 4) 然後我們根據所連接的係統要求設備MODEM參數(選擇E Bps/Par/Bits),在這裏需要設置的包括速率(Bps)、奇偶校驗位(Par)、數據位和停止位(Bits)。其中速率設備為MODEM的最高連接速度,通常可以是MODEM速度的4倍。例如,對於1.44kbPs的調製解調器,應選擇57.6kbps.對於28.8kbps的調製解調器.應選擇115.2kbps。而對於數據位的設置,通常是無奇偶位、8個數據位和1個停止位。例如:38400 8N1。 5) 完成之後.按Enter鍵鍵返回serial port setup菜單、再接Enter鍵,返回主菜單。有了這些信息,就可以測試調製解調器了。選擇Save setup as df1將配置保存為默認配置.然後選Exit退出安裝界麵。 6) 打開Minicom程序,如果出現Ok提示,則調製解調器設置正確可以開始正常工作。 7) 可以輸入’AT’並按Enter鍵進行測試。這時,回到OK信息。如果一切順利,則可以開始撥號。看看是否正常進接.輸入"ATD163"。此時,應該聽到連接的聲音,然後看到連接信息和遠程係統的信息提示: ATD163 CONNECT 115200 這時,就說明你的MODEM已經可以使用了。 8)最後按CTRL+A,Q退出Minicom。 3.設置DNS域名解析 在Linux中,要設置DNS域名需要編輯配置文件/etc/resolv.conf,在最後加入一行: nameserver xxx.xxx.xxx.xxx (如:nameserver 202.101.103.55) 其中IP地址是ISP提供的域名服務器的IP地址。 4.手動拔號上網 下麵,我們就在命令行上手動完成拔號上網工作: 1) 首先,運行minicom,然後輸入Ctrl-A,再敲D, 將會出現一個拔號界麵,此時選擇manual(手動),並輸入ISP的電話號碼,調製解調器一陣亂響之後,會有幾聲音樂響,並在屏幕上提示按任意鍵繼續。 2) 接著,屏幕上就會出現你ISP的信息,根據提示輸入你的username和password,(有可能還會要求你選擇ppp連接還是slip連接等)如果成功的話,就會出現一些垃圾字符。 3)這時,輸入CTRL+A再按Q,退出minicom。 注意,不是按X,那樣就會斷開這次拔號 4) 接著,我們使用pppd建立ppp連接,也就是執行命令: pppd debug lock modem crtscts defaultroute /dev/ttyS1 115200& 命令說明: deubg 使其在/var/log/messages中記錄下相關調試信息; lock 鎖定串行口設備 modem 說明使用MODEM的控製信號 crtscts 說明使用硬件數據流控製 defaultroute 在本機路由表中加入一項缺省路由 /dev/ttyS1 指出Modme所在端口 115200 說明串行口的速率 & 表示使其在後台運行。 一會兒之後,ppp連接就會建立,這時你可以試一試: a. 運行ifconfig,你將看到ppp0的網絡接口,這個接口的IP地址就是對端服務器給你分配的IP地址; b.運行route,你會發現對端服務器的IP地址被加入路由表了; c.ping一下遠方的主機,應該能夠連通。 你還可以在另一個虛擬控製台上運行: tail -f /var/log/messages 這時,你可以觀察到動態的pppd日誌信息。 4) 如果要斷開這次連接的話,隻需執行命令: killall pppd 5.通過腳本程序自動拔號上網 安裝了ppp軟件包後,會生成/etc/ppp和/usr/doc/ppp-x.x.x(其中x.x.x是版本號)兩個目錄,pppd的配置文件都存放在/etc/ppp目錄中,而/usr/doc/ppp-x.x.x則存放著pppd的相關文檔,在這個目錄下有一個名為scripts的子目錄,這個目錄中有幾個有用的文件: ppp-on-dialer:一個負責拔打電話,並輸入所需登錄信息的腳本程序(實現了當時我們通過minicom完成的工作); ppp-on:負責啟動本機的pppd,與服務器端的pppd進行對話,實現端對端連接; ppp-off:負責斷開連接的一個腳本。 下麵,我們就使用它們來簡化我們的拔號上網工作: 1) 首先,將它們複製一份到/etc/ppp目錄中; 2) 編輯ppp-on文件,將以下幾部分根據你的實際情況修改: TELEPHONE=8163 ACCOUNT=8163
PASSWORD=8163 DIALER_SCRIPT=/etc/ppp/ppp-on-dialer exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 注:這些內容在ppp-on文件中都是有的,不是新增,而是修改它的值。 3) 修改ppp-on-dialer文件,將以下幾部分根據你的ISP的實際情況做相應的修改: username: $ACCOUNT assword: $PASSWORD " select(1~3):" 1 注:“:”左邊的內容都是拔號時會問你的,右邊的都是相應的回答。這些內容在我們當時使用minicom做測試拔號時就會看到了! 4) 為三個腳本賦予可執行權限,也就是執行命令: chmod +x ppp-on ppp-on-dialer ppp-off 5) 到此,我們就可以執行/etc/ppp-on完成拔號上網,執行/etc/ppp-off斷開網絡連接了。
五、 使用kppp軟件完成拔號上網 對於習慣使用了圖形化界麵的Windows用戶而言,這些晦澀的命令行操作,會嚇走一大堆人的,別急,現在我們就介紹一種圖形化的拔號上網軟件kppp,隻要你安裝了KDE,就可以使用這個軟件。使用它拔號上網很簡單: 1) 運行Kppp:如下圖所示,先點擊“K”按鈕,選擇Internet,然後選擇Kppp: 2) 單擊Kppp麵板上的Setup按鈕,將出現如下圖的界麵: 首先,我們單擊“New…”按鈕,進行Accounts的設置; 3) 接著,我們選擇“Device”進行相應的設置: 4) 設置完成後,按OK按鈕退出,返回Kppp主畫麵: 5) 填入Login ID和Password,再按Connect按鈕,就可以開始拔號了,拔號成功了,會在任務條上出現一個MODEM似的小圖標,就像Windows中的網絡連接示意圖標一樣。開始衝浪吧!
六、 驅動內貓 對於大多數內貓而言,Linux係統能夠自己識別到,那隻需用前麵的方法使用它就行了。而如果你的Linux無法識別它的話,就需要讓Linux係統識別到它。通常我們可以采用兩種方法: 1、 對於一些即插即用設備而言,我們可以使用isapnptools工具解決這一問題: 1) 首先以root用戶登陸,然後運行命令/sbin/pnpdump > /etc/isapnp.conf,將你機器上所有的即插即用設備信息寫入文件/etc/isapnp.conf中。 2) 接下來需要為該設備分配IRQ與I/O資源: a.根據該設備在Windows中查看其所占資源,當然這要你在本機上裝有Windows; b.或者自已動手為其分配資源,隻要不衝突就行了!(已分配的資源可以從/proc/interrupts、/proc/ioports、/proc/dma查到) 3) 然後從isapnp.conf中找到你要驅動的設備,然後去掉它們前麵的注釋號“#”,將填入它們的INT(IRQ號)、IO(IO地址)及DMA等。 4) 設置完成後,我們就可以執行以下命令驅動該設備: /sbin/isapnp /etc/isapnp.conf 5)如果該命令沒有出錯的話,就會在屏幕上打印出相關的硬件信息,你隻需將該句命令寫入/etc/rc.d/rc.local就可以使得每次啟動Linux時,都自動驅動該設備。 2、 如果你能夠找到該款內貓的驅動程序的話,那也可以采用安裝驅動程序的方法。采用這種方法,大致的步驟如下: 1) 下載驅動程序包; 2) 解壓驅動程序包,然後運行make,完成編譯; 3) 使用insmod將驅動程序模塊加入內核; 4) 然後在/dev目錄下創建一個設備,命令如下: cd /dev mknod 驅程模塊名 c 127 1 5) 然後創建一個名為modem的符號鏈接,使其指向剛剛創建的設備; 6) 這樣,我們就可以使用前麵的方法來操作MODEM了。 由於對於不同的MODEM,驅動程序不同,因此無法一一細解,隻能是將安裝的思路整理出來,供大家參考。
七、 驅動軟貓 由於軟貓的生產廠商不願公開軟貓的技術,也不願意開發Win9x/NT以外的驅動程序。因此Linux對其的支持就十分有限。 如果你的MODEM包裝盒上注有"HCF" , "WinMODEM" 或 "soft MODEM" 字樣的話,就很可能是軟貓。如果你想在Linux下使用它,那一定要去www.linmodems.org看一看。該網站中有一些軟貓的驅動程序,目前已有支持Cirrus Logic(CL-MD5620DT)、 Conexant (Rockwell) HSF、ESS ES56T-PI、MODEMs (PCI)、 Lucent LT WinMODEM、 Pc Tel等芯片的軟貓驅動程序。 下麵我就以CL-MD5620DT為例(其他品牌類似),說明一下軟貓的驅動方法,希望對軟貓用戶有一些指導和參照。 1. 從www.linmodems.org中下載其驅動程序clmodem-0.3.0+gg.tar; 2. 執行以下命令,解開這個tar包: # tar - xvf CLMODEM-0.3.0+gg.tar 3. 由於該驅動程序不支持PnP(即插即用),因此需要手工配置IRQ與I/O地址,我們可以通過執行cat /proc/pci |more命令來獲取其IRQ與I/O資源占用情況。從該命令的輸出中你可以看到類似下麵的一段信息: Bus 0, device 13, function 0: Communication controller: Cirrus Logic Unknown device (rev 1). Vendor id=1013. Device id=4000. Medium devsel. IRQ 10. Non-prefetchable 32 bit memory at 0xebffe000 [0xebffe000]. I/O at 0xe 000 [0xe001]. 從中,我們可以得知,其資源占用情況:IRQ=10;I/O地址=0xe0000。 4. 然後我們修改驅動程序中的clm_config.h文件,將其前兩行根據其輸出修改: #define CLM_BASE_IO_ADDRESS 0xe000 #define CLM_IRQ 10 5. 然後在驅動程序目錄中執行make命令,編譯驅動程序; 6. 接著使用insmod命令將該模塊裝載入內核: /sbin/insmod clm.o 若要每次啟動Linux時自動加載該模塊,可將該句加入/etc/rc.d/rc.modules文件。 7. 使用mknod命令創建設備: mknod /dev/clm c 121 0 8. 最後,將/dev/modem鏈接為/dev/clm: ln /dev/modem /dev/clm 好了,Linux已經可以識別你的軟貓了,你就可以前麵的方法拔號上網了。
|
|
狀 態:
離線
公司簡介
產品目錄
|
|
|
公司名稱:
|
濟南飛天電子科技有限公司
|
| 聯 係 人: |
銷售部
|
| 電 話: |
0531-89210612
|
| 傳 真: |
|
| 地 址: |
濟南市天橋區北關北路8號明湖花園小區1-6-102 |
| 郵 編: |
250001 |
| 主 頁: |
|
|
|
|
|