LINUX.ORG.RU

Пробуждение компьютера мышкой (не всё получилось)

 


0

1

Проблема такая. Настроить мне удалось, но если выключить комп, то потом не всегда эта настройка срабатывает при первой загрузке, но стоит перезагрузить комп, — всё работает отлично, дальше можно перезагружать сколько угодно.

Настроил так. Мышка висит на

/sys/bus/usb/devices/2-3/

это я знаю благодаря методу тыка :-)

По умолчанию в линуксах комп пробуждает клавиатура (кстати, очень интересно, где и как это настроено). Мне надо выключить клаву и включить мышку. В /opt кладу скрипт mouse_wakeup.bash

#!/bin/bash

echo disabled > /sys/bus/usb/devices/2-4/power/wakeup
echo enabled > /sys/bus/usb/devices/2-3/power/wakeup

Создаю сервис mouse_wakeup.service, чтобы не дёргать каждый раз руками

[Unit]
Description=Wakeup only by mouse

[Service]
Type=simple
ExecStart=/opt/mouse_wakeup.bash

[Install]
WantedBy=default.target

Вот сейчас выключил-включил комп и оно не работает (после перезагрузки будет работать 100%). Однако с виду всё OK

$ systemctl status mouse_wakeup.service 
● mouse_wakeup.service - Wakeup only by mouse
   Loaded: loaded (/etc/systemd/system/mouse_wakeup.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Fri 2022-12-09 16:39:57 MSK; 35min ago
  Process: 588 ExecStart=/opt/mouse_wakeup.bash (code=exited, status=0/SUCCESS)
 Main PID: 588 (code=exited, status=0/SUCCESS)

Dec 09 16:39:57 my systemd[1]: Started Wakeup only by mouse.
Dec 09 16:39:57 my systemd[1]: mouse_wakeup.service: Succeeded.
$ cat /sys/bus/usb/devices/2-3/power/wakeup
enabled

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

Смутно помню про джамперы на маме включающие или отключающие «дежурное питание» 5v на юсб портах при выключенном компе. И что без него комп не включался и не просыпался с мышек и клавиатур, что вполне логично. Осторожно предполагаю смотреть в сторону отключения всяких суспендов и экономий электроэнергии для модуля usb. Если мне память не изменяет там по умолчанию автосуспенд контроллера и хабов включен и спустя какое то время неактивности он происходит.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Что-то припоминаю такое, правда по поводу сетевой карты (как-то настраивал комп, чтобы он включался по сети). Почитаю ман по материнке на тему юсб.

Однако, мне же не надо включать комп мышкой, а клава и мышка (про мышку задумался) инициализируются рано при загрузке компа. Нормально работают, когда линукс загрузился, иногда и настройки мои срабатывают сразу.

Надо проверить, может как-то получается, что с холодного старта мышке назначается другой девайс в системе, а после перезагрузки всегда вышеназванный.

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

В линуксе точно так по соображениям энергосбережения, но я это всегда выключаю, да и не должно оно повлиять.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от vel

Во, точно, это же надо тоже демона писать, а то сейчас

>$ cat /sys/module/usbcore/parameters/autosuspend 
2

Но ведь оно при других обстоятельствах совершенно не мешает, а значит можно игнорировать?

Думаю раньше на эту тему гуглил и пробовал всякое, но не заметил разницы и забил. Сейчас ведь стоит 2 секунды, но это ни на чём не отражается, ни на клаве, ни на мыши, всё работает мгновенно после любых простоев.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от Morin

Подозрения на то, что порядок меняет их местами в системе отпадает.

Я проверил с помощью lsusb и usb-devices, где сейчас висят мышка и клава, они там где я ожидаю их увидеть, но что интересно, я и клаве добавил (на самом деле всем девайсам) enable, но нифига, проблема уходить совсем в другую область…

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Боюсь что проблема уйдёт в дебри реализации ACPI в BIOS, так как я нечто подобное видел. Если в БИВИСЕ есть пункт или галка разрешающая или запрещающая ACPI wakeup при активности на этом порту\устройстве, USB или слоте PCIe например, всё работает как часы, а вот если нет, и единственный способ это настроить лежит через изменение переменных в NVRAM из самой ОС, чем ты по сути сейчас и занимаешься, происходят подобные чудеса. То ли они не всегда прописываются и при каких то условиях сбрасываются, то ли их содержимое читается только при «холодном» рестарте, а при «горячем» игнорируется, то ли просто таблицы кривые, тут путь борьбы ведёт в декомпиляцию и изучение таблиц, их повторную компиляцию с устранением предупреждений и ошибок, и никаких гарантий что эта хрень в итоге заработает как надо...

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

то ли их содержимое читается только при «холодном» рестарте, а при «горячем» игнорируется

Только получается наоборот, если перезагрузиться, то всё идёт как надо.

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

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

Ну вот значит что переменная в NVRAM «горячую» перезагрузку переживает, а «холодную» — нет. Боюсь ты это не исправишь, это бивиса косяк. А в нём настройки с твоими не конфликтуют кстати? Может там у тебя просыпание с мышеклавы выключено?

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Я позже почитаю мануал мамки на эти темы.

Знаешь чего я вспомнил. Ведь сейчас и с клавы не хочет, при этом сама клава пробуждается и, когда я пробуждаю комп, один символ (который я нажал) появляется в терминале (был открыт терминал).

Клава со светомузыкой, у неё там какие-то мозги есть, но пришлось перейти на мышку из-за того, что она реагирует на какие-то электрические перепады, загорается сама и будит комп.

Если бы проблема была в мамке, то на предыдущей клаве я бы это заметил, я оочень давно на этом компе, походу эта клава чудит. Ушёл тестировать.

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

«Слишком умная» периферия это зло :) Поэтому я человек простой, клава механический полноразмерный Леопольд, максимально скучный, без дискотеки и мультимедии, и мышка «какая то за 300р», с двумя кнопками и роликом, который тоже кнопка. Тоже без суперлазеров, подсветок и десятка кнопочек по краям, я за такие браться боюсь, обязательно нажму что нибудь случайное от чего на экране начнёт происходить непонятное. А когда кнопочка начинает дребезжать я беру мышку за хвостик, выбрасываю и из картонной коробки новую достаю, я их десять штук купил.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Я также делаю, просто зачем-то оказался в магазине, тогда Электронный рай, а она стояла на стенде, я жмякнул пальцами и залип: компактная, ход клавишь мягкий, правда шумноватый, механика (или псевдомеханика, хз), цена низкая, купил. Это я только дома узнал, что она переливается всеми цветами радуги :-)

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

papin-aziat ★★★★★
() автор топика
Ответ на: комментарий от Jameson

СистемД тоже не при чём…

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

papin-aziat ★★★★★
() автор топика

Решил.

В биосе в секции USB есть настройка Legacy USB Support, она должна быть либо Auto, либо Enabled, когда клавиатура и/или мышка усбишные, иначе будут возникать проблемы с инициализацией.

Правда демон перестал успевать, отрабатывал раньше, чем появлялись в системе мышка и клава. Переделал демона из simple в oneshot, а в начало скрипта добавил sleep 5, всё.

papin-aziat ★★★★★
() автор топика