其实此类的帖子在网上已经很多了,不过大部分都是英文的。中文的帖子大多介绍的是别的网卡,而且方法也是要用isl3890来重新编译内核实现(在我拜读文章后,是这样认为的)。故此,我将由ndiswrapper安装的方法写出来。
下面开始我们的旅程(系统为Kubuntu 6.06 LTS (Dapper Drake)):
i.头文件和内核
首先请确定安装了头文件,因为编译的时候要用到它(如不是已编译好的发行版,需要内核)。确信
/lib/modules/VERSION/build 软链接到 /usr/src/linux-<kernel-version>,如果没有,
代码: 全选
ln -s /usr/src/linux-<kernel-version> /lib/modules/VERSION/build(此处的<kernel-version>是指内核的版本,详见下文)
我的内核为2.6.15-26-686('uname -r'),所以下载对应的头文件linux-headers-2.6.15-26-686,下载的同时,linux-headers-2.6.15-26这个头文件也会被下载,命令为:sudo apt-get install linux-headers-2.6.15-26-686。如何知道源里是否有这个头文件?命令:sudo apt-cache search linux-headers-2.6.15-26-686。如查找不到这个头文件,请换一个源。一般,下载了头文件后,上面提到的那个软链接应该是自动生成的,不过为了保险起见,还是确认一下吧。当然,我针对的是ubuntu的用户而言,其他版本的linux用户,方式也雷同。
ii.安装ndiswrapper
下载ndiswrapper:http://sourceforge.net/project/showfile ... 8。这里有很多稳定版,至于下载哪个就看是否和系统匹配了。
下载后:
代码: 全选
tar xzvf ndiswrapper-<vision>.tar.gz
cd ndiswrapper-<vision>
make distclean
make
sudo make install(这里要有root权限)
如果不需要usb支持,请"make DISABLE_USB=1"and"make DISABLE_USB=1 install"。
iii.安装windows驱动
注意:如果CD上的驱动没有经过验证的话,最好不要使用,因为可能会导致你的kernel crashs。
下面的驱动可以替代CD上的: http://ndiswrapper.sourceforge.net/medi ... x.php/List ,因为我的无线网卡是netgear wg511,所以我点击左侧列表的"N"选项,又因为我的wg511是made in china,所以我找到"Card: Netgear WG511 54Mbps Cardbus adapter, "Made in China" version"这个段落。 http://www.smc.com/files/AV%5CDR_2802wV.2_WHQL.zip ,这个就是可以替代我CD上的驱动,从我现在无线网络运行的情况来看,还未发生掉线等异常。
下载后在AV-DR_2802wV.2_WHQL.zip文件上鼠标右键选择"解压缩->解压所到AV-DR_2802wV.2_WHQL/",这样在当前目录就生成了一个AV-DR_2802wV.2_WHQL的目录,安装驱动命令:
ndiswrapper -i AV-DR_2802wV.2_WHQL/Driver/WinXP/2802W.inf。
这条命令将copy必须的文件到/etc/ndiswrapper,并为网卡建立配置文件。如果安装成功,会看到似乎如下面的信息:"ndiswrapper: driver ''driver1'' added"。
"ndiswrapper -l"命令可以查看你安装的驱动的状态,如果看到"Installed ndis drivers: 2802W driver present, hardware present",证明你的驱动已经装上了。"present"的意思是有一块卡可以被此驱动使用了。
iv.加载模块
在加载模块之前不要忘记 "sudo depmod -a",如果没有错误,请继续。
加载模块的命令是 "sudo modprobe ndiswrapper",如没出错,则说明驱动已经被加载了。
使用 dmesg命令,如果加载成功,显示"ndiswrapper version <version> loaded"。请确认version <version>和你下载安装的ndiswrapper包匹配一致,如不一样,那就是你可能以前安装过ndiswrapper的旧版本,那么请卸载旧版本,然后再安装新版本。卸载旧版本,请看 http://ndiswrapper.sourceforge.net/medi ... /Uninstall。
此时,网卡的灯应该亮了,至少是闪了,如果闪了,证明驱动加载上,网卡可以工作了。如果网卡已经可以工作,那么dmesg命令可以看到"wlan0: ndiswrapper ethernet device xx:xx:xx:xx:xx:xx"的信息。
v.配置接口
用iwconfig工具来配置无线网络,键入iwconfig,你可以看到当前使用网络的情况。
依次键入如下命令:
代码: 全选
iwlist wlan0 scan (你将看到wlan0的一些信息)
iwconfig wlan0 essid ESSID (设置网络名称,ESSID可为任意名称)
iwconfig wlan0 mode Managed
iwconfig wlan0 key restricted xxxxx (如果用加密wep的话)
ifconfig wlan0 up (激活wlan0无线网络)
(注意:如果有防火墙,请让它知道wlan0是一个外部接口,并允许它传输,否则,ping不通你的AP。)
ndiswrapper -m
特别注意:ubuntu系统默认是加载prism54模块的,所以要禁止它在启动的时候加载,只让ndiswrapper加载。具体作法是在/etc/modprobe.d/blacklist最后加上一行blacklist prism54。
注:上面是根据ndiswrapper的文章写的,我的具体操作如下:
环境:kubuntu
1.k菜单->internet->Wireless Assistant, Wireless Assistant会自动搜索无线网络,如果成功,会出现连接的提示。在出现的那行连接上双击,wireless Assistant会自动帮你连接到无线网络,我的是家庭网络,因此连接到了无线路由上。题外话:我的路由是netgear wgr614,这是和wg511配套的路由,因此组成无线网络还是比较让我满意的。
2.系统设置->网络设置,用管理员权限将wlan0设置成手动或者自动。(可选择)
注: http://ndiswrapper.sourceforge.net/medi ... stallation,具体可以参考这里。
累死,总算可以休息一下了。以上是用ndiswrapper加载驱动的方法,至于编译内核来增加对netgear wg511的方法也是可以的,不过基于ubuntu重新编译,说道多多。所以就先不搞了,准备在lfs的时候,编译内核时,将它支持到内核里去。