#linux #bash #raspberry-pi4
#linux #баш #raspberry-pi4
Вопрос:
Пытаюсь использовать uhubctl для управления питанием USB-портов. Я хочу написать скрипт bash для автоматизации задачи.
Прямо сейчас я могу использовать команды sudo, чтобы заставить его выключаться и включаться.
sudo ./uhubctl -l 1-1 -a 0
sudo ./uhubctl -l 1-1 -a 1
Однако я хочу запустить их без sudo. Я добавил разрешения в файл /etc/udev/rules.d/52-usb.rules
Добавлена строка SUBSYSTEM=="usb", ATTR{2109:3431}=="2001", MODE="0666"
2109: 3431 для Raspberry pi 4B.
А затем запустите sudo udevadm trigger --attr-match=subsystem=usb
и перезагрузите компьютер.
Я продолжаю получать следующие ошибки
No compatible smart hubs detected!
Run with -h to get usage info.
There were permission problems while accessing USB.
To fix this, run this tool as root using 'sudo uhubctl',
or add one or more udev rules like below
to file '/etc/udev/rules.d/52-usb.rules':
SUBSYSTEM=="usb", ATTR{idVendor}=="2001", MODE="0666"
then run 'sudo udevadm trigger --attr-match=subsystem=usb'
Что я упускаю из виду?
Комментарии:
1. Оставьте
idVendor
в покое, замените 2001 на 2109. Кроме того, вам нужно будет добавить 2-ю строку для концентратора USB 3, чтобы он работал. Вы можете найти vid для всех необходимых концентраторов, запустив sudo uhubctl один раз2. @mvp Я попробовал твое решение. Мне все еще приходится запускать его с помощью sudo perms. Однако я не понимаю, что вы имеете в виду, говоря о 2-й строке. Согласно странице GitHub, все они просто связаны друг с другом и не должны требовать 2-й строки. Я просто использую встроенные USB-порты PI 4
3. Концентраторы USB 3 будут рекламироваться как 2 независимых устройства: USB 2 и USB 3. Часто у них будет один и тот же идентификатор поставщика (например, 2109) — тогда достаточно одной строки. Но иногда они рекламируются как 2 разных идентификатора поставщика, в этом случае вам нужно добавить оба (я автор uhubctl)