Atheros AR5007EG 無線網絡卡
|
本頁由 CentOS 5.4 的發行起已被降級,因此,它不宜被採用在現有系統上。 |
<<TableOfContents: execution failed [Argument "maxdepth" must be an integer value, not "[1]"] (see also the log)>>
|
這份教學文檔涉及未被 CentOS 小組測試的第三方程式。因此請自行承擔下面帶來的風險。 |
話雖如此,它帶來損害的機會非常微。
1. 引言
AR5007EG 這張卡日趨普遍,尤其是在低檔次的筆記型電腦。舉個例說,它被採用於某個常見的 Asus EEE PC 型號內。它沒有官方的驅動程式,但 MadWifi 小組及 FreeBSD 的 Sam Leffler 已經建立了一個可以兼容 32 及 64 位元的驅動程式。
本頁內的大倍份指命都須要有 root 權限與及 root 用戶的 $PATH,包括 /sbin 及 /usr/sbin。因此,請以 root 身份登入,或利用 su - 變為 root。這樣能確保你的指命路徑已包含上述兩個目錄。
2. 斷定你是否擁有 AR5007EG 這張卡
假若你的電腦仍然安裝了 Windows,請使用它的裝置管理員來檢查這張卡。如果你已經把 Windows 移除,請採用 lspci。
lspci | less
雖然 lspci 仍然未能正確地辨認 AR5007EG,它或許能提供一些線索。這張卡會被顯示為 AR5006EG。在一台 CentOS-5.2 64 位元系統上,它會被顯示為 AR242x 802.11 abg。現在以 -n 這個旗標執行 lspci 來取得辨認號碼。
lspci -n
168c:001c 這個辨認號碼應該會被列出來。
某些 Acer(宏碁)筆記型電腦在機器的底部有一個標貼顯示內置有 Atheros AR5BXB63。這個標貼其它發行商的機器上或許亦會存在。
3. 移除任何 ndiswraper 或舊有的 MadWifi 安裝
如果你曾經嘗試用 ndiswrapper 或 MadWifi,它們有可能會干擾新的安裝。故此,把任何 ndiswrapper 或舊有的 MadWifi 安裝完全移除會比較好。
3.1. ndiswrapper
首先移除任何已經被安裝的驅動程式。假若你遵從了坊間的教學文檔,你多數是安裝了 net5211 或 net5416 這兩個驅動程式。
ndiswrapper -l
(這個是 list 字的細楷 L,而不是數目的一字。)
譬如它顯示你安裝了 net5211 這個驅動程式,請移除它。
ndiswrapper -e net5211
要是所顯示的驅動程式是 net5416,請把上述指命的 5211 改為 5416。
現在移除 ndiswrapper。如果你是透過 rpm 安裝它的,請採用
yum -y remove ndiswrapper
假若你是從源代碼安裝它的,請進入你解壓 ndiswrapper 時所建立的源代碼目錄並輸入
make uninstall
你應該會看見它搜尋安裝內容,然後輸出信息告訢你要再執行 make uninstall 數次,直至你確定沒有任何剩餘的東西為止。
3.2. MadWifi
這個步驟亦相若。如果是經 yum 安裝的,利用 yum -y remove madwifi 應該會移除任何它所安裝的套件。若然是從源代碼安裝的,請進入解壓時所建立的目錄並輸入 make uninstall。
4. 下載已修正的快照
MadWifi 的 1192 傳票內含有一個適用於此卡的最新快照的連結。請下載它並把它存於某處。這些快照會經常更新,因此請確保你有最新的版本。
5. 確保你擁有編釋源代碼的功具
yum -y install gcc gcc-c++ make kernel-devel
這樣做亦會引進 kernel-headers 及其它必須的東西。
6. 編釋代碼
假設你已經位於下載壓縮檔的目錄,請把它解壓,進入新的目錄及執行 make 和 make install。
tar zxvf madwifi-hal-0.10.5.6-<version>tar.gz cd madwifi-hal-0.10.5.6-<version> make make install
7. 移除 ath5k 模塊及把它放入黑名單
這一步並非必須的,但可預防衝突。
modprobe -r ath5k
這樣便會移除該模塊。
利用你喜歡的編輯器 編輯 /etc/modprobe.d/blacklist。把以下內容加進該檔案
blacklist ath5k
8. 插入 ath_pci 這個模塊
在某些情況下,於未重新開機前做這個動作可能會引起問題。你的畫面也許會顯示一大堆錯誤。若是這樣的話,請勿慌張。你只須重新開機並嘗試再度(按照以下描述)插入該模塊。
要插入該模塊
modprobe ath_pci
如果一切順利的話,你應該會返回指命符。請檢查該模塊是否被正確地載入。
lsmod | grep ath
你應該會看見如下的內容
ath_rate_sample ath_pci wlan ath_hal
(你也許會看見其它擁有 ath 字串的東西,但你可以忽視它們。)
9. 啟動這張卡及掃描網絡
ifconfig ath0 up
這應會把你放回指命符。這一步並不是每次都必須的,但它無傷大雅。假設你沒有遇上問題,你現在可以測試這張卡能否運作
iwlist ath0 scan
你應該會看見你附近的無線網絡的清單。要是這樣,你現在便可以用你慣常的方法連線到你的無線網絡。
有時你必須重新開機才能把該模塊正確地載入。如果你得不到任何結果,請嘗試重新開機。
多數筆記型電腦擁有一個開關鍵或按鈕來啟用及停用無線網絡。要是你收到錯誤信息告訢你該介面不支援掃描,很有可能這個開關的位置不對。
要擁有正常運作的 LED,請使用以下指命。(多謝 Fedora 論壇上的一位發表者提供 LED 及滑行鍵的指命。)
sysctl -w dev.wifi0.ledpin=3 sysctl -w dev.wifi0.softled=1
(有些人覺得閃爍著的 LED 很擾人 —— 至少在某些機種上,這樣做不會長著燈來告訢你無線網絡已被啟用,而會閃爍它來顯示有活動。)
有些機器利用滑行鍵來控制無線網絡。要叫它們運作,請使用以下指命
/usr/bin/setkeycodes e055 159 /usr/bin/setkeycodes e056 158
要永久採用這些指命,請指它們加進 /etc/rc.local。
有些機器以按鈕來代替滑行鍵或開關。假如 LED 燈未被啟用,你很難去分辨無線網絡是否被啟用。當你認為應該有所作為時,卻沒有事情發生,按這個按鈕數次也許會有幫助 —— 在低檔次的機器上,你有時要做數次才會有效。
10. 排除疑難的清單
這不是一份很好的清單,因它只涵蓋了上述提及的事情,但你可能用得著它。
你有沒有完整地移除舊有的 ndiswrapper 及/或 MadWifi 安裝?
要是沒有,舊安裝殘留下來的東西有可能會引起衝突。
你有沒有以 root 登入及採用 root 的 $PATH?
假如你沒有以 root 的身份登入,又或者你執行 su 時沒有採用 - 這個旗標,你便不會有 root 用戶的路徑。這可以引起問題,因為有些程式須要 /sbin 及/或 /usr/sbin。
你有沒有把 ath5k 放進黑名單內?
要不然,它經常會誘發衝突。
假如你的筆記型電腦有一個開關或按鈕來啟用或停用無線網絡,你是否肯定它已被設在「啟用」的位置?
如上所述,這個問題在某些筆記型電腦上可能較難判斷,因為顆 LED 無法亮起來。有時,唯一的方法就是按那開關及不斷利用 iwlist ath0 scan 這個指命來檢查它能否運作。
如果它依然無法運作,請查看 dmesg 內是否有錯誤信息。
dmesg | grep HAL
你也許會看見 HAL error 3, Hardware didn't respond as expected,或 unable to attach hardware: Hardware revision not supported (HAL status 13)。
不過,這個情況隨著新的快照已經日趨罕見。針對這張卡的支援正在不斷改進。
如果你收到這類信息,重試一次也許已經能夠把問題解決。
11. 當內核被升級時
由於這是個第三方程式,針對著某個內核建立模塊,每次內核升級後它必須被手動更新。雖然在內核升級後,在開機時你也許會看見一個信息匯報 dkms 正在把模塊升級,但實質它似乎辦不到。(在正常重新開機時,你也許會看見 dkms 匯報該模塊已安裝了。你可以忽視這個信息。)
如果內核被升級了,重新開機後,該無線網絡卡便無法運作。要修正這個問題,請解除安裝、清理目錄、重新編譯及重新安裝。
cd madwifi<版本編號> make uninstall make clean make make install modprobe ath_pci
有時該 modprobe 指命會引致 module mismatch 的錯誤。要是這樣,請你重新開機來解決事情。
這篇文章來自 http://home.roadrunner.com/~computertaijutsu/rhwireless.html#5007
Translation of revision 13