Good to Know Database

Raspbian Wheezy: raspistill meldet "mmal: mmal_vc_component_enable: failed to enable component: ENOSPC"


Sollten Sie ein Raspbian Image mit dem Linux Kernel 3.10 einsetzen und die 1-Wire Kernelmodule aktiviert haben, werden gegebenenfalls beim Aufruf von raspistill die folgenden Fehlermeldungen angezeigt.

pi@raspberrypi ~ $ raspistill -o image.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

Wie unter https://github.com/raspberrypi/linux/issues/435 beschrieben liegt dies an einem Problem im 1-Wire Kernelmodul w1_gpio. Dieses überschreibt beim Laden die Einstellungen für die I²C-Pins des Raspberry Pi's und verhindert dadurch den Zugriff auf den I²C-Bus über welchen die Raspberry Pi Kamera angebunden ist. Um dieses Problem zu lösen müssen Sie nur die Reihenfolge beim Laden der Kernelmodule anpassen. Dies wird in der folgenden Anleitung beschrieben.

Ob Sie den Linux Kernel 3.10 einsetzen, können Sie mit dem Befehl uname überprüfen.

pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.10.28+ #632 PREEMPT Tue Jan 28 18:42:43 GMT 2014 armv6l GNU/Linux

Wie bereits geschrieben, werden durch das Laden des Kernelmoduls w1_gpio die Einstellungen für den I²C-Bus überschrieben. Dadurch erhalten Sie bei einem Aufruf von i2cdetect auch die folgenden Fehlermeldungen.

pi@raspberrypi ~ $ sudo i2cdetect -y 0
Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
pi@raspberrypi ~ $ sudo i2cdetect -y 1
Error: Could not open file `/dev/i2c-1' or `/dev/i2c/1': No such file or directory

Bevor Sie die Reihenfolge der Kernelmodule ändern, sollten Sie die /etc/modprobe.d/raspi-blacklist.conf überprüfen.

pi@raspberrypi ~ $ sudo vi /etc/modprobe.d/raspi-blacklist.conf

Stellen Sie sicher, dass diese Datei die folgenden Zeilen enthält.

# blacklist spi and i2c by default (many users don't need them)

blacklist spi-bcm2708
blacklist i2c-bcm2708

Öffnen Sie anschließend die Konfigurationsdatei /etc/modules mit einem Editor.

pi@raspberrypi ~ $ sudo vi /etc/modules

Hier werden die Kernelmodule angegeben welche beim Systemstart automatisch geladen werden. Ändern Sie diese Datei wie folgt ab damit zuerst die 1-Wire Kernelmodule geladen werden und erst im Anschluss die I²C Kernelmodule.

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

wire
w1-gpio
w1-therm
i2c-bcm2708
i2c-dev
snd-bcm2835

Nachdem Sie die /etc/modules angepasst und gespeichert haben, sollten Sie einen Neustart des System durchführen damit die neuen Einstellungen übernommen werden.

pi@raspberrypi ~ $ sudo shutdown -r now

Nach dem Neustart sollten Sie raspistill ohne Fehlermeldungen ausführen können.


Dieser Eintrag wurde am 09.02.2014 erstellt und zuletzt am 25.09.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2502.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer