Quantcast
Channel: SQLParty » Linux
Viewing all articles
Browse latest Browse all 5

Linux下使用ndiswrapper安装无线网卡驱动

$
0
0

这两天在我的老旧的笔记本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.


Viewing all articles
Browse latest Browse all 5

Trending Articles