Quelles sont les causes d'erreur ENOSPC lors de l'utilisation du module de caméra Raspberry Pi?

33

Je reçois le message d'erreur ci-dessous lorsque j'essaie d'utiliser l'appareil photo 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

En recherchant cela, il y a un certain nombre de raisons qui peuvent mener à un message ENOSPC, j'ai pensé créer une question ici pour répertorier les causes possibles.

TomG
la source
Est-ce que vous l'utilisez également avec un capteur de température? Je rencontrais ce problème à tout moment lorsque j'exécutais la commande modprobe lors de la configuration du capteur de température. Voir github.com/raspberrypi/linux/issues/435
Anconia le
Obtenir ce numéro également sur les images OctoPi: github.com/guysoft/OctoPi/issues/31
GuySoft
Nous sommes en 2019 et nous ne pouvons pas publier de nouvelle réponse (fermée), mais j'avais déjà installé raspimjpeg, que j'ai eu la chance de voir à l'aide de 'ps -ef'. "sudo pkill raspimjpeg" a ensuite résolu le problème.
Gavin Simpson

Réponses:

19

La page du projet GitHub pour le logiciel de l'appareil photo mentionne

Erreur: ENOSPC affiché. La caméra manque probablement de mémoire GPU. Vérifiez le fichier config.txt dans le dossier / boot /. L'option gpu_mem doit être au moins 128.

Ce problème indique que cette erreur peut survenir en raison d'un conflit avec les pilotes pour les modules 1-Wire (W1) si les modules ne sont pas chargés dans le bon ordre.

Ce message sur les forums RPi indique que le problème peut être résolu en commutant la broche utilisée pour 1-Wire sur la broche 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

Depuis mai 2016, GPU_MEM = 128 n'est plus suffisant. En augmentant de 128 à 144 l'erreur a disparu.

TomG
la source
Je pense que vous voulez dire gpu_mem, pas gpio_mem.
tedder42
14

J'utilise motion sur pi, si je veux exécuter raspistill, je dois arrêter le mouvement (qui utilise également la caméra pour détecter le mouvement).

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.
schemacs
la source
Bien que cela puisse être une réponse, des améliorations seraient assurément apportées.
Bex
Ce n’était pas une motion que j’avais courue, mais j’ai eu un autre démon utilisant la caméra, et quand j’ai arrêté, j’ai cessé d’obtenir l’erreur.
Richard Wiseman
Oui, la caméra semble ne peut être contrôlée que par un seul processus.
schemacs
10

"Dans des circonstances normales, il n'est JAMAIS nécessaire d'exécuter rpi-update car il vous amène toujours au microprogramme et au noyau à la pointe de la technologie et, comme il peut s'agir d'une version de test, votre RPi risque de ne plus démarrer." https://www.raspberrypi.org/forums/viewtopic.php?p=916911#p916911 Même la documentation sur la mise à jour de rpi avertit désormais «Même sur Raspbian, vous ne devez l'utiliser avec une bonne raison. Cela vous donne le dernier avantage noyau / firmware. "

J'ai eu le même problème. Une mise à jour du firmware l'a résolu.

sudo rpi-update
utilisateur49119
la source
Cela a résolu le problème pour moi et m'a semblé nécessaire de faire fonctionner Raspicam 2.1 (j'ai utilisé avec succès Rapicam 1.3 avant la mise à jour); la mise à jour m'a mis à niveau de 4.1.7-v7+à 4.9.25-v7+, ce qui a permis au nouveau modèle de fonctionner. Changer de GPIO_MEM=128à GPIO_MEM=144n'était pas nécessaire pour moi dans ce cas.
nh2
9

J'ai eu le même problème. En le comparant à un certain nombre d’autres publications, la réponse la plus probable est que deux processus / applications tentent d’accéder à la PiCam en même temps. Cela peut être du streaming ffmpeg, du mouvement, du partage, du transfert, etc.

Mon 0,02 $

