У мене є лампа usb, яку я спеціально придбав для того, щоб програмно вимкнути її в певний час, тому мені потрібно відключити живлення до його порту usb.
Я вважаю, що у мене є usb-hub у usb6. Лампа підключена до одного з портів цього концентратора:
#myhost$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...
...
Bus 008 Device 006: ID 050d:0234 Belkin Components F5U234 USB 2.0 4-Port Hub
Ось що я спробував:
Два рішення тут , перший пропонує:
echo disabled > /sys/bus/usb/devices/usb1/power/wakeup
echo suspend > /sys/bus/usb/devices/usb1/power/level # turn off
але я отримую, write error: Invalid argument
коли намагаюся написати /sys/bus/usb/devices/usb1/power/level
:
$sudo bash -c 'echo disabled > /sys/bus/usb/devices/usb6/power/wakeup'
$echo suspend|sudo tee /sys/bus/usb/devices/usb6/power/level suspend
tee: /sys/bus/usb/devices/usb6/power/level: Invalid argument
$sudo bash -c 'echo suspend> /sys/bus/usb/devices/usb6/power/level'bash: line 0: echo: write error: Invalid argument
Друге рішення:
sudo bash -c 'echo 0 > /sys/bus/usb/devices/usb6/power/autosuspend_delay_ms; echo auto > /sys/bus/usb/devices/usb6/power/control'
який відключає живлення пристрою usb-hub.
Я також намагався слідувати цьому :
Але вихід lsusb -t
просто висить:
$lsusb -t
4-1:0.0: No such file or directory
4-1:0.1: No such file or directory
^C
Що заважає мені використовувати цей метод, щоб отримати частину "2-1,1" до цього:
echo '2-1.1' > /sys/bus/usb/drivers/usb/unbind
Чи існує альтернативний спосіб отримання цієї інформації?
Як варіант, чи є спосіб відключити живлення для всієї підсистеми usb? Щось схоже modprobe -r usb_etc
?
Моє ядро:
$uname -r
3.2.0-4-amd64
lsusb -t
дзвінок, і не знайшов нічого корисного протягом часу, коли мені довелося налагодити його. Я, чесно кажучи, не встигаю зараз знайти помилки в lsub, і зараз навіть не можу відтворити його, тому це, мабуть, залежить від підключених пристроїв. Мені доведеться чекати, щоб повернутися додому, щоб спробувати відтворити його.