Was verursacht einen ENOSPC-Fehler bei Verwendung des Raspberry Pi-Kameramoduls?

33

Beim Versuch, die Raspberry Pi-Kamera zu verwenden, wird die folgende Fehlermeldung angezeigt

# 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

Es gibt eine Reihe von Gründen, die zu einer ENOSPC-Meldung führen können. Ich dachte, ich würde hier eine Frage erstellen, um die möglichen Ursachen zu katalogisieren.

TomG
quelle
Verwenden Sie es auch mit einem Temperatursensor? Ich hatte dieses Problem immer dann festgestellt, wenn ich den Befehl modprobe beim Einrichten des Temperatursensors ausgeführt habe. Siehe github.com/raspberrypi/linux/issues/435
Anconia
Dieses Problem auch auf OctoPi-Bildern: github.com/guysoft/OctoPi/issues/31
GuySoft
Es ist 2019 und ich kann keine neue Antwort veröffentlichen (geschlossen), aber ich hatte zuvor raspimjpeg installiert, was ich glücklicherweise mit 'ps -ef' erkannt habe. "sudo pkill raspimjpeg" löste dann das Problem.
Gavin Simpson

Antworten:

19

Die GitHub-Projektseite für die Kamera-Software erwähnt

Fehler: ENOSPC wird angezeigt. Der GPU-Speicher der Kamera geht wahrscheinlich aus. Überprüfen Sie die Datei config.txt im Ordner / boot /. Die Option gpu_mem sollte mindestens 128 sein.

Dieses Problem besagt, dass dieser Fehler aufgrund eines Konflikts mit den Treibern für 1-Wire-Module (W1) auftreten kann, wenn die Module nicht in der richtigen Reihenfolge geladen werden.

Dieser Beitrag in den RPi-Foren besagt, dass das Problem behoben werden kann, indem der für 1-Wire verwendete Pin auf Pin 18 umgeschaltet wird :

/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

Ab Mai 2016 reicht die GPU_MEM = 128 nicht mehr aus. Durch Erhöhen von 128 auf 144 wurde der Fehler behoben.

TomG
quelle
Ich denke du meinst gpu_mem, nicht gpio_mem.
Tedder42
14

Ich benutze motion auf pi, wenn ich raspistill laufen will, muss ich motion stoppen (was auch die kamera benutzt um bewegungen zu erkennen).

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.
Schemata
quelle
Während dies eine Antwort sein könnte, würde es definitiv durch eine Ausarbeitung verbessert.
Bex,
Es war keine Bewegung, die ich ausgeführt hatte, aber ich hatte einen anderen Dämon, der die Kamera verwendete, und als ich aufhörte, hörte ich auf, den Fehler zu bekommen.
Richard Wiseman
Ja, die Kamera kann anscheinend nur durch einen Vorgang gesteuert werden.
Schemata
10

"Unter normalen Umständen muss RPI-Update NIEMALS ausgeführt werden, da es Sie immer zur neuesten Firmware und zum neuesten Kernel bringt. Da es sich möglicherweise um eine Testversion handelt, kann dies dazu führen, dass Ihr RPi nicht mehr bootfähig ist." https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Auch die RPI-Update - Dokumentation warnt jetzt „Auch auf Raspbian Sie dies mit gutem Grund verwenden sollten. Dies Sie die neueste bleeding edge bekommt Kernel / Firmware. "

Ich hatte das gleiche problem Ein Firmware-Update hat es gelöst.

sudo rpi-update
user49119
quelle
Dies löste es für mich und schien notwendig zu sein, damit die Raspicam 2.1 für mich funktioniert (ich habe die Rapicam 1.3 vor dem Update erfolgreich eingesetzt). Das Update hat mich von 4.1.7-v7+auf aktualisiert 4.9.25-v7+, wodurch das neuere Modell funktioniert. Ein Wechsel von GPIO_MEM=128nach GPIO_MEM=144war in diesem Fall für mich nicht erforderlich.
nh2
9

Ich hatte das gleiche problem Im Vergleich zu einer Reihe anderer Posts ist die wahrscheinlichste Antwort, dass zwei Prozesse / Anwendungen gleichzeitig versuchen, auf die PiCam zuzugreifen. Dies kann ffmpeg-Streaming, Bewegung, Raspivid, Raspistill usw. sein.

Meine $ 0,02

Frank
quelle
true :)) etwas Zeit verloren, ich habe vergessen, dass ich Motion Process im Backend installiert habe, wodurch der Zugriff auf die Kamera verhindert wird
soField
2
Oder Octoprint (wie es für mich war)
Saran
Ich habe versucht, sowohl Raspivid als auch ein Python-Skript auszuführen, das die Picamera-Bibliothek verwendet. Sie können nicht zusammen laufen
Dante
Vielen Dank, dass auch ich den gleichen Fehler gemacht habe, aber andere Beiträge haben mir geholfen, meine Firmware, dist-Pakete usw. zu aktualisieren. Das Problem war immer noch da, bis ich dies tat sudo service motion stop. Und die Kamera fing wieder an zu arbeiten.
Amit Ray
Ich biete nur meine Situation und meine Lösung an. Ich hatte picameraein Python-Skript importiert , aber es funktionierte nicht. Deshalb entschied ich mich, raspistillstattdessen einen Befehlszeilenaufruf innerhalb des Skripts zu verwenden. Ich habe nicht entfernt, import picamerasodass die Kamera-Ressource belegt war, bevor ich sie verwenden konnte raspistill.
Kimberly W
6

