LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1053|回复: 4

在Red Hat 9上安装D-link DWL-610无线网卡驱动程序(原创)

[复制链接]
发表于 2005-9-2 21:21:31 | 显示全部楼层 |阅读模式
2005-9-2 by likedust

操作系统为Red hat9, 内核版本是, 2.4.20-8
ndiswrapper是这样一个project,它并不直接编写无线网卡在linux下的驱动程序, 而是借助该无线网卡在windows 2000/xp下的驱动程序, 在linux内核中实现windows api和ndis接口, 这样只要提供该驱动程序在windows 2000/xp下的inf文件(从安装光盘取得),安装后在windows\system32\下,或者windows\system32\driver目录下,就可以使用该网卡在linux下的驱动程序了.

ndiswrapper在source forge上在主页是:http://sourceforge.net/projects/ndiswrapper/
所使用的ndiswrapper的版本:1.1(一定是,其他不行,后面会陈述原因)

ndiswrapper1.0是一个门槛,这个版本以前的版本,不可以通过make uninstall来卸载当前ndiswrapper,当要决定使用一个新的ndiswrapper版本的时候, 通常要把以前的版本卸载掉.
卸载前首先要用modprobe -r ndiswrapper来卸载这个内核模块, 用ndiswrapper -e drivername来卸载安装的一个具体驱动程序,删除/etc/ndiswrapper目录下的关于该驱动程序的文件夹, 就可以运行make uninstall命令来卸载程序了.
若使用了ndiswrapper1.0之前的版本,需要手动卸载, 方法如下:
1. 删除/usr/sbin下的'ndiswrapper'相关可执行文件.
2. 删除/sbin下的'loadndisdriver'可执行文件.
3. 删除/lib/modules/`uname -r`/misc下的ndiswrapper.o内核模块文件.

在编译安装一个新的ndiswrapper包之前, 要保证/lib/modules/`uname -r`/下有一个build目录,是指向/usr/src/linux-2.4.20-8目录的符号链接. 最好重新编译一下内核, 方法如下:
切换到/usr/src/linux-2.4.20-8目录, 运行make mrproper(保证源码树是干净的)
查看该目录下的Makefile, 去掉extendversion的custom字样.
运行make menuconfig, 可以不修改, 保存配置文件; 运行make dep.

解压缩下载的ndiswrapper.tar.gz文件, 切换到解压缩后的目录, 运行make clean(或者make distclean,在1.0版本之前没有make distclean), 直接运行make install, 看是否有错误, ndiswrapper版本0.10可以正常编译通过, 1.0版在这个版本的内核上编译通不过,1.1版可以, 1.2版可以,1.3rc1版不行.
make install 成功完成以后, 用ndiswrapper -i /path/to/inf/file/in/windows命令来指定一个inf文件, 对于d-link dwl 610来说, 该文件是:/mnt/winc/winnt/system32/drivers/netdlwl.inf(可从光盘获取),若驱动程序安装成功会提示:install drivername. 然后用ndiswrapper -l(字母),来列出加载的驱动程序, 其中应该有驱动程序加载的信息和硬件加载的信息, 0.10版本的虽然可以make install成功, 并且ndiswrapper -i inffile也成功安装, 但运行ndiswrapper -l的时候, 提示没有插入硬件, 我想是因为驱动程序的版本太老. 1.1版的可以make install成功, 运行ndiswrapper -i inffile的时候, 会提示出好多unknown lines****, 可以不必理会. 用ndis -l 查看硬件的状态信息是否正常. 然后运行modprobe ndiswrapper, 1.1版本的可以成功加载, 1.2版本的不能insmod成功,加载后若无线网卡的状态指示灯不亮, 用cardctl eject和cardctl insert命令重新插入一下卡应该工作正常. 下面就可以用iwconfig来配置网卡了. 我的工作环境配置为:
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid llxm
iwconfig wlan0 freq 1
ifconfig wlan0 192.168.6.10
找另外一台相同ad-hoc配置的机器测试成功, 最后用ndiswrapper -m写入相关的配置信息.
redhat-config-network中可能没有相关的设备,我没有继续研究或者添加设备.

重新起动机器后, 要加载驱动程序, 只需要运行modprobe ndiswrapper, cardctl eject, cardctl insert即可. 要让开机自动加载驱动程序还没有看. 关于上面的配置需要用iwconfig 和 ifconfig重新配置一遍.
发表于 2005-9-3 00:02:35 | 显示全部楼层
请楼主把

在编译安装一个新的ndiswrapper包之前, 要保证/lib/modules/`uname -r`/下有一个build目录,是指向/usr/src/linux-2.4.20-8目录的符号链接. 最好重新编译一下内核, 方法如下:
切换到/usr/src/linux-2.4.20-8目录, 运行make mrproper(保证源码树是干净的)
查看该目录下的Makefile, 去掉extendversion的custom字样.
运行make menuconfig, 可以不修改, 保存配置文件; 运行make dep.

