Wi-Fi не работает после приостановки после обновления 16.04

Эта конкретная версия "не работает после приостановки" появилась после обновления до 16.04. Похоже, что обновление включает в себя апплет Wicd (добавленный в панель задач Metacity Classic Gnome вместе с обычным значком сети), но после приостановки он не работает. sudo service network-manager restart дублирует эту проблему. Требуется полная перезагрузка, чтобы снова запустить Wi-Fi. Есть идеи почему?

10 ответов

16.04 работает на systemd. Попробуйте следующее:

sudo systemctl restart network-manager.service

Если это работает, вы можете создать скрипт для его автоматизации.

Откройте терминал и введите следующее:

sudo nano /etc/systemd/system/wifi-resume.service Теперь вставьте скрипт туда, щелкнув правой кнопкой мыши. Выйдите с помощью CTRL + X и нажмите Y, чтобы сохранить. Теперь для его активации: sudo systemctl enable wifi-resume.service

Автор сценария:

#/etc/systemd/system/wifi-resume.service
#sudo systemctl enable wifi-resume.service
[Unit]
Description=Restart networkmanager at resume
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service

[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target

Надеюсь это поможет. Это работает на моем ноутбуке.

@147pm Ты когда-нибудь работал?

Я обнаружил, что у меня была довольно похожая проблема, хотя я использую Kubuntu 16.10 (на базе KDE, а не Gnome) и с ноутбуком HP ProBook. И, в отличие от вас, не мой Wi-Fi, который умер после приостановки / пробуждения, а мой порт Ethernet. Тем не менее, мне интересно, связаны ли они.

Я также вижу, что у вас нет проблемы под KDE. Но мне было бы интересно узнать, поможет ли приведенное ниже решение в Gnome, поскольку оно не основано на оконном менеджере, среде рабочего стола или апплетах.

Для начала просто подтвердите, что перезапускаете службу сетевого менеджера.

$ sudo systemctl restart network-manager.service

не работал для меня.

Тем не менее, я нашел ответ, который сработал, потому что вопрос и информация Бужидао не могут подключиться к Интернету после приостановки и комментария GAD3R.

Используя их информацию, я обнаружил, что первое исследование, какое оборудование Ethernet и драйвер / модуль, который я использую, а затем удаление и переустановка этого модуля, сработало для меня (хотя это не относится к бужидао):

Wi-Fi:

$ lspci -knn | grep Net -A2

Ethernet:

$ lspci -knn | grep Ether -A2

Второй из них (ethernet) был тем, что я использовал, и я нашел:

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0c)
        Subsystem: Hewlett-Packard Company RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [103c:1944]
        Kernel driver in use: r8169
        Kernel modules: r8169

поэтому я переустановил драйвер 'r8169':

$ sudo rmmod r8169 && sudo modprobe r8169

и вуаля! Это сработало. Мой порт / соединение Ethernet восстановился (после приостановки / пробуждения) без перезагрузки.

(У меня также не было устройства Wi-Fi от Realtek, но был Qualcomm Atheros (mod: ath9k), который, возможно, объясняет, почему Wi-Fi продолжал работать для меня после выхода из режима ожидания.)

Как вы можете видеть из моего комментария к этому другому посту, я задавался вопросом, является ли проблема общим элементом между мной и Бужидао: устройствами Realtek Semiconductor. Даже если они используют разные модули, они могут использовать общий код? Или даже как-то иначе трактоваться новым кодом ядра?

У вас есть устройство Wi-Fi на базе Realtek? (используя lspci выше)? Удастся ли вам переустановить модуль (rmmod/modprobe выше)?

Во всяком случае, просто выстрел в темноте. Если вы нашли ответ на свой вопрос, сообщите нам! Спасибо.

Для автоматического перезапуска NetworkManager после возобновления в среде без sudo доступ, создать скрипт в /etc/pm/sleep.d (любое имя), установите исполняемый бит через chmod +xи вставьте следующее содержание:

case "${1}" in
    resume|thaw)
        # systemctl restart network-manager.service
        service NetworkManager restart
;;
esac

Для меня service линия работала, но systemctl может работать лучше для вас.

Источник: /questions/377605/kak-vyipolnit-komandu-posle-vozobnovleniya-iz-priostanovit/377623#377623.