Ich habe kürzlich das gleiche Problem mit einem ENOSPEC-Fehler festgestellt. In meinem Fall lief alles perfekt, bis ich meine Kamera in ein PiCam-Gehäuse steckte. Ich fand, dass dieses Gehäuse (auch wenn es für die PiCamera gedacht ist) den Chip so weit schiebt, dass der Stecker zwischen Cam und Board gelöst wurde. Das Zurückschieben löste mein Problem. Es ist vielleicht nicht so einfach zu erkennen, ob der Stecker richtig sitzt, was zu Fehlinterpretationen führt.

Ich vermute, dass dies nicht der übliche Fall ist, aber wie der erste Beitrag vorschlug, sollte dies den Katalog möglicher Ursachen für diesen Fehler erweitern.

Großes B
quelle
2

Ich hatte die gleiche Fehlermeldung, weil ich die Firmware (über sudo rpi-update) nicht aktualisiert hatte, nachdem ich die Kamera über aktiviert hatte raspi-config. Ich hatte die Firmware bereits einige Tage zuvor aktualisiert und dachte, es würde ausreichen, aber da die Kamera damals nicht aktiviert war, half es nicht.

anol
quelle
2

In meinem Fall war es nur so, dass ich mein Pi nach dem Anbringen der Kamera nicht neu gestartet hatte.

Haydon Berrow
quelle
Schließen Sie niemals eine Kamera an das Pi an, während es mit Strom versorgt wird!
Dmitry Grigoryev
1

Ich habe es mit dem letzten RASPBIAN STRETCH LITE (9.4 - 2018-06-27) in einer PI3B v1.2 mit einer PI CAMERA 2.1 versucht, alle vollständig aktualisiert (apt-get upgrade)

Wenn dieser Befehl die Kamera mit " detected = 1 " wie folgt nicht erkennt :

pi@raspberrypi:~ $ vcgencmd get_camera
supported=1 detected=1

Dann liegt ein Verbindungsproblem vor. Überprüfen Sie, ob das Kabel in beide Richtungen mit der guten Seite zu den Stiften zeigt (und natürlich mit dem "Kamera" -Bus verbunden ist, nicht mit dem "Anzeige" -Bus, der die gleiche Größe hat).

(natürlich nach aktivieren der Kamera-Schnittstelle mit Raspi-Config und Neustart)

Wenn dies nicht funktioniert hat, liegt in der Regel ein Hardwareproblem mit der Kamera vor, und die schnelle Möglichkeit besteht darin, die Kamera durch eine neue zu ersetzen.

Wenn erkannt = 1, aber wenn versucht wird, raspistill zu verwenden, wird folgende Meldung angezeigt:

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

Dann sind die Verbindungen in Ordnung, aber das Problem ist mit Sicherheit ein Hardwareproblem mit der Kamera, und Sie müssen die Kamera gegen eine neue austauschen. Verschwenden Sie keine Zeit damit, es zu lösen, weil die Kamera defekt ist. Wenn Sie ein neues bekommen, wird es funktionieren.

Albert Garcia
quelle
Selbst dann kann man nicht sagen, dass die Kamera nicht funktioniert. Ich hatte all diese Probleme und als ich Live-Streaming mit http: // {my ip}: 8081 /? Action = stream machte, funktionierte es. Dies bedeutet, dass raspimjpeg ausgeführt wurde. Dies ist höchstwahrscheinlich der Fall, wenn die Kamera bereits von einem oder mehreren Prozessen verwendet wird, da "Erkannt = 1" bedeutet, dass mindestens ein Kontakt zur Kamera hergestellt werden kann.
Amit Ray
0

In meinem Fall musste ich modprobe verwenden, um den Treiber zu entladen: sudo modprobe -r bcm2835-v4l2

Dann wird die rote LED an der Kamera ausgeschaltet und ich kann raspivid verwenden, um die Kamera wieder zu aktivieren.

user97662
quelle
0

In meinem Fall musste ich das Kabel an der Kamera neu anschließen. Ich hatte es abgetrennt, um das Kabel durch einen Koffer zu führen. es muss keine gute Verbindung hergestellt haben.

napertivo
quelle
0

Ich habe diesen Fehler in meinem AIY Vision Kit (Pi Zero W) erhalten, weil ich vergessen habe, die Kamera-Demo-App zu beenden:

sudo systemctl stop joy_detection_demo
Navin
quelle
-1

Ich habe mein Problem mit chmod 666 / dev / video0 gelöst

Liderbug
quelle