Raspberry Pi wifi 故障排除筆記
手上有塊古董 Raspberry Pi Model B+,偶爾拿來連 ssh 玩玩 Linux,由於是初代沒 Wifi 的型號,同樣用上老舊的 Wifi dongle(USB 無線網卡)。
然而不知從何開始,總是無法從分享器後台查到 IP,也就是連線失敗。無論刷了多少遍 image,貼上多少次 wpa_supplicant.conf
到 SD 卡也一樣,無奈當時身邊只有一台筆電,沒外接鍵盤、螢幕根本無從判斷問題。
最近剛 setup 好遠端工作環境,多了大螢幕跟機械鍵盤效率加倍,也順便來解決埋藏已久的 issue。
過程
從本機能順利登入、下指令也正常反應,但當我直接跑 raspi-config
工具設定無線網路時,卻只顯示 WPA Supplicant 失敗的錯誤。
於是再三檢查 .conf 檔,試著用指令手動設定 wpa_supplicant 時,得到了關鍵的錯誤訊息 - 驅動不支援:
nl80211: Driver does not support authentication/association or connect commands
拿這段去估狗後,找到 wiki 與可能解法。
測試
首先 kill 掉正在執行的無線網路:
1 | sudo killall wpa_supplicant |
帶上 -D wext
參數,降級用傳統的 wext
驅動,重新設定無線網路介面(-i
請參考 ifconfig
自行判斷介面名稱):
1 | sudo wpa_supplicant -B -i wlan0 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf |
dongle 燈號開始閃爍,順利連上 Wifi!就此確認是預設驅動的影響。
設定預設驅動
為了讓 Raspberry Pi 每次重開機後,都會自動以 wext
驅動無線網卡,不用再接螢幕鍵盤設定,我們只需編輯 /etc/dhcpcd.conf
檔案,寫入該介面的預設環境即可:
1 | interface wlan0 |
從此開心用 ssh 玩 Raspberry Pi,希望這篇對用老舊 dongle 的人有幫助。