由於對無線上網的需求,特對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:解除對所有設備的禁用
