Ubuntu11.04 3945ABG无线网卡驱动安装

       由于对无线上网的需求,特对Ubuntu11.04的无线驱动进行安装,一波三折。

       首先是"系统设置"-->"硬件"-->"附加驱动",显示“这个系统上没有使用专有驱动”,也就是找不到3945ABG无线网卡的驱动。

       然后安装了Ndiswrapper,通过"系统设置"-->"系统"-->"Windows无线驱动程序",寻找Windows下的无线驱动的inf文件进行安装。通过驱动人生查看驱动文件或者无线适配器驱动的方法,找到的inf,在使用命令"lshw -C network"后,在description显示的不是wireless interface,所以安装还是不正确;

       最后,终于用以下方法成功了。。。

       参考网址:http://www.blogjava.net/daning/archive/2008/07/09/213615.html

1、查看无限网卡芯片: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的。

若是型号是一样的,可以往下继续行动!!否则,不推荐。

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*

若出现下图问题,只要将make改成"make IEEE80211_IGNORE_DUPLICATE=y"。

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. 重启电脑

重启之后,发现“设备未托管”,于是又进行下一步的探索。。

11、将/etc/NetworkManager/nm-system-settings.conf文件改成如下,若没有则新建成如下:

# This file is installed into /etc/NetworkManager, and is loaded by

# NetworkManager by default. To override, specify: '--config file'

# during NM startup. This can be done by appending to DAEMON_OPTS in

# the file:

#

# /etc/default/NetworkManager

#

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

12、/etc/NetworkManager/NetworkManager.conf文件改成如下,若没有则新建成如下:

# This file is installed into /etc/NetworkManager, and is loaded by 
# NetworkManager by default.  To override, specify: '--config file' 
# during NM startup.  This can be done by appending to DAEMON_OPTS in 
# the file:
#
# /etc/default/NetworkManager
#

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=true

13、重启一下电脑,就可以使用无线网了,不容易啊。

补充一点:

ifconfig wlan0 up:可以打开无线指示灯

rfkill list:查看无线的禁用情况

rfkill unblock all:解除对所有设备的禁用

posted @ 2012-10-03 21:51  ok_lanyan  阅读(4466)  评论(0编辑  收藏  举报