尝试使用Raspberry Pi相机时,我一直收到以下错误消息。

# raspistill -o /tmp/gate_now.jpg
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates


在进行研究时,有多种原因会导致ENOSPC消息,我以为我会在这里创建一个问题以对可能的原因进行分类。

评论

您还将它与温度传感器一起使用吗?设置温度传感器时,只要运行modprobe命令,我都会遇到此问题。见github.com/raspberrypi/linux/issues/435

在OctoPi图像上也遇到此问题:github.com/guysoft/OctoPi/issues/31

这是2019年,无法发布新答案(已关闭),但是我之前安装了raspimjpeg,我很幸运能够使用'ps -ef'进行发现。 “ sudo pkill raspimjpeg”解决了问题。

我正在运行用尽相机的章鱼。我通过运行sudo service webcamd stop修复了我的问题,然后检查pidof mjpg_streamer是否返回了进程ID,现在没有。 Ran raspstill -o test.jpg终于奏效了!

#1 楼

我在pi上使用运动,如果要运行raspistill,则必须停止运动(这也需要使用相机检测运动)。

pi@raspberrypi ~ $ sudo /etc/init.d/motion stop
[ ok ] Stopping motion detection daemon: motion.
pi@raspberrypi ~ $ /usr/bin/raspistill -o cam2.jpg
pi@raspberrypi ~ $ sudo /etc/init.d/motion start
[ ok ] Starting motion detection daemon: motion.


评论


虽然这可能是一个答案,但一定会通过一些改进加以改进。

– Bex
15年2月13日在11:22

我没有在跑步,但我确实有另一个守护进程正在使用相机,而当我停下来时,我停止出现错误。

–IpsRich
18-10-31在15:26

是的,相机似乎只能由一个过程控制。

–方案
18年5月5日在2:01

#2 楼

摄像头软件的GitHub项目页面提到


错误:显示ENOSPC。相机可能已耗尽GPU
内存。检查/ boot /文件夹中的config.txt。 gpu_mem选项
至少应为128。


此问题指出,如果与1-Wire(W1)模块的驱动程序发生冲突,则可能发生此错误。模块未按正确的顺序加载。

RPi论坛上的帖子说,可以通过将1-Wire的引脚切换到引脚18来解决此问题:

/boot/cmdline.txt:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait bcm2708.w1_gpio_pin=18


自2016年5月起,GPU_MEM = 128不再足够。将其从128增加到144可以消除错误。

评论


我认为您的意思是gpu_mem,而不是gpio_mem。

–tedder42
18年1月4日在23:31

#3 楼

我有同样的问题。将它与其他许多文章进行比较,最可能的答案是两个进程/应用程序试图同时访问PiCam。这可以是ffmpeg流,运动,raspivid,raspistill等。

我的$ 0.02

评论


true :))浪费了一些时间,我忘了我在后端安装了运动程序,无法访问摄像机

–soField
16年8月28日在20:34

或octoprint(对我而言)

–萨兰
18年2月19日在22:39

我试图同时运行raspivid和利用picamera库的python脚本。他们不能一起跑

–但丁
18-09-28在11:52



非常感谢,我也犯了同样的错误,但是其他帖子帮助我更新了固件,dist软件包等。问题仍然存在,直到我停止此sudo服务动作为止。相机再次开始工作。

–阿米雷(Amit Ray)
18年11月4日在10:10

也提供我的情况和解决方案。我已经在python脚本中导入了picamera,但无法正常工作,因此我决定从脚本内的命令行调用中使用raspistill。我没有删除导入picamera,因此在可以与raspistill一起使用之前占用了相机资源。

–未知开发者
19年11月15日在3:43

#4 楼


“在通常情况下,不需要运行rpi-update,因为它总是可以带您到领先的固件和内核,因为这可能是测试版本,可能会使RPi无法启动”。 https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911
甚至rpi-update文档现在也警告说:“即使在Raspbian上,您也应该仅出于充分的理由使用它。这会让您最新的前沿内核/固件。”


