Я использую RPI для создания программы, но мне нужно отключить порты USB, чтобы конечный пользователь не мог подключить клавиатуру или мышь и связываться с устройством.
Возможно ли это, и если да, то как это сделать?
Я использую RPI для создания программы, но мне нужно отключить порты USB, чтобы конечный пользователь не мог подключить клавиатуру или мышь и связываться с устройством.
Возможно ли это, и если да, то как это сделать?
Ответы:
Вы можете найти удачу с этой командой:
echo 0x0> / sys / devices / platform / bcm2708_usb / buspower
Это похоже на отключение портов USB. Я не проверял это все же.
Каждый хост-контроллер USB в Linux предоставляет параметр authorized_default
, который называется , который контролирует состояние любых новых подключенных устройств. Установка его в 0 делает все новые устройства отключенными по умолчанию:
for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done
Рекомендуемый способ запуска этого скрипта состоит в использовании udev
правил. Таким образом, вы уверены, что скрипт выполняется в нужное время, когда драйвер хост-контроллера уже загружен, но ни одно из устройств еще не было авторизовано. Посмотрите этот вопрос для примера такого подхода.
Одна вещь, которую вы должны понимать, это то, что программные блокировки эффективны только до тех пор, пока конечный пользователь не сможет отключить SD-карту и снять защитные устройства, которые вы установили.
Я действительно не знаю, что это напрямую возможно ... Почему бы просто физически не заблокировать способность пользователей делать это? Либо помещая его туда, куда они не могут добраться, заполняя порты, либо надевая / окружая механизм блокировки.
sudo sh -c "echo 0 > /sys/devices/platform/soc/3f980000.usb/buspower"
Отключит порты USB, а также порт LAN.
sudo sh -c "echo 1 > /sys/devices/platform/soc/3f980000.usb/buspower"
Реактивирует их.