这一段讲得更详细些,多谢。

我也有一张这样的网卡,一直没有驱动起来。
回复 支持 反对

使用道具 举报

发表于 2005-9-3 00:09:31 | 显示全部楼层
Post by likedust
2005-9-2 by likedust

操作系统为Red hat9, 内核版本是, 2.4.20-8
ndiswrapper是这样一个project,它并不直接编写无线网卡在linux下的驱动程序, 而是借助该无线网卡在windows 2000/xp下的驱动程序, 在linux内核中实现windows api和ndis接口, 这样只要提供该驱动程序在windows 2000/xp下的inf文件(从安装光盘取得),安装后在windows\system32\下,或者windows\system32\driver目录下,就可以使用该网卡在linux下的驱动程序了.

ndiswrapper在source forge上在主页是:http://sourceforge.net/projects/ndiswrapper/
所使用的ndiswrapper的版本:1.1(一定是,其他不行,后面会陈述原因)

ndiswrapper1.0是一个门槛,这个版本以前的版本,不可以通过make uninstall来卸载当前ndiswrapper,当要决定使用一个新的ndiswrapper版本的时候, 通常要把以前的版本卸载掉.
卸载前首先要用modprobe -r ndiswrapper来卸载这个内核模块, 用ndiswrapper -e drivername来卸载安装的一个具体驱动程序,删除/etc/ndiswrapper目录下的关于该驱动程序的文件夹, 就可以运行make uninstall命令来卸载程序了.
若使用了ndiswrapper1.0之前的版本,需要手动卸载, 方法如下:
1. 删除/usr/sbin下的'ndiswrapper'相关可执行文件.
2. 删除/sbin下的'loadndisdriver'可执行文件.
3. 删除/lib/modules/`uname -r`/misc下的ndiswrapper.o内核模块文件.

在编译安装一个新的ndiswrapper包之前, 要保证/lib/modules/`uname -r`/下有一个build目录,是指向/usr/src/linux-2.4.20-8目录的符号链接. 最好重新编译一下内核, 方法如下:
切换到/usr/src/linux-2.4.20-8目录, 运行make mrproper(保证源码树是干净的)
查看该目录下的Makefile, 去掉extendversion的custom字样.
运行make menuconfig, 可以不修改, 保存配置文件; 运行make dep.

解压缩下载的ndiswrapper.tar.gz文件, 切换到解压缩后的目录, 运行make clean(或者make distclean,在1.0版本之前没有make distclean), 直接运行make install, 看是否有错误, ndiswrapper版本0.10可以正常编译通过, 1.0版在这个版本的内核上编译通不过,1.1版可以, 1.2版可以,1.3rc1版不行.
make install 成功完成以后, 用ndiswrapper -i /path/to/inf/file/in/windows命令来指定一个inf文件, 对于d-link dwl 610来说, 该文件是:/mnt/winc/winnt/system32/drivers/netdlwl.inf(可从光盘获取),若驱动程序安装成功会提示:install drivername. 然后用ndiswrapper -l(字母),来列出加载的驱动程序, 其中应该有驱动程序加载的信息和硬件加载的信息, 0.10版本的虽然可以make install成功, 并且ndiswrapper -i inffile也成功安装, 但运行ndiswrapper -l的时候, 提示没有插入硬件, 我想是因为驱动程序的版本太老. 1.1版的可以make install成功, 运行ndiswrapper -i inffile的时候, 会提示出好多unknown lines****, 可以不必理会. 用ndis -l 查看硬件的状态信息是否正常. 然后运行modprobe ndiswrapper, 1.1版本的可以成功加载, 1.2版本的不能insmod成功,加载后若无线网卡的状态指示灯不亮, 用cardctl eject和cardctl insert命令重新插入一下卡应该工作正常. 下面就可以用iwconfig来配置网卡了. 我的工作环境配置为:
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid llxm
iwconfig wlan0 freq 1
ifconfig wlan0 192.168.6.10
找另外一台相同ad-hoc配置的机器测试成功, 最后用ndiswrapper -m写入相关的配置信息.
redhat-config-network中可能没有相关的设备,我没有继续研究或者添加设备.

重新起动机器后, 要加载驱动程序, 只需要运行modprobe ndiswrapper, cardctl eject, cardctl insert即可. 要让开机自动加载驱动程序还没有看. 关于上面的配置需要用iwconfig 和 ifconfig重新配置一遍.

需要重新编译内核吗?
回复 支持 反对

使用道具 举报

发表于 2005-9-3 17:00:09 | 显示全部楼层
有没有这样成功的
回复 支持 反对

使用道具 举报

发表于 2005-9-4 22:33:55 | 显示全部楼层
尚未成功,正在尝试。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表