我遇到了同样的问题。固件更新已解决。

sudo rpi-update


评论


这为我解决了这一问题,似乎有必要使Raspicam 2.1为我工作(在更新之前,我成功使用了Rapicam 1.3);更新将我从4.1.7-v7 +升级到了4.9.25-v7 +,这使较新的模型可以使用。在这种情况下,我不需要从GPIO_MEM = 128更改为GPIO_MEM = 144。

– nh2
17年5月3日在14:20

无法提供答案,因为没有足够的代表。以我为例,标准的树莓派相机可以使用,但高质量的树莓派相机无法使用。这为我解决了。希望它能帮助某人。

–卡尔
20-10-26在17:17

#5 楼

我最近遇到了ENOSPEC错误的相同问题。就我而言,所有事情都运行良好,直到我将相机放入PiCam机壳中为止。我发现这个外壳(即使是为PiCamera设计)也将芯片推到松开凸轮和电路板之间的连接器的程度。将其推回原位可以解决我的问题。也许不太容易看到连接器是否正确安装到位,这会导致误解。

我想这不是通常的情况,但正如第一篇文章所建议的那样,这应该会增强可能原因的目录。这个错误。

#6 楼

我有同样的错误消息,因为通过sudo rpi-update启用相机后,我没有更新固件(通过raspi-config)。我已经在几天前更新了固件,我认为这样就足够了,但是由于当时未启用相机,因此它没有帮助。

#7 楼

就我而言,只是我没有在连接相机后重新启动pi。

评论


切勿在pi通电时将其连接到pi!

–德米特里·格里戈里耶夫(Dmitry Grigoryev)
19年10月2日,12:17

#8 楼

我已经在带有PI CAMERA 2.1的PI3B v1.2中尝试了最后的RASPBIAN STRETCH LITE(9.4-2018-06-27),全部完全升级(apt-get upgrade)
如果此命令未检测到具有“检测到的= 1”的摄像机,如下所示:
pi@raspberrypi:~ $ vcgencmd get_camera
supported=1 detected=1

然后出现连接问题。检查两种电缆的插针是否都朝着正确的方向(当然,还应连接到“ camera”总线,而不是连接到相同尺寸的“ display”总线)。
(当然,启用摄像机后与raspi-config进行接口并重新启动)
,如果它不起作用,通常是相机的硬件问题,快速的选择是更换新相机。
如果检测到= 1,但尝试使用raspistill时,显示以下消息:
pi@raspberrypi:~ $ raspistill -o test.jpg
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

然后连接正常,但是确定的问题是相机的硬件问题,您必须将相机更换为新相机。不要浪费时间试图解决它,因为它是有缺陷的相机。如果您有一个新的,它会起作用。
这不是完全正确的。如果检测到摄像头= 1且受支持的摄像头= 1,则即使对方“占有”该资源,也将收到错误消息。就我而言,我运行了一个抓取凸轮的码头工人图像。在容器内部工作正常,在外部(主机上),我得到了所描述的错误。

评论


即使那样,您也不能说相机无法正常工作。我遇到了所有这些问题,当我使用http:// {my ip}:8081 /?action = stream进行实时流式传输时,它正在运行。这意味着raspimjpeg正在运行。当您已经有一个或多个进程正在使用相机时,这很可能发生,因为检测到= 1意味着它至少能够与相机联系。

–阿米雷(Amit Ray)
19-10-10在15:41

#9 楼

就我而言,我必须使用modprobe卸载驱动程序:
sudo modprobe -r bcm2835-v4l2

然后相机上的红色LED熄灭,我可以使用raspivid重新启用相机。

#10 楼

就我而言,我需要重新安装相机上的电缆。我已经断开了它的连接,以便将电缆穿过一个盒子。它一定没有建立良好的连接。

#11 楼

我在AIY视觉套件(Pi Zero W)上遇到了该错误,因为我忘记停止了相机演示应用程序:

sudo systemctl stop joy_detection_demo


#12 楼

我通过chmod 666 / dev / video0
解决了我的问题