这个方案在升级到内核"2.6.24-20"之后不可用,不知道为何。搞定的朋友可以将方案贴出来分享,谢谢。
查阅了很多方法,包括对内核打补丁,都不是很理想。其实iwl3945对于其他intel 3945的芯片的支持还是挺好的,比如dell d630中的无线网卡(芯片是8086:4222),但是,我的x60中的无限网卡,芯片是8086:4227的。最终选择使用ndiswrapper+无线网卡驱动for windows。参见
这里
如何查看无限网卡芯片:
lspci
找到表示无限网卡的一行,看看最开头,就是你的网卡信息。
比如:
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
那么,03:00.0就是所求。
然后运行
lspci -n
找到和刚此型号对应的行,如:
03:00.0 0280: 8086:4227 (rev 02)
那么,无线网卡的芯片就是8086:4227的。
-----------------------------------------------------我是分割线----------------------------------------------------------
警告:本教程存在一定的风险,请谨慎使用,使用前请将相关文件备份。因为使用本教程带来的任何损失,本人概不负责。
本文中用到的所有文件,都可以在
这里一次性下载。
自从升级到ubuntu 8.04之后,自己的ibm x60上的无线网卡就变的很不稳定。
症状
具体症状如下:
1. 可以识别无线网络,可以链接到无线网络。
2. 刚连接上之后一段时间,速度还不错。
3. 过一段时间,网络就变的很慢很慢,有时候是没有速度,有时候会断线。
4. 期间偶尔会变好。
总体来说,就是无线网卡不稳定。
于是很无奈的,我的笔记本只能天天插着网线上网了。
解决方案
最近终于不能忍了,在网上搜索了一下解决方案。是因为ubuntu 8.04使用intel新开发的驱动
iwlwifi(驱动名称是iwl3945)作为intel无线网卡的驱动,而这个iwlwifi还很不稳定。所以,基本思想是使用原来的很稳定的
ipw3945驱动替换现在的iwl3945驱动。ipw3945现在已经停止开发了,最新版本是1.2.2,但是1.2.2在linux内核2.6.24或者更高版本中不能正常安装。幸好
[3]中提供了一个可用的补丁,才可以解决问题。
[3]中还强烈谴责了这种新版本驱动还没有开发稳定就停止对于旧驱动的开发的行为,认为这是对用户极大的不负责任。
使用命令
lshw -C network
查看自己的网卡驱动。
下面详细介绍一下替换驱动的步骤。主要参考
[1]。
具体步骤
1. 阻止原有驱动的加载
为了使用新驱动,我们需要屏蔽掉原有驱动。编辑/etc/modprobe.d/blacklist
sudo vim /etc/modprobe.d/blacklist
在blacklist文件中加入
# blacklist new iwl3945
blacklist iwl3945
2. 安装ipw3945 microcode
下载ipw3945 microcode,
下载地址
解压缩之后,将得到的ipw3945.ucode文件,拷贝到/lib/firmware/2.6.24-19-generic/下。
注意,我这里的内核版本是2.6.24-19,请根据自己的情况,将这个数字替换为当前内核版本号。可以使用“uname -r”命令查看当前内核版本。
sudo cp ipw3945.ucode /lib/firmware/2.6.24-19-generic/
3. 安装ipw3945 Regulatory daemon
下载ipw3945 Regulatory daemon,
下载地址
解压缩后,将x86(如果是64位机器,则是x86_64)下的ipw3945d拷贝到/sbin目录下。
cp x86/ipw3945d /sbin
为了让ipw3945d工作,需要进行一些操作,这些操作已经写在了两个文件中,分别是ipw3945d-start和ipw3945d-stop中。我们需要将这些文件拷贝到/sbin下,执行如下命令:
sudo cp ipw3945d-{start,stop} /sbin
sudo chmod a+x /sbin/ipw3945d-{start,stop}
更详细的说明,请参考
README.ipw3945d
4. 安装ieee80211
一般在内核中都有,特别是ubuntu安装的内核中。所以我就不需要安装。如果你内核中没有ieee80211,需要安装。请参考
http://ieee80211.sf.net/。一般ubuntu用户都可以跳过这个步骤。
5. 下载ipw3945 1.2.2
下载地址,要下载1.2.2版本。如果链接不能下载,可以在本文的附件中下载。得到ipw3945-1.2.2.tgz
6. 下载ipw3945补丁
下载地址。这个是一个文本文件,请直接点击右键另存为。得到ipw3945-1.2.2.patch文件。
7. 打补丁
解压缩ipw3945-1.2.2.tgz文件,将ipw3945-1.2.2.patch文件拷贝到ipw3945-1.2.2.tgz解压缩后的目录下,运行patch命令
patch -p1 < ipw3945-1.2.2.patch
提示输入文件名的时候,输入ipw3945.h
8. 安装ipw3945
ipw3945-1.2.2.tgz解压缩后的目录下,运行intall命令
make
sudo make install
sudo chmod 777 /sbin/ipw*
9. 将ipw3945加入内核启动加载模块
新建文件 /etc/modprobe.d/ipw3945
sudo vim /etc/modprobe.d/ipw3945
并且在文件中添加
install ipw3945 /sbin/modprobe -i ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r -i ipw3945
载入模块
sudo modprobe ipw3945
10. 重启电脑
重启之后,就可以正常使用无线网络了。
参考文档
[1] http://www.ubuntugeek.com/using-ipw3945-instead-iwl3945-in-hardy.html
[2] http://ipw3945.sourceforge.net/
[3] http://james.colannino.org/downloads.html