Franc
la source
vrai :)) perdu un peu de temps, j'ai oublié que j'ai installé le processus de mouvement est sur le backend, empêchant d'accéder à la caméra
soField
2
Ou octoprint (comme ce fut pour moi)
Saran
J'essayais d'exécuter à la fois Raspivid et un script Python utilisant la bibliothèque Picamera. Ils ne peuvent pas courir ensemble
Dante
Merci beaucoup, moi aussi, je faisais la même erreur, mais d'autres publications m'ont aidé à mettre à jour mon firmware, les paquets dist, etc. Le problème était toujours là jusqu'à ce que je le fasse sudo service motion stop. Et la caméra a recommencé à fonctionner.
Amit Ray
Je propose juste ma situation et ma solution. J'avais importé picameradans un script Python, mais cela ne fonctionnait pas, j'ai donc décidé d'utiliser raspistillun appel de ligne de commande à l'intérieur du script. Je ne l'ai pas retirée import picamera, cela prenait donc la ressource caméra avant de pouvoir l'utiliser raspistill.
Kimberly W
6

J'ai récemment rencontré le même problème d'erreur ENOSPEC. Dans mon cas, tout fonctionnait parfaitement jusqu'à ce que je place mon appareil photo dans un boîtier PiCam. J'ai trouvé ce boîtier (même s'il était conçu pour la PiCamera) pousse la puce aussi loin que le connecteur entre la came et la carte a été desserré. Le remettre en place a résolu mon problème. Ce n’est peut-être pas si facile de voir si le connecteur est correctement en place, ce qui pourrait entraîner une mauvaise interprétation.

Je suppose que ce ne sera pas le cas habituel, mais comme le suggérait le premier message, cela devrait améliorer le catalogue des causes possibles de cette erreur.

Un grand B
la source
2

J'ai eu le même message d'erreur parce que je n'avais pas mis à jour le firmware (via sudo rpi-update) après avoir activé l'appareil photo via raspi-config. J'avais déjà mis à jour le firmware quelques jours auparavant et je pensais que cela suffirait, mais comme l'appareil photo n'était pas activé à l'époque, cela n'a pas aidé.

anol
la source
2

Dans mon cas, c'était simplement que je n'avais pas redémarré mon Pi après avoir connecté la caméra.

Haydon Berrow
la source
Ne jamais attacher une caméra au pi tant qu'il est alimenté!
Dmitry Grigoryev
1

J'ai essayé avec le dernier RASPBIAN STRETCH LITE (9.4 - 2018-06-27) dans un PI3B v1.2 avec un PI CAMERA 2.1, entièrement mis à niveau (apt-get upgrade)

Si cette commande ne détecte pas la caméra avec " détecté = 1 " comme ceci:

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

Ensuite, il y a un problème de connexion. Vérifiez si les câbles des deux côtés sont du bon côté des broches (et bien sûr connectés au bus "caméra", pas au bus "écran" de même taille).

(bien sûr, après activer l'interface de la caméra avec raspi-config et le redémarrage)

Si cela ne fonctionne pas, il s'agit généralement d'un problème matériel avec l'appareil photo. L'option rapide consiste à remplacer l'appareil photo par un nouveau.

Si détecté = 1 mais en essayant d'utiliser raspistill, affiche ce message:

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

Ensuite , les connexions sont ok, mais le problème est sûr est un problème matériel avec l'appareil photo et vous devez changer la caméra pour un nouveau. Ne perdez pas de temps à essayer de le résoudre car il s'agit d'un appareil photo défectueux. Si vous en achetez un nouveau, cela fonctionnera.

Albert Garcia
la source
Même dans ce cas, vous ne pouvez pas dire que la caméra ne fonctionne pas. J'avais tous ces problèmes et quand je faisais du streaming en direct en utilisant http: // {my ip}: 8081 /? Action = stream, cela fonctionnait. Cela signifie que Raspimjpeg était en cours d'exécution. Cela se produit très probablement quand un ou plusieurs processus utilisent déjà la caméra car détecté = 1 signifie au moins qu'il est capable de contacter la caméra.
Amit Ray
0

dans mon cas, j'ai dû utiliser modprobe pour décharger le pilote: sudo modprobe -r bcm2835-v4l2

Ensuite, le voyant rouge de l'appareil photo est éteint et je peux utiliser raspivid pour réactiver l'appareil photo.

utilisateur97662
la source
0

Dans mon cas, je devais réinsérer le câble sur l'appareil photo. Je l'avais déconnecté pour faire passer le câble dans un boîtier; il ne doit pas avoir fait une bonne connexion.

napertivo
la source
0

J'ai eu cette erreur sur mon kit AIY Vision (Pi Zero W) parce que j'ai oublié d'arrêter l'application de démonstration d'appareil photo:

sudo systemctl stop joy_detection_demo
Navin
la source
-1

J'ai résolu le mien par chmod 666 / dev / video0

liderbug
la source