Проблема с восстановлением Wi-Fi после выхода из ждущего (спящего) режима

Автор vlav, 11 мая 2019, 12:50:51

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vlav

Добрый день, уважаемое сообщество!

Есть старый десктоп под управлением Debian, подключаемый к сети по Wi-Fi.
Используется USB-донгл, определяемый как rtl8812au.
Для управления сетью используется network-manager.

Проблема при выходе из ждущего и спящего режимов:
network-manager раз за разом безрезультатно пытается подключиться к сети.
Перезагрузка сервиса netwok-manager - не помогает.
Не прибегая к перезагрузке, сумел восстановить соединение двумя способами:
1). Перекоммутацией USB-донгла;
2). Выгрузкой и загрузкой модуля ядра, выполнив последовательно
rmmod rtl8812au
modprobe rtl8812au


Что-либо перетыкать вручную - явно не очень хорошая идея, вручную перезагружать модули - немногим лучше...
Хочется автоматизации - а не получается...
Попробовал составить скрипт из этих двух команд, дать ему права на исполнение и положить в каталог /etc/pm/sleep.d - не получается.
Создал каталог /etc/pm/power.d - с тем же успехом. После выхода из сна - скрипт не срабатывает, при запуске вручную - все отлично.

Прошу помощи клуба!

Любопытно, что все это относится только к ситуации, когда подключение к сети производится через USB-донгл. В случае подключения с помощью PCI-модуля - соединение восстанавливается нормально.

ecc83

Цитата: vlav от 11 мая 2019, 12:50:51Прошу помощи клуба!


Создаёшь файл:

sudo nano /lib/systemd/system-sleep/wifi.sh

Вставляешь в него такой код:


#!/bin/sh
case $1/$2 in
  pre/*)
    modprobe -r rtl8812au
    ;;
  post/*)
    modprobe -i rtl8812au
    ;;


Сохраняешь и закрываешь.

Делаешь скрипт исполняемым:

sudo chmod +x /lib/systemd/system-sleep/wifi.sh

Перезагружаешься и пробуешь.

vlav


symon2014

Отключить энергосберегающий свистка при загрузке, некоторые просто не могут правильно проснуться в линуксе.

ecc83


vlav

Кликаю по скрипту "Запустить в терминале" - что-то промелькнет за мгновение, категорически не успеваю прочитать)))
При этом продолжаются попытки переподключения.

Энергосберегающий режим свистка отключен.

G_r_i_g_a

Цитата: vlav от 11 мая 2019, 20:48:49Кликаю по скрипту "Запустить в терминале" - что-то промелькнет за мгновение, категорически не успеваю прочитать)))
Открой терминал и запусти скрипт уже в нем .

vlav

Спасибо. Действительно же можно!
Вот вывод терминала:
./wifi.sh: 9: ./wifi.sh: Syntax error: end of file unexpected (expecting ")")

G_r_i_g_a

Цитата: vlav от 11 мая 2019, 21:45:59Вот вывод терминала:
Скрипт sh, а ты его от bash запускаешь. А ему синтаксис не нравится или там ошибка.
А если так, что-нибудь меняется?
sh /lib/systemd/system-sleep/wifi.sh

vlav

/lib/systemd/system-sleep/wifi.sh: 9: /lib/systemd/system-sleep/wifi.sh: Syntax error: end of file unexpected (expecting ")")

G_r_i_g_a


vlav

Самое примитивное отлично работает - при ручном запуске из командной строки.
При выходе же из ждущего режима - как и было, безуспешные попытки подключения к сети.
Скорее всего, его нужно расположить не по адресу /lib/systemd/system-sleep , а где-либо еще.

ecc83

Цитата: vlav от 12 мая 2019, 10:10:05Скорее всего, его нужно расположить не по адресу /lib/systemd/system-sleep , а где-либо еще.


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

vlav

ecc83, я поступил по Вашей инструкции: создал скрип, сделал его исполняемым и разместил в указанном каталоге.
При выходе из ждущего режима внешних изменений не происходит, вручную скрипт запускать не следует.
Как можно выяснить, что с ним проиходит?

G_r_i_g_a

Цитата: vlav от 12 мая 2019, 10:53:41Как можно выяснить, что с ним проиходит?
Вот так:
#!bin/bash
echo "Работает" > test.txt

После перезагрузки в домашнем каталоге должен появиться файл test.txt со словом "Работает".
Если не появится, то не работает.