wlan0 乙太網路不可用/GENERAL.STATE 20(不可用)

wlan0 乙太網路不可用/GENERAL.STATE 20(不可用)

從睡眠中醒來時,有時我的 Linux 筆記型電腦無法重新建立 Wi-Fi 網路連線。

有趣的是,重啟即可修復,儘管必須完全關閉/重新啟動有點痛苦。

換句話說,當我從睡眠中醒來時,有時我的 HP Debian Buster v10.4 筆記型電腦無法重新連接到我的家庭存取點。這種情況的發生率非常粗略,大約每 6 次過夜就有 1 次左右。


注意到 Wi-Fi 已關閉後,按一下rescan for wireless networks並不能修復它。另外,iw wlan0 scan(或明確地iw dev wlan0 scan)給出:「命令失敗:網路已關閉(-100)」。


仔細研究輸出,journalctl -n 1000 -u NetworkManager -u wpa_supplicant我可以看到,在“NetworkManager state is now ASLEEP”(即醒來時)行之後不久,第一個麻煩似乎出現在一行:“設備 (wlan0):請求方介面狀態:已完成 -> 已停用」。

我認為這應該是“...完成 -> 斷開連接”,它出現在工作喚醒中,即醒來後 WI-fi 再次正常工作時。

什麼不能解決這個問題:

  • 登出並重新登入;
  • 又睡又醒,
  • 冬眠然後從冬眠中醒來
  • 重新啟動網路管理員(使用$ sudo systemctl restart NetworkManager.service
  • 跑步$ sudo nmcli networking on
  • 使用以下命令刪除並重新建立wlan0網路設備:iw dev wlan0 del,然後iw phy phy0 interface add wlan0 type managed addr ca:xxx:4b。儘管這看起來可行,但 Wi-Fi 仍然不行。

我還檢查過$ rfkill list沒有報告任何阻塞。


這是 nmcli 處於以下狀態時的狀態報告:失敗的(網路關閉)狀態。注意將軍州以下。 (我混淆了真實地址。)

$ nmcli device show wlan0
GENERAL.DEVICE:                         wlan0
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         00:26:##:##:##:2A
GENERAL.MTU:                            1500
GENERAL.STATE:                          20 (unavailable)    <-- this is not right
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
...

另外,這是來自普通的工作中的無線網路連線:

$ nmcli device show wlan0
GENERAL.DEVICE:                         wlan0
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         00:26:##:##:##:2A
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)     <--- this is when it works
GENERAL.CONNECTION:                     Auto NETGEAR14
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]:                         192.168.1.128/32
IP4.GATEWAY:                            192.168.1.1
IP4.ROUTE[1]:                           dst = 192.168.1.128/32, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                           dst = 192.168.1.1/32, nh = 0.0.0.0, mt = 600
IP4.ROUTE[3]:                           dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.ROUTE[4]:                           dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.DNS[1]:                             192.168.1.1
IP6.ADDRESS[1]:                         fe80::...:7f2a/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 600
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

有任何想法嗎?有沒有辦法重新初始化物理層0無線電驅動程式?

答案1

調試此問題的最佳方法是在連接消失時檢查系統日誌訊息:

journalctl -n 1000 -u NetworkManager -u wpa_supplicant

NetworkManager 不會直接使用核心 Wi-Fi API,它依賴 wpa_supplicant。可能是wpa_supplicant.service被卡住了,或是一直崩潰,或是與其他Wi-Fi 工具(例如 iwd、connman 或由另一個應用程式意外啟動的不同 wpa_supplicant 實例)。

您可以透過執行以下命令來增加 NetworkManager 的詳細程度:

nmcli gen log level debug

和 wpa_supplicant 透過運行:

busctl set-property fi.w1.wpa_supplicant1 \
                   /fi/w1/wpa_supplicant1 \
                    fi.w1.wpa_supplicant1 DebugLevel s debug

另外,嘗試完全繞過 NM 和 w_s 並直接要求核心掃描網路 - 如果有效,則問題很可能出在用戶空間方面;如果沒有,則可能是在驅動程式/硬體方面:

iw wlan0 scan

答案2

嘗試更換 WI-FI 卡(硬體).

我花了大約 20 美元買了一台新的,而且很容易在你的筆記型電腦中找到它(在 youtube 上搜尋幫助)。我從舊卡上得到了零件號碼。您需要一些小型手錶型螺絲起子。

拿到新卡已經兩個月了,問題已經解決了。

我的看起來像這樣:

在此輸入影像描述

相關內容