* 未能打开 vchiq 实例

Posted

技术标签:

【中文标题】* 未能打开 vchiq 实例【英文标题】:* failed to open vchiq instance 【发布时间】:2017-03-03 16:24:04 【问题描述】:

我尝试通过音频插孔将声音从 php 脚本播放到我的树莓派 3。我在 php 脚本中使用了以下代码:

<?php
$fetch = 'wget "http://192.168.1.127/sound.mp3" -O sound.mp3 --no-check-certificate';
$play = 'omxplayer -o local sound.mp3';
echo shell_exec($fetch);
echo shell_exec("sudo chown upload sound.mp3");
echo shell_exec($play);
?>

我从本地 IP 地址获取文件并将其保存到 pi。然后我通过omxplayer 命令播放声音。在真正的 shell 上(通过 Putty 中的 SSH),Pi 将毫无问题地输出声音。当我尝试脚本时,我在使用 omxplayer command 时收到以下错误消息。

* failed to open vchiq instance

然后我在论坛中搜索了此错误。他们的意思是这将是缺少文件权限的东西。为此,我将整个目录设置为权限级别 777,并将文件所有者(如您在脚本中看到的)设置为 upload

很遗憾,这不起作用。有没有人有另一种解决方案来从 pi 中获取输出?

感谢您的每一个回复。

【问题讨论】:

【参考方案1】:

Omxplayer 是一个视频和音频播放器。您的用户需要在 video 组中,即使您只想播放音频。

不要在/dev/vchiq 上使用777 模式,因为它不安全!更好的解决方案是将您的用户添加到名为video 的系统组中。例如: 要将 Linux 系统中的用户 testuser 添加到 video 组,请使用以下命令:

usermod -aG video testuser

【讨论】:

这应该是 usermod -aG video testuser 否则 testuser 将被从其他组中删除【参考方案2】:

在我再次搜索之后,我终于找到了解决该问题的方法。问题在于/dev 中的目录。我在命令行中点击了以下命令,效果很好。

sudo chmod 777 /dev/vchiq

【讨论】:

非常感谢它为我节省了很多 与其在系统范围内进行更改,不如针对特定用户进行更改。 sudo usermod -a -G 视频用户名。这个答案可以在这个地方找到,比如这里:raspberrypi.stackexchange.com/questions/19436/… /dev/vchiq 的“777”模式是安全漏洞!特别是在使用摄像机时使用它很重要。使用“视频”组代替适当的用户。 不要这样做,它允许任何系统用户对设备进行写访问,如上调整个人用户设置【参考方案3】:

实际上很多用户都被带到了这个问题,因为他们尝试了raspistill并返回了这个错误。

无论如何,错误通常是因为您忘记添加sudo,所以sudo raspistill -o output.jpg 应该可以工作。

【讨论】:

以上是关于* 未能打开 vchiq 实例的主要内容,如果未能解决你的问题,请参考以下文章

未能获取 FirebaseDatabase 实例。在 FirebaseApp 中指定 DatabaseURL

AWS Opsworks 未能添加 EC2 实例

GCP Cloud SQL 未能删除实例,因为 `deletion_protection` 设置为 true

未能获取默认 Firebase 数据库实例。必须调用`[FIRApp 配置]

Cloudformation 未能创建 ecs 服务(在您的集群中未找到任何容器实例。)

未能封送类型,因为嵌入数组实例的长度与布局中声明的长度不匹配