瘟貓和Linux配置實作指南 作者︰Alexandre J. [1]alexandre12@mageos.com 譯者:梁昌泰 [2]linuxrat@gnuchina.org,李超 [3]lich1@263.net v1.0, April 2000 翻譯日期︰2000年07月15日 _________________________________________________________________ 本文檔向用戶講授如何在Linux下讓瘟貓(Winmodem)運轉起來。 _________________________________________________________________ 1. 瘟貓是什么東東? * 1.1 它們是貓...... * 1.2 ...但是跟真正的貓并不一樣! * 1.3 我怎么知道我拿的是瘟貓? 2. 是ISA還是PCI? * 2.1 PCI ? * 2.2 難道是ISA的? 3. 安裝貓的驅動程序 * 3.1 LT牌瘟貓(來自朗訊科技Lucent) * 3.2 LTMODEM程序(開源的驅動程序) 4. 結束... * 4.1 版權協議,版權所有 * 4.2 聯系信息 * 4.3 資源 _________________________________________________________________ 1. 瘟貓是什么東東? 1.1 它們是貓...... 一只瘟貓,和其它的貓一樣,是用來訪問電話服務的,比如BBS、英特網、語音電 話、傳真等等。它通過電話線連接并由速度決定其特性.如果您很想學習貓的更 多知識,我建議您閱讀Modems-HOWTO。 1.2 ...但是跟真正的貓并不一樣! 它們是“瘟”貓(WINmodem)!也就是說,它們依賴于Windows操作系統才能工作 !為什么呢?很簡單,因為它們太土鱉!它們需要特定的軟件和驅動程序協同起 來才能完成完整的任務。所謂的特定軟件指的就是操作系統,隨貓所提供的驅動 程序99%的程度是只有為微軟視窗系統平台獨家提供的。但是隨著Linux的民主化 /大眾化(democratization),一些生產廠家,比如朗訊科技(LT)、摩托羅拉 (Motorola)等,決定為她們自行研制生產的貓們開發Linux下的驅動程序。但是 她們并不了解Linux的哲學:她們提供的驅動程序是能夠正常工作的,而她們的驅 動程序卻是“閉源”(Closed Source)的!她們是free的,這里的free指的是價格 上的“免費”,而不是GPL條款所指的“自由”!也就是說這些驅動程序的源代碼 不公開給大眾。 所以,一些“黑客”/“電腦玩家”決定編寫一個開源(Open Source)的驅動程序 ,但是他們并不十分了解手中的貓的技朮細節,因為生產廠商不愿意泄露的貓的 技朮細節。也正因為如此,開源的貓驅動程序往往是alpha或者beta版本的。 1.3 我怎么知道我拿的是瘟貓? 1. 看看您的貓連接的串口的名稱(舉例說,在Windows或者MSDOS就是COM1 、COM2、...等等)。 在Linux下,您的貓的名稱是/dev/ttySx。此處的x是在DOS下的串口號數字減一。 比如,在DOS下的COM1,在Linux是ttySx,這里的x=1-1=0,所以是ttyS0。 第二例:在DOS下面是COM3,在Linux下面則是ttyS2。 其它的依此類推。 2. 給/dev/ttySx做一個名為/dev/modem的符號連接。需要執行的命令是: _________________________________________________________________ rm -f /dev/modem

