Получается через GRUB можно воздействовать в слаке/дебаине/убунте, а в альте можно при загрузке модуля usbcore задать опционным параметром "-1"
Да, и в альте это срабатывает.
Как идентифицируются в системе usb-мышь и usb-клавиатура
# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 8087:07dc Intel Corp.
Bus 001 Device 005: ID 0c45:6513 Microdia
Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 011: ID 04d9:1503 Holtek Semiconductor, Inc. Keyboard
Bus 001 Device 010: ID 046d:c050 Logitech, Inc. RX 250 Optical Mouse
Bus 001 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
и как найти путь к каталогу
# grep -rHi 'mouse\|keyboard' /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product
/sys/bus/usb/devices/usb1/1-1/1-1.3/product:USB-PS/2 Optical Mouse
/sys/bus/usb/devices/usb1/1-2/product:USB Keyboard
с параметрами
# ls -1F $(grep -rHi 'mouse\|keyboard' /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f1 -d:|sed 's/product//')|grep '^\/\|power'
/sys/bus/usb/devices/usb1/1-1/1-1.3/:
power/
/sys/bus/usb/devices/usb1/1-2/:
power/
Параметры ядра для загрузчика:
Запрет autosuspend
usbcore.autosuspend=-1
Команды делают то же что и параметр ядра выше
# echo -1 > $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/autosuspend
# echo auto > $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/control
Параметр в power/control определяет в каком состоянии будет находиться порт, логически включенном или логически выключенном (допустимые значения: on/auto). Если power/autosuspend содержит запрет автозасыпания параметром -1, то порт всегда будет находиться в логически включенном состоянии 'active' (power is on). Это состояние отражает power/runtime_status. Например:
# echo -1 > $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/autosuspend
# echo auto > $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/control
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/runtime_status
active
При любом целочисленном значении в power/autosuspend отличном от -1, т.е. от 1 и выше, в секундах, и auto в power/control, порт по истечении таймаута перейдёт в логически выключенное состояние 'suspended' (logically off). Использовать 0 в power/autosuspend не рекомендуется, поскольку это будет означать, что таймаут равен нулю.
Например при условии
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/autosuspend
5
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/control
auto
по истечении 5-ти секунд порт перейдёт в логически выключенное состояние
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/runtime_status
suspended
Вернуть порт в активное состояние, на время установленного таймаута, можно щелчком usb-мыши - порт перейдёт в активное состояние
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/runtime_status
active
Несмотря на установленный таймаут
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/autosuspend
5
порт можно перевести в бесконечно активное состояние
# echo on > $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/control
которое сохранится по истечении таймаута
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/runtime_status
active
Ещё один параметр ядра:
Таймаут в 3 минуты для autosuspend как параметр ядра
(если usb-мышь в состоянии покоя, не засыпать в течение трёх минут: 60сек * 3мин = 180сек )
usbcore.autosuspend=180
Указанный таймаут сработает и истечёт если power/control в состоянии auto.
Разбудить usb-мышь можно нажатием любой кнопки.
USB Mouse
# ll $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/runtime_status
-r--r--r-- 1 root root 4096 июн 29 09:09 /sys/bus/usb/devices/usb1/1-1/1-1.3/power/runtime_status
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/runtime_status
active
# ls -l $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/autosuspend
-rw-r--r-- 1 root root 4096 июн 29 09:09 /sys/bus/usb/devices/usb1/1-1/1-1.3/power/autosuspend
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/autosuspend
-1
# ls -l $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/control
-rw-r--r-- 1 root root 4096 июн 29 09:09 /sys/bus/usb/devices/usb1/1-1/1-1.3/power/control
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/control
on
# ls -l $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/level
-rw-r--r-- 1 root root 4096 июн 29 09:09 /sys/bus/usb/devices/usb1/1-1/1-1.3/power/level
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/level
on
!!!!!!! Не пытайтесь выполнить эти две команды сразу, иначе usb-мышь, кнопкой, без переподключения к порту usb, вы уже не разбудите:
# echo 0 > $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/autosuspend
# echo auto > $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/control
После переподключения usb-мыши к порту usb, - autosuspend запрещён, питание всегда
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/autosuspend
-1
# cat $(grep -rHi mouse /sys/bus/usb/devices/usb*/ 2>/dev/null|grep product|cut -f-8 -d/)/power/control
on