
我有一台帶有 Linux3.2 核心的 Debian 7 機器和一個帶有 Atheros 晶片組 (D-Link DWA-16 Xtreme N Dual Band) 的 USB wifi 適配器,理論上來說應該管用。
事實上,我設法與 NetworkManager 建立了 wifi 通信,並且它或多或少工作正常約 30 分鐘,但隨後斷開連接並且無法重新建立連接。
我無法重新建立與 NetworkManager 的連接,它成功關聯並進行身份驗證,開始 4 向握手,但隨後由於以下原因取消身份驗證原因15(4次握手超時)。
然後我嘗試透過舊方法ifupdown
透過在以下位置建立一個條目來執行相同的操作/etc/network/interfaces
:
allow-hotplug wlan1
iface wlan1 inet static
wpa-ssid MyNet
wpa-psk <My key hash generated by `wpa_passphrase MyNet key`>
address 192.168.1.2
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers a.b.c.d
當 I 時sudo ifup wlan1
,它的行為合理,直到:
wpa_supplicant[8258]: wlan1: Associated with <router's MAC>
wpa_supplicant[3402]: wlan1: No network configuration found for the current AP
(從 /var/log/syslog
)。Wireshark
看到 ARP 包從我的 wifi 適配器發送到路由器,但路由器沒有回應。
您對這意味著什麼以及如何解決此問題有任何想法嗎?
解決方案:
感謝 peterph 的建議,我嘗試在前台和後台創建wpa_supplicant.conf
並wpa_supplicant
作為獨立程序運行,然後wpa-conf wpa_supplicant.conf
在/etc/network/interfaces
.
sudo wpa_supplicant -iwlan1 -c/etc/wpa_supplicant/wpa_supplicant.conf -d
sudo wpa_supplicant -iwlan1 -c/etc/wpa_supplicant/wpa_supplicant.conf -B
當我殺死一個正在運行的NetworkManager
.看來是有乾擾了。
第二個問題是四次握手失敗。當我在接入點上停用 MAC 位址過濾時,一切順利。我的 wifi 介面的 MAC 在可用 MAC 清單中,但由於某種原因它仍然無法與路由器上的 MAC 過濾連接。
更新2:問題又回來了。四次握手再次失敗。重新載入驅動程式沒有幫助。
答案1
這種問題最好分成獨立的部分。在這種情況下,ifupdown
完全規避並手動執行所有步驟 - 即:
wpa_supplicant
使用適當的設定檔運行連線建立後,執行 dhcp 用戶端,
要檢查如何ifupdown
運行wpa_supplicant
- 它必須在文件中傳遞某種配置,您可以攔截 - 檢查運行ps fax | grep wpa_supplicant
時的輸出ifupdown
- 選項的參數-c
是(可能是即時生成的)的名稱配置文件。
如果您出於某種原因決定轉用ifupdown
,您可能會對wicd
,它由一個由各種 UI(ncurses、GTK、Qt)控制的守護程式所組成。
順便說一句,一些 DHCP 用戶端能夠透過wpa_supplicant
自己生成來建立無線連接(我見過dhcpcd
這樣做)——當人們嘗試調試連接問題時,這可能會非常有趣(並且會造成乾擾)。
答案2
這是我在調試不穩定的無線設備時嘗試的順序。
- 重啟可以解決問題嗎?
嘗試卸載與無線設備相關的核心驅動程式。具有以下效果:
$ lsmod | grep iw iwlagn 209751 0 iwlcore 195714 1 iwlagn mac80211 229095 2 iwlagn,iwlcore cfg80211 134981 3 iwlagn,iwlcore,mac80211 $ sudo rmmod iwlagn $ sudo rmmod iwlcore $ modprobe iwlagn
調查與透過 報告的無線設備相關的任何訊息
dmesg
。例如:$ dmesg ... ... [207981.191849] mac80211: Unknown parameter `ieee80211_disable_40mhz_24ghz:Disable' [207988.895378] mac80211: `Disable' invalid for parameter `ieee80211_disable_40mhz_24ghz' [208280.841725] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:d [208280.841727] iwlagn: Copyright(c) 2003-2010 Intel Corporation [208280.841826] iwlagn 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [208280.841857] iwlagn 0000:03:00.0: setting latency timer to 64 [208280.842798] iwlagn 0000:03:00.0: Detected Intel(R) Centrino(R) Wireless-N 1000 BGN, REV=0x6C [208280.863413] iwlagn 0000:03:00.0: Tunable channels: 13 802.11bg, 0 802.11a channels [208280.863582] iwlagn 0000:03:00.0: irq 48 for MSI/MSI-X [208280.898025] iwlagn 0000:03:00.0: loaded firmware version 128.50.3.1 build 13488 [208280.898725] phy1: Selected rate control algorithm 'iwl-agn-rs' [208281.154937] ADDRCONF(NETDEV_UP): wlan0: link is not ready [208282.101156] wlan0: authenticate with 30:46:9a:47:4c:d4 (try 1) [208282.104128] wlan0: authenticated [208282.104164] wlan0: associate with 30:46:9a:47:4c:d4 (try 1) [208282.106911] wlan0: RX AssocResp from 30:46:9a:47:4c:d4 (capab=0x411 status=0 aid=3) [208282.106914] wlan0: associated [208282.111520] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [208292.608637] wlan0: no IPv6 routers present
答案3
也有很長一段時間的hand shake
+FAIL
問題。 ( gentoo
| Arch
) 論壇中的任何解決方案都不stackexchange
適合我。
我使用的是最基本的void
Linux,只使用必要的程式dhcpcd
。wpa_supplicant
最終奏效的方法花了我很長時間,但沒有其他機會,因為:
- LAN 電纜母頭連接器也被損壞,沒有任何更換零件可以從DigiKey|Farnell|Reichelt|Conrad|Mouser|Amazon 的任何電子經銷商處獲得,因為它是半高變體,沒有零件標籤|編號|提示。
- 將單股線焊接到主機板上,真是一個瘋狂的努力,不要在家裡這樣做哈哈,在工作時,需要細(非常細)的柔性電線,以免短路或斷裂!
- Lenovo 引導程式中不支援硬編碼的替換
WLAN chip
(以排除損壞的硬體) 。hardware whitelist
是的,真的很棒,兼容,但只是沒有列出,因此失敗了,哇,只是哇。Hard coded white list
!聯想!常識?
因此,經過大量的試驗和錯誤,調試時間出現了另一個修復(可能性),我想與社區分享。
每次重新啟動後都適用的解決方案: 1
sudo wpa_cli # fail
sudo xbps-install -Syv NetworkManager
sudo ln -s /etc/sv/NetworkManager /var/service/
2(開機後可能會自動運轉。)
sudo sv up NetworkManager
sudo wpa_cli # works half way (scan possible but association fails)
sudo sv down NetworkManager
sudo wpa_cli # fail
sudo sv restart dhcpd
sudo wpa_cli # works
確保 dhcpcd、wpa_supplicant、正確的網路介面已啟動 |並運行,並且 /etc/wpa_supplicant/wpa_supplication.conf 中使用網路介面(例如 wlan0 或 wlp2s),id est:
sudo vi /etc/sv/wpa_supplicant/run # Change all occurrences of the default interface name like e.g. "wlan0" to the correct interface as shown by ip link command, exempli gratia "wlp2s".
看來 NetworkManager 有一定的效果,那就是修復!我還沒有時間去調查它到底是什麼。