ln -s /dev/ttySx /dev/modem _________________________________________________________________ 3. 下載并安裝minicom軟件包。接著運行'minicom -s'。 選擇'Serial Port Setup'(串口設置),鍵入'A'來設定'Serial Device('串口 設備),刪除所有的行,并輸入'/dev/modem'。接著請按[Enter]回車鍵確認。 按[Esc]鍵,并選擇'save setup as dfl”,然后選擇'Exit'(退出)。 請等待一會兒,然后輸入'AT'。如果您的貓回應'OK',那么您的貓不是一只瘟貓 ,而是一只標准的貓! 如果初始化時間太長,那么您的貓應該是一只瘟貓。請仔細閱讀本文檔,讓它能 跑起來。請以root根用戶登錄。 4. 請按CTRL+A然后X退出Minicom操作環境。 2. 是ISA還是PCI? 2.1 PCI ? 嗯,知道了,我們現在知道我們的貓是一只瘟貓了。但是瘟貓有兩種類型:ISA或 是PCI的。可惡的廠商們為了讓事情變得更糟糕,故意把兩種接口做的非常不同。 所以,現在我們就要測試一下我們的貓是PCI的還是ISA的。首先,必須要配置一 把內核。在make *config的過程當中,必須對下列問題回答'yes': * 在Loadable module support(可加載模塊支持)部分:'Enable loadable module support (CONFIG_MODULES)'(激活可加載模塊支持),及 'Set version information on all modules for symbols (CONFIG_MODVERSIONS)'(切記必須已經安裝了modutils模塊工具軟件包﹔請 參閱Kerneld-HOWTO) * 在General setup部分: 'PCI support' (CONFIG_PCI) 在'PCI Access Mode' (CONFIG_PCI_GOBIOS)處選擇'Any' 'PCI quirks' (CONFIG_PCI_QUIRKS) 'Backward compatible /proc/pci' (CONFIG_PCI_OLD_PROC) * 在Filesystems部分 '/proc filesystem support' (CONFIG_PROC_FS) 如果您從未重編譯過內核,可能您使用的發行套件的內核就已經包含這些東西。 如果想重編譯內核,而且您還從未干過這樣的事情,請參閱Kernel-HOWTO. 現在,我們假定您的新內核已經安裝妥當。 現在請運行'cat /proc/pci'命令。如果您在命令行返回的結果當中看到了您的貓 的名字,那么您的貓是PCI瘟貓。請跳至'安裝驅動程序'一節 2.2 難道是ISA的? 如果您還沒有找到您的貓,很有可能您拿到的是一只ISA的貓。怎么確定是ISA貓 呢? ISA的支持在內核是不考慮直接支持的(2.4.*系列內核會考慮,但是目前它還是 不夠穩定的)。這里有一個第三方的軟件,名字就叫isapnp,是用來檢測ISA設備 的。首先您必須確認您已經安裝了該軟件包。如果還沒有安裝,也可以通過下 載isapnptools軟件包來解決。 一旦isapnptools已經安裝好,我們先運行一個特定程序,叫pnpdump。它可以檢 測您的電腦系統,從中尋找出ISA設備來。在運行當中,程序試圖檢測設備所使用 的資源并將這些資源打印到文件/etc/isapnp.conf當中。然后,您需要編輯該文 件并執行另外一個程序isapnp。該程序會讀取isapnp.conf文件并自動配置您的設 備。 嗯?聽起來很難么?那就走一走以下的步驟吧: 1. 請執行'pnpdump > /etc/isapnp.conf'。 2. 請使用您最喜歡的文本編輯器來編輯該文件。 3. 定位到描述您的貓的節段部分。 4. 去掉文件當中的某些行列的注釋(就是去掉行首的#號啦)。您得: 1 line '(IO 0 ...)' 1 line '(INT 0 ...)' 1 line '(DMA 0 ...)' 1 line '(DMA 1 ...)' 1 line '(IO 1...)' 5. 請刪除掉所有未注解IO行當中的'(CHECK)' 6. 請執行'isapnp /etc/isapnp.conf'。如果提示有錯,請根據您得到的錯誤信 息,編輯文件isapnp.conf并變更參數。如果沒有錯誤提示,編輯文 件isapnp.conf并解除描述您的貓的節段部分的'(ACT Y)'行注釋。然后再執 行'isapnp /etc/isapnp.conf',系統會提示您" [[Name of your modem]] Enabled OK" 7. 請把'isapnp /etc/isapnp.conf'添加到您的/etc/rc.d/rc.local當中,方法 是輸入 'echo "isapnp /etc/isapnp.conf" >> /etc/rc.d/rc.local'。在每一次 的系統啟動的設備自動配置時,這會起到很大作用。 如果能對大家有幫助的話,以下就是我的/etc/isapnp.conf文件的摘錄(我已經 在文件當中注釋了,原文件的注釋以##打頭) _________________________________________________________________ # Snip details ... ## (DEBUG) (READPORT 0x0203) (ISOLATE PRESERVE) (IDENTIFY *) (VERBOSITY 2) (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING # 我的貓卡的辯識信息 ## Card 1: (serial identifier e2 00 00 01 00 05 50 c3 1e) ## Vendor Id GVC5005, Serial Number 256, checksum 0xE2. ## Version 1.0, Vendor version 0.1 ## ANSI string -->LT Win Modem<-- ## ## Logical device id HSM0140 ## Device support I/O range check register # # 我們要配置 GVC5005/256 卡 (CONFIGURE GVC5005/256 (LD 0 # I/O Base address 0x03f8, with a range of 8 (IO 0 (SIZE 8) (BASE 0x03f8) ) # IRQ 4 (INT 0 (IRQ 4 (MODE +E))) # DMA 5 (DMA 0 (CHANNEL 5)) # DMA 7 (DMA 1 (CHANNEL 7)) # I/O Base Address 2 0x0100, range 8 (IO 1 (SIZE 8) (BASE 0x0100) ) # 卡的名稱 (NAME "GVC5005/256[0]{LT Win Modem }") # 激活之 (ACT Y) # 結束配置 )) ######## The parameters for my other ISA devices ############## ## Returns all cards to the "Wait for Key" state (WAITFORKEY) _________________________________________________________________ 3. 安裝貓的驅動程序 您沒有必要完全閱讀本節段,只需要匹配您的貓的部分就可以了。目前,我只通 過使用朗訊(Lucent)和開源驅動程序來講述如何安裝LT貓。如果您已經編寫了 或者使用了其它的瘟貓驅動程序,無論是閉源還是開源的,都給我放一個過來吧 (我的email地址是:alexandre12@mageos.com),然后我就可以把它放到這個節 段當中來。 3.1 LT牌瘟貓(來自朗訊科技Lucent) 鏈接URL:http://www.linmodems.org/linux568.zip 作者:Lucent Technologies 版權協議:非GPL 支持范圍:使用朗訊(Lucent)芯片的ISA/PCI貓,該芯片屬于Mars系列 特性:內核模塊化; 串口仿真。支持PPP、Fax 和 Voice 最新版本(據我所知):5.68 相關文檔:README 系統要求:版本號不低于2.2.12的且支持模塊加載的RedHat內核 使用方法:先解壓縮軟件包(請執行'unzip linux568.zip'),然后執 行./ltinst即可。 問題: * * 'insmod: ltmodem: Unresolved symbol(s) *****': You have not a kernel matching with ltmodem. Get the 2.2.12 kernel from ftp.kernel.org, compile and install it * 'Warning: kernel version mismatch...": It is simply because ou have not the 2.2.12-20 kernel. It's only a warning, and it doesn't make the modem failing * 'ltmodem: init_module: device or resource busy': + 您安裝的貓不是lt貓或者兼容貓 + 如果您的貓是ISA接口的,原因可能是沒有使用isapnp配置過 + 如果您的貓是PCI接口的,可能是內核當中沒有配置PCI支持 3.2 LTMODEM程序(開源的驅動程序) 鏈接URL: http://www.close-u-net.com 作者: Richard Close and Pavel Machek 版權協議:GPL 支持范圍:使用朗訊(Lucent)芯片的ISA/PCI貓,該芯片屬于Mars系列 特性: 用戶級(user-space)的驅動程序; 支持語音電話(Voice call)﹔不支 持PPP(V90) 最新版本(據我所知):0.9.2 相關文檔:README 系統要求:gcc編譯器、automake 使用方法: * * PCI: make ; make install - 然后使用'ltmodem'程序來和貓通訊 * ISA: (請閱讀README.ISA說明文件)mv Makefile Makefile.PCI ; mv Makefile.ISA Makefile ﹔然后編輯config.h并變更貓的(I/O Address 、DMA、IRQ)當前數值; make ; make install - 然后使用'ltmodem'程序來 和貓通訊。 問題: * "Sorry, I can't found any modem...": + You have not LT modem + You have an ISA modem not configured by isapnp + You have an ISA modem configured ; but ltmodem was not compiled as ISA + You have a PCI modem with no PCI support included in the kernel + You have a PCI modem and a compliant kernel, but ltmodem was not compiled as PCI 4. 結束... 4.1 版權協議,版權所有 Copyright (C) 2000 Alexandre J. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 4.2 聯系信息 如果您對本文檔有什么建議,請慷慨一些給我丟個紙條吧 :alexandre12@mageos.com. 如果您對本文的翻譯有什么看法或建議,也請慷慨些給中譯版翻譯 者(linuxrat@gnuchina.org或者lich1@263.net)丟個紙條吧. 4.3 資源 * Linmodems工程主頁:http://www.linmodems.org * LTModem工程主頁:http://www.close-u-net.com * 朗訊科技(Lucent Technologies)工程主頁:http://www.lucent.com * Linux內核主頁:http://www.kernel.org * ISA工具集(isapnptools)主頁 :http://www.roestock.demon.co.uk/isapnptools * Linux文檔工程LDP的主頁(獲取HOWTO文檔的地方) :http://www.redhat.com/mirrors/LDP References 1. mailto:alexandre12@mageos.com 2. file://localhost/tmp/zh-sgmltools.7933/linuxrat@gnuchina.org 3. mailto:lich1@263.net