Для меня это кажется случайным, но иногда Wi-Fi просто отключается, если я подключен, или не показывает сети, если я нет. Иногда перевод ноутбука в спящий режим вызывает его, но не всегда.

Некоторая комбинация из них обычно запускает это снова без перезагрузки:

  • sudo iwlist $(ifconfig | grep -Po '^w\w+') scan
  • sudo service network-manager stop; sleep 5; sudo service network-manager start
    • Просто звоню restart здесь, кажется, никогда не работает для меня. Похоже, он пытается запустить его до того, как он закончит закрывать его, поэтому мне больше повезло, пауза между stop а также start,
  • Отключить Wi-Fi в пользовательском интерфейсе; подождите несколько секунд; включи его

Кажется, что ни один из них не работает последовательно, но я перечислил их в порядке вероятности успеха в первую очередь.

Метод работы на Ubuntu 16.04:

Создать сервис: sudo nano /lib/systemd/system/wifi-resume.service

Служба вызывает программу из:
/etc/init.d/network-manager

Вставьте код:

#/lib/systemd/system/wifi-resume.service
#sudo systemctl enable wifi-resume.service
[Unit]
Description=Restart network-manager at resume
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target 

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager

[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target

Затем включите услугу:

sudo systemctl enable /lib/systemd/system/wifi-resume.service

Это создаст символические ссылки в указанные каталоги [Install] в / etc / systemd / system и активирует службу

После этого вы можете проверить статус с: systemctl status wifi-resume.service

Запустите эти команды одну за другой в Терминале

  1. sudo nano /lib/systemd/system-sleep/wififix
  2. Теперь вставьте приведенный ниже код и сохраните его.
!/bin/sh
set -e
if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
     case "$1" in
             pre) true ;;
             post) sleep 1 && service network-manager restart ;;
       esac
fi
  1. sudo chmod +x /lib/systemd/system-sleep/wififix

Протестировано на Ubuntu 20.04 Focal Fossa, также работает над другими версиями Mint и Elementary.

Получил решение отсюда

У меня была такая же проблема на моем ноутбуке Dell Inspiron 15R с Ubuntu 16.04. У меня сработал сценарий, сообщенный по второму ответу.

После установки скрипта я попробовал приостановку с помощью команды в верхнем правом меню и даже закрыл губу, решив проблему.

Я должен сказать, что проблема менялась в своем поведении (то есть иногда это работало до установки скрипта).

У меня была такая же проблема с Bluetooth: после приостановки моя Bluetooth-мышь не работала. Итак, я получил решение сверху:

sudo nano /etc/systemd/system/bluetooth-resume.service

включен новый сервис

sudo systemctl enable bluetooth-resume.service

и отредактировал сервис

#/etc/systemd/system/bluetooth-resume.service
#sudo systemctl enable bluetooth-resume.service
[Unit]
Description=Restart bluethooth at resume
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart bluetooth.service

[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target

Я тоже пытался редактировать...

sudo nano /etc/bluetooth/main.conf

и изменился

AutoEnable=true

НО это не сработало для "проблемы с возобновлением" и никак не повлияло на новые устройства Bluetooth!

Для меня решение было запустить

nmcli nm sleep false

в терминале

У меня была та же самая проблема, соединяющаяся с моим домашним Wi-Fi после приостановки. Пробовал различные другие предложенные ответы, которые иногда работают, но не всегда.

В конце концов следующее исправление позволило последовательно подключаться к Wi-Fi:

1) Отредактируйте этот файл:

sudo vim /etc/NetworkManager/NetworkManager.conf

2) Добавив это к нему:

[device]
wifi.scan-rand-mac-address=no

У меня была такая же проблема на Ubuntu 20.04. Я пробовал приведенные выше решения, которые не работали с моим адаптером Intel 6235.

Вместо этого случайные веб-поиски привели меня к решению:

sudo modprobe -r iwlwifi
sudo modprobe iwlwifi
sudo systemctl restart NetworkManager

Это решает проблему до следующей приостановки.

Теперь наверное просто

sudo apt update
sudo apt upgrade

должно сработать.

В моем случае среди обновленных пакетов было bcmwl-kernel-source (6.30.223.271+bdcom-0ubuntu1~1.3) и после этого обновления Wi-Fi снова работает.

Другие вопросы по тегам