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