这两天在我的老旧的笔记本HP Compaq 6515b上安装上来CentOS 6.3, 64位版本,准备利用它进一步捣鼓Linux。但是发现默认情况下,笔记本的内置无线网卡没有驱动,这让习惯来Wiki环境的我非常不爽,借助万能的互联网,搞定了无线网卡驱动。记录于此,如下的步骤应该适合在各类Linux主机上安装无线网卡驱动。
主要的思想通过ndiswrapper,利用Windows上的相关驱动在Linux平台上来使用相应的硬件,真是个不错的想法,这是不是可以解决大量硬件不支持Linux环境的问题呢?
先看看这里安装无线网卡驱动的步骤,如何解决我的烦恼。
1.安装ndiswrapper
通常这个包系统中不存在,在yum源里也没有,需要编译安装,也很简单。
下载:http://sourceforge.net/projects/ndiswrapper/
这里下载了文件ndiswrapper-1.59.tar.gz
编译安装,当然前提有相应的开发环境:
# tar -zxvf ndiswrapper-1.59.tar.gz
# cd ndiswrapper-1.59
# make
# make install
验证是否安装成功:
# ndiswrapper -v
utils version: ’1.9′, utils version needed by module: ’1.9′
module details:
filename: /lib/modules/2.6.32-279.el6.x86_64/misc/ndiswrapper.ko
version: 1.59
vermagic: 2.6.32-279.el6.x86_64 SMP mod_unload modversions
2.下载网线网卡的Windows下驱动
这里下载XP下的驱动sp41680.exe。
3.提取所需驱动文件
要从exe文件中提取中实际的驱动文件,需要安装cabextract,用来提取Windows程序中文件。默认还是没在yum源中找到,还好在http://rpmfind.net/linux/rpm2html/search.php?query=cabextract找到了rpm包cabextract-1.3-1.el6.rf.x86_64.rpm。
# rpm -ivh cabextract-1.3-1.el6.rf.x86_64.rpm
这样就可以提取相应文件了
# cabextract sp41680.exe
sp41680.exe: library not compiled to support large files.
sp41680.exe: library not compiled to support large files.
Extracting cabinet: sp41680.exe
extracting bcm43xx.cat
extracting bcm43xx64.cat
extracting bcmwl5.inf
extracting bcmwl5.sys
extracting bcmwl564.sys
extracting bcmwlcoi.dll
extracting bcmwlcoi64.dll
extracting Setup.exe
All done, no errors.
这样,所需外部材料就绪了,开始系统层面操作。
4.备份(或删除)与ndiswrapper冲突的ssb设备,并重建内核
#mv /lib/module/`uname -r`/kernel/drive/ssb /root/ssb_bk
#depmod -a
重建内核文件,具体你采用的是那个内核文件,可以查看/boot/grub/menu.lst里面,例如我这里有“initrd /initramfs-2.6.32-279.el6.x86_64.img”
#mv /boot/initramfs-`uname -r`.img /boot/initramfs-`uname -r`.img_bk
#mkinitrd /boot/initramfs-`uname -r`.img `uname -r` #这个会稍微花些时间,耐心等
5.安装驱动
在驱动文件所在目录下,运行
# ndiswrapper -i bcmwl5.inf
installing bcmwl5 …
# ndiswrapper -l
bcmwl5 : driver installed
# ndiswrapper -m
adding “alias wlan0 ndiswrapper” to /etc/modprobe.d/ndiswrapper.conf …
# cat /etc/modprobe.d/ndiswrapper.conf
alias wlan0 ndiswrapper
# modprobe ndiswrapper
这样驱动应该就安装完成了,如果蓝色灯没有自动亮起,尝试点亮它,应该可用罗
6.【可选】根据需要,配置网卡
# system-config-network
额外的,通过如下命令现在可以看到无线网卡驱动信息了
# lspci | grep Network
30:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 02)
而这在驱动安装之前并看不到。
小结
虽然按照如上的方式完成了我笔记本的无线网卡安装,但是对其实现原理暂时还没有深入理解,而对于ndiswrapper这个工具,其用途据了解也只能在无线网卡这块起一些作用,似乎并没有完美的方案,能够让人在Linux下找不到相应驱动时,直接使用Windows驱动再加一层中间翻译解决。如果有通用的方案,读者千万告诉我,谢谢!
对于ssb设备, mkinitrd, depmod, modprobe等,需要做进一步了解,本文略过。
参考:
http://www.linuxdiyf.com/bbs/viewthread.php?tid=73022
The post Linux下使用ndiswrapper安装无线网卡驱动 appeared first on SQLParty.