Потеря WiFi-соединения после заморозки Ubuntu 20.04

Вопрос или проблема

Когда компьютер засыпает или приостановлен, WiFi-соединение пропадает, сети не обнаруживаются.

Я использую Ubuntu 20.04 на новом Huawei Matebook D 15, проблема наблюдается с момента установки Ubuntu.

Когда я выполняю sudo wlp1s0 up, как рекомендуют другие вопросы, появляется сообщение вроде Операция уже выполняется, и никакие комбинации с wlp1s0 down и т. д. не меняют ситуацию.

Самый ясный вывод, описывающий проблему: выполнение lspci -v после приостановки показывает следующее:

01:00.0 Сетевой контроллер: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Беспроводной сетевой адаптер (rev ff) (prog-if ff)
    !!! Неизвестный тип заголовка 7f
    Драйвер ядра в использовании: rtw_8822ce
    Модули ядра: rtw88_8822ce

и

00:01.2 PCI мост: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge (rev ff) (prog-if ff)
    !!! Неизвестный тип заголовка 7f
    Драйвер ядра в использовании: pcieport

Кто-нибудь знает, что может происходить?

Мне очень нравится этот вопрос. Я также столкнулся с аналогичной проблемой в Kali, а не в Ubuntu. Было бы лучше, если бы вы разместили этот вопрос на askubuntu. Askubuntu предназначен только для Ubuntu. Если это проблема конфигурации Ubuntu, то люди из askubuntu могут ответить на вопрос более эффективно. Я добавляю несколько ссылок на вопросы, связанные с вашим.

  1. wlan0 не работает большую часть времени

  2. WiFi не работает после использования wifite [дубликат] (Я настоятельно рекомендую прочитать комментарий к этому вопросу).

  3. Не удается подключиться к wlan0 (Kali)

  4. не удается подключиться к беспроводному соединению

Я добавляю некоторую информацию, которая, скорее всего, ответит на ваш вопрос.


Создайте файл с именем wifi-workaround.sh в /lib/systemd/system-sleep/. Чтобы сделать файл исполняемым, выполните chmod a+rx /lib/systemd/system-sleep/wifi-workaround.sh. Добавьте следующие скрипты в wifi-workaround.sh

#!/bin/sh
# При приостановке/возобновлении systemd вызовет исполняемые файлы в /lib/systemd/system-sleep 
# с следующими параметрами:
# $1 = либо "pre", либо "post"
# $2 = "suspend", "hibernate", "hybrid-sleep" или "suspend-then-hibernate"
INTERFACE=wlan0
DRIVER_MODULE=<имя модуля драйвера>    

case "$1" in
    pre)
        nmcli device disconnect $INTERFACE
        modprobe -r $DRIVER_MODULE
        ;;
    post)
        modprobe $DRIVER_MODULE
        nmcli device connect $INTERFACE
        ;;
esac

# Не останавливайте приостановку/возобновление, даже если мы как-то потерпели неудачу.
exit 0

Ответ.


Когда я сделал это, я заметил, что мой Wi-Fi работал хорошо, и когда я приостановил и включил свой ноутбук, wlan0 работал нормально, но Мобильная широкополосная связь не работала. Мне не нужна была Мобильная широкополосная связь, поэтому я не вносил никаких изменений. Однако, после внесения изменений, примерно через 6-7 дней, когда я приостановил много раз (я приостановил примерно 10 раз за 3-4 минуты), wlan0 окончательно пропал. Поэтому в последнее время я больше не приостанавливаю.. Я просто выключаю. И я думаю, что это может не быть вашим ответом.. Но я настоятельно рекомендую делать что-либо только после того, как вы все поймете… В некоторых ответах на вышеуказанный вопрос есть очень рискованные моменты… Вы можете попробовать то, что я сказал….

Спасибо

Ответ или решение

Чтобы решить проблему потери Wi-Fi соединения после приостановки в Ubuntu 20.04, выполните следующие шаги. Ваша проблема может быть связана с неправильной перезагрузкой или инициализацией драйвера беспроводной сети при выходе из режима сна.

Шаг 1: Создание скрипта для устранения проблемы

  1. Откройте терминал.

  2. Создайте файл wifi-workaround.sh в каталоге /lib/systemd/system-sleep/:

    sudo nano /lib/systemd/system-sleep/wifi-workaround.sh
  3. Вставьте в файл следующий код, который отключает и вновь подключает ваше Wi-Fi соединение при приостановке/возобновлении работы системы. Замените INTERFACE=wlan0 на ваш интерфейс (в вашем случае это может быть wlp1s0), а <driver module name> — на имя вашего драйвера (rtw_8822ce):

    #!/bin/sh
    INTERFACE=wlp1s0
    DRIVER_MODULE=rtw_8822ce
    
    case "$1" in
       pre)
           nmcli device disconnect $INTERFACE
           modprobe -r $DRIVER_MODULE
           ;;
       post)
           modprobe $DRIVER_MODULE
           nmcli device connect $INTERFACE
           ;;
    esac
    
    exit 0
  4. Сохраните изменения и выйдите из редактора (нажмите CTRL + X, затем Y, и Enter).

  5. Сделайте скрипт исполняемым:

    sudo chmod a+rx /lib/systemd/system-sleep/wifi-workaround.sh

Шаг 2: Тестирование скрипта

После того как вы создали и настроили скрипт, перезагрузите компьютер или выполните команду sudo systemctl reboot, после чего протестируйте систему:

  1. Приостановите компьютер (переход в режим сна).
  2. Включите его и проверьте, восстанавливается ли ваше Wi-Fi соединение.

Дополнительные рекомендации

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

    sudo apt update && sudo apt upgrade
  2. Если у вас всё еще возникают проблемы, рассмотрите возможность установки последней версии драйвера для вашего адаптера RTL8822CE из репозиториев или с помощью PPA. Вы можете попробовать установить rtl8822ce-dkms, если он доступен в вашем менеджере пакетов.

    sudo add-apt-repository ppa:tpl 平成/rtl8822ce
    sudo apt update
    sudo apt install rtl8822ce-dkms
  3. Если ни один из описанных методов не помог, рассмотрите возможность переключения на более стабильный дистрибутив Linux или консультацию с сообществом пользователей Ubuntu, чтобы получить дополнительные советы.

Заключение

Следуя приведённым шагам, вы должны решить проблему потери соединения Wi-Fi после выхода из режима сна. Если проблема сохраняется, рекомендую обратиться к документации к вашим драйверам или на форумы сообщества Ubuntu, где пользователи могут предложить другие методы решения этой проблемы.

Оцените материал
Добавить комментарий

Капча загружается...