* failed to open vchiq instance
错误。这通常是由sudo chmod 777 /dev/vchiq
修复的,但是(1)这是一个非常不安全的修复程序,绝对不适合部署到用户拥有的设备,(2)每次重新启动后都会重置。如何在不引入安全性问题的情况下,以“正确的方式”持续解决我的
/dev/vchiq
问题?#1 楼
通过将自己添加到video
组中,我能够解决类似的问题(我未使用默认用户)。 命令是:
sudo usermod -a -G video $(whoami)
您需要注销并重新登录以使更改生效。
#2 楼
您可以创建udev规则来设置设备上的特定权限。作为root用户,您可以:echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"' > /etc/udev/rules.d/10-vchiq-permissions.rules usermod -a -G video YourUnprivilegedUser
评论
这不能解决问题。运行该命令后,我仍然会收到错误消息。
–塞林
2015年10月17日在6:49
我怀疑权限是在较高的udev规则(因此在运行顺序中稍后)中完成的,该规则撤消了此更改。在我的(Debian)PC上,系统提供的文件是/lib/udev/rules.d/91-permissions.rules,因此,我尝试将其写入更高的文件(并可能在名称中包括local,以将其标识为本地修改),即:echo`SUBSYSTEM ==“ vchiq”,GROUP =“ video”,MODE =“ 0660” \'> /etc/udev/rules.d/92-local-vchiq-permissions.rules
– SlySven
16年1月19日在7:50
我的权限被拒绝,可能是什么问题?
– dmigo
16-09-22在18:08
非常适合我。如果usermod不够完善的解决方案
– Axel Advento
18年8月1日在13:15
#3 楼
您可以设置SUID
权限sudo chmod u+s /dev/vchiq
评论
这是做什么的?
– Fouric
2014年6月13日下午5:00
为可执行文件提供setuid属性后,系统上有权执行此文件的普通用户将获得拥有该文件的用户(通常是root)的特权。您可以在程序上设置它(假设它是由root拥有的)。由于/ dev / vchiq属于视频组,另一个选择是将setgid和程序上的组设置为视频。
–地铁
14年6月13日在6:17
尽管用户www-data在视频组中,但这没有帮助,但是我在Raspbian Stretch上成功使用chmod a + rw / dev / vchiq。
– JanTuroň
17年12月21日在10:23
#4 楼
将start_x=1
gpu_mem=256
添加到
boot/config.txt
,然后运行sudo raspistill -o cam.jpg
当然,我添加了raspistill的路径。它在Ubuntu上对我有用。
评论
我不知道这如何回答OP的问题-您能否扩大答案以解释它在Raspberry Pi上的工作原理?
– SlySven
16年1月19日在7:54
#5 楼
如果您是通过可通过浏览器访问的php脚本运行raspistill,则需要输入:sudo usermod -a -G video www-data
以授予Apache必要的权限。
评论
这对我有用(sudo usermod -a -G video $ {whoami)),我也建议(出于安全目的)为需要访问摄像机的任何过程添加一个专用用户,并将该用户仅添加到视频组中。
– n8henrie
16年5月14日在15:53
重新启动后,此永久解决方案可以正常工作并且相对安全。
– Serge Stroobandt
16年5月16日在18:55
需要重启。
– Moosa Baloch
17年11月12日在21:23
这也对我有用!谢谢。无需重新启动,注销并再次登录就足够了。
– tuvokki
18年3月28日在16:00
这是正确,安全的方法。如果您有专用于此功能的用户,则可以通过用该用户名替换$(whoami)来添加它们。
– IceMage
19年2月1日在15:06