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

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

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

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

ecc83

Цитата: G_r_i_g_a от 12 мая 2019, 10:59:19в домашнем каталоге должен появиться файл test.txt

Что бы появиться в домашнем каталоге, нужно указать полный путь к домашнему каталогу.
Потому что скрипт запускается от root и следовательно "домашний каталог" у него свой.

ogost

Цитата: vlav от 11 мая 2019, 20:48:49Энергосберегающий режим свистка отключен.
Из разряда пальцем в небо:
окромя энергосберегающего режима свистка проблема может быть в энергосбережении usb-подсистемы.
установите powertop, запустите его в консоли и просмотрите его настройки. там псевдо-графика, ничего сложного.

vlav

Вставил отладочную строку в в исходный, и в "примитивный" скрипт, назначив разные целевые файлы и указав полные пути к ним.
После перезагрузки не появился ни один.

vlav

Фрагмент вывода Powertop после вывода из ждущего режима:

100,0%        Radio device: rtl8812au
100,0%        Radio device: ath9k


rtl8812au - нужный свисток, ath9k - смонтирован на системной плате (не интнересует).



ecc83

Цитата: vlav от 12 мая 2019, 12:08:26Вставил отладочную строку в в исходный, и в "примитивный" скрипт

В какое место файла?


Цитата: vlav от 12 мая 2019, 12:08:26После перезагрузки не появился ни один.

При чём здесь перезагрузка? У вас после перезагрузки wifi не работает?

vlav

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

Проверочную строку вставил так:

#!/bin/sh
case $1/$2 in
  pre/*)
    modprobe -r rtl8812au
    ;;
  post/*)
    modprobe -i rtl8812au
echo "Работает" > /home/vlav/test.txt
    ;;



ecc83

Выполняй по очереди:

sudo rm -f /lib/systemd/system-sleep/wifi.sh

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

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


[Unit]
Description=Restart wifi at resume
After=suspend.target hibernate.target hybrid-sleep.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/wifi-resume

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


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

Далее:

sudo nano /usr/local/bin/wifi-resume

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


#!/bin/sh

sleep 5 && modprobe -r -f rtl8812au && sleep 2 && modprobe -i rtl8812au


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

Далее:

sudo chmod +x /usr/local/bin/wifi-resume


sudo systemctl enable wifi-resume.service
sudo systemctl start wifi-resume.service


Проверяй.

ferum

ecc83 У меня всё время были и есть проблемы с юнитами и скриптами,  ???  возможно вы и правильно мыслите, но кажется можно сделать проще, вообще без скрипта ?
Может быть надо прописать команды прямо в юнит что то вроде.

ExecStartPre=/usr/sbin/rmmod ...
ExecStart=/usr/sbin/modprobe...

?????
Русские дебианщики против цифрового слабоумия !

ecc83

Цитата: ferum от 12 мая 2019, 14:22:35Может быть надо прописать команды прямо в юнит что то вроде.

Там не мешает делать паузы перед выгрузкой и загрузкой для надёжности. Как это сделать в самом юните я не знаю.
А какие проблемы со скриптами? Я перед этой рекомендацией проверил у себя. Всё работает.

ferum

Цитата: ecc83 от 12 мая 2019, 14:30:56А какие проблемы со скриптами?
Я не о проблемах, хорошо что их нет, просто  идея  systemd вроде как в упрощении и ускорении на этапе загрузки.
Самому приходится иногда решать аналогичные задачи и да решение не всегда очевидно. На одном дистрибутиве бывает работает а на другом ни в какую.
Русские дебианщики против цифрового слабоумия !

ecc83

Цитата: ferum от 12 мая 2019, 14:49:03На одном дистрибутиве бывает работает а на другом ни в какую.

Ну да. Вот этот system-sleep каталог почему то не читает скрипты, которые внутри.
Скорее всего служба не запущена, но искать её удалённо на чужом компе, задача для человека с крепкими нервами.
Потому что обычно авторы вопросов не всегда с первого раза копи-паст с экрана умеют сделать, а тут systemd службу искать :)

vlav

Проверено - всё замечательно работает.
Вопрос можно считать переводить в категорию "Решено".

ecc83 - огромное спасибо за науку!