Я работаю над написанием графического приложения, использующего графический процессор Пи, и у меня постоянно * failed to open vchiq instance
возникают ошибки при запуске моих программ. Обычно это исправляется sudo chmod 777 /dev/vchiq
, но (1) это очень небезопасное исправление, которое определенно не подходит для развертывания на пользовательских устройствах, и (2) оно сбрасывается после каждой перезагрузки.
Как я могу исправлять свои /dev/vchiq
проблемы «правильно», постоянно, без проблем с безопасностью?
permissions
fouric
источник
источник
sudo usermod -a -G video $(whoami)
), я бы также рекомендовал (в целях безопасности) добавить выделенного пользователя для любого процесса, которому потребуется доступ к камере, и добавить только этого пользователя вvideo
группу.Вы можете создать правило udev для установки определенных разрешений на устройстве. Как корень, вы можете:
источник
/lib/udev/rules.d/91-permissions.rules
таким, что я бы попытался записать его в еще более высокий файл (и, возможно, включить локальное в имя, чтобы идентифицировать его как локальную модификацию), то есть:echo `SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"\' > /etc/udev/rules.d/92-local-vchiq-permissions.rules
Вы можете установить
SUID
разрешениеисточник
setuid
атрибут, обычные пользователи в системе, которые имеют разрешение на выполнение этого файла, получают привилегии пользователя, которому принадлежит файл (обычно root). Вы можете установить это в своей программе (при условии, что она принадлежит пользователю root). Так как/dev/vchiq
принадлежит группе,video
другой вариант - установитьsetgid
и группу в вашей программеvideo
.www-data
вvideo
группе, но мне удалось сchmod a+rw /dev/vchiq
Raspbian Stretch.добавлять
чтобы
boot/config.txt
затем запуститьsudo raspistill -o cam.jpg
Конечно, я добавил путь для расписта. Это сработало для меня в Ubuntu.
источник
Если вы запускаете raspistill из php-скрипта, доступ к которому осуществляется через браузер, вам нужно ввести:
sudo usermod -a -G video www-data
чтобы дать Apache необходимые разрешения.источник