Иногда при выходе из спящего режима мой ноутбук с Linux не восстанавливает подключение к Интернету по Wi-Fi.
Интересно,перезагрузка исправляет это, хотя это немного утомительно — полностью выключать/перезагружать компьютер.
Другими словами, иногда при выходе из спящего режима мой ноутбук HP Debian Buster v10.4 не может повторно подключиться к домашней точке доступа. Это происходит примерно с частотой 1 из каждых 6 ночевок или около того.
Заметив, что 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 снова нормально работает после пробуждения.
Что не исправляет ситуацию:
- Выйдите из системы и войдите снова;
- Засыпая и просыпаясь снова,
- Впадает в спячку, а затем просыпается.
- Перезапуск Network Manager (с помощью
$ 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: --
...
Также, вот отчет о состоянии отнормальныйрабочее соединение Wi-Fi:
$ 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 не использует напрямую API Wi-Fi ядра, он полагается на 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 долларов за новую, и ее довольно легко найти внутри вашего ноутбука (поищите помощь на you-tube). Я взял номер детали прямо со старой карты. Вам понадобятся несколько маленьких отверток типа часовых.
Прошло два месяца с момента получения новой карты, и проблема исчезла.
Мой выглядел так: