朋友送我一个内猫,折腾一番后,终于在linux下装上了驱动,现在把过程写一下,希望对其他想在linux下使用内猫的朋友有帮助
1.硬件信息:
网达IDVM-CD56,包装盒封面标有"硬猫-Intel主芯片"字样,盒子底面标有"采用世界著名的intel芯片组(5628)"字样,在www.wonda.com.cn可以查询到这个PCI内猫的信息;在win下的驱动信息里,可以查询到芯片为MD5628D-L-A,而在板子的电路板上,也很容易辨认出其中最大的一片集成电路上印有MD5628D-L-A的字样,这些信息很重要
2.系统:
rh8.0,内核是自定义配置的2.4.18-14custom
3.查找驱动:
先去其主页www.wonda.com.cn查找驱动,发现有linux驱动,下载下来,编译安装,安装成功,大喜!加载模块,失败,出现device is busy的错误信息,提示可能irq冲突或设备安装不正确,折腾多次不成功,估计是驱动不正确(后来发现这个驱动确实不对,它驱动的是MD5628D-L-C芯片组内猫,和MD5628D-L-A不同),于是放弃这个驱动,先到论坛查询一下,发现有不少关于5628芯片内猫的信息,大多是不成功的,其中有几篇提到了使用MD5628D-L-B芯片驱动成功,精神大振!接着,在http://www.idir.net/~gromitkc/intel/intel_563x_ham.html查询到符合这个内猫的信息(Identifiers PCI Vendor ID: 1813, Device ID: 4000,这些ID和cat /proc/pci得到的Communication controller: PCI device 1813:4000信息一致),果然是MD5628D-L-A和MD5628D-L-B芯片同一驱动,于是顺着上面的链接到http://developer.intel.com/design/modems/support/drivers_linux.htm,下载了for MD5628D-L-B和2.4.x内核的驱动Intel-v92ham-451.tgz
4.编译驱动:
将Intel-v92ham-451.tgz拷贝到/tmp下
tar zvxf Intel-v92ham-451.tgz
cd Intel-v92ham-451
详细阅读了里面的readme.txt,这是安装说明,里面有编译说明和步骤,中文翻译的安装说明见这里:
http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=854
按照编译步骤:
make clean&&make ham&&make install
[root@llc Intel-v92ham-451]# make install
bash haminst
running kernel 2.4.18-14custom
installing hamregistry, used for persistant storage
installing ham module
installing hamcore module
redhat hamboot rc2.d and rc3.d scripts
starting module and utilities
done
从上面信息可以看到,编译安装模块是成功了,执行一下lsmod命令,发现ham,hamcore模块确实已经成功加载了
再执行一下dmesg命令,在输出的信息中有下列字样:
hamcore module init
ham: loading HaM Release 4.51 INT (kern:2.4.18-14custom) - Feb 11 2003
PCI: Found IRQ 3 for device 02:02.0
IRQ routing conflict for 00:1f.4, have irq 9, want irq 3
ham: IRQ: 3, DSP-Base: 0xdf001000 (phys) 0xd0840000 (virt) (range: 4k), DSP-Port: 0xc400 (range: 256b)
说明模块加载成功后,设备已经被正确识别并驱动起来,其中设备占用的IRQ为3,I/O端口为0xc400,这些和在win下查询到的信息一致,现在内猫已经可正确工作了
5.拨号联网
拨号前,先确定你的内核已经编译了ppp支持(用猫联网使用的是PPP协议),一般来说,官方发行版的内核都已经编译了ppp支持模块,但如果你使用的是自己编译的内核,则检查内核配置,确认'Network device support'里已经选择了'PPP support','PPP support for async serial ports','PPP support for sync tty ports'这三项(选择编译成模块就可以)
在linux下用猫上网,一般需要拨号和建立ppp联接两个步骤,其中拨号工具有minicom,wvdial等,拨号,输入正确的帐号密码,拨号就算成功了;而建立ppp联接需要用pppd这个命令来完成,这两个过程对于新手来说比较烦琐,因此不做详细介绍,有兴趣的朋友可以在http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=444看到详细的手动拨号步骤
使用kppp这个工具,能自动执行上面所说的两个步骤,非常方便,下面详细说一下:
运行kppp,选"设置"按钮,增加一个帐号,给帐号起个名字(譬如'200卡'),在帐号信息里输入要拔的电话号码(可以使用','号作为拨号间隔符,也可以使用'#'作为电话拨号里的#键,譬如,要用200卡拨号96169上网,拨号为'200,2,帐号#,密码#,1,96169#');如果你的ISP服务器支持自动获取DNS功能,则DNS不设置,否则手动指定DNS;其他什么都不用设置,"确定".
然后在"设备"标签那里,选择拨号设备为/dev/modem(这个内猫成功驱动后,会建立/dev/ham这个设备文件,并将/dev/modem链接到/dev/ham上,因此设备选/dev/modem就可以了,一般来说,内猫驱动后都建立自己的设备文件并链接到/dev/modem上),"流控制"选择CRTSCTS,"连接速度"选择115200.
在"调制解调器"标签那里,按"查询调制解调器"按钮,可以查询得到内猫的信息(如果查询失败,请检查内猫驱动是否安装成功或"设备"选择正确与否),"调制解调器音量"设置则可以按个人喜好设置拨号,其他什么都不用设置.
全部确定后,选择连接的名字,输入帐号密码,按下"连接"按钮,就开始拨号了,成功联接后,执行ifconfig命令,可以看到ppp0联接已经建立,IP也已经自动分配,也就可以上网了.