Anschluss von NoName Kameras an Raspberry Pi

Kürzlich habe ich meine 3 WebCams an meinen Raspberry Pi angeschlossen und wunderte mich warum nur die höherpreisige (passabel) funktionierte.

Mit meinem Raspberry Pi wollte ich einige erste Schritte vornehmen und den kleinen etwas genauer kennenzulernen. Weiter interessiert mich motion und die Möglichkeit mit einer Webcam im Ansatz eine primitive Hausüberwachung zu verwenden.

Setup

  • Raspberry Pi, Model B, 512 MB mit Class 10 SD-Card
  • Aktuelles OS, Debian Wheezy: Linux raspi 3.12.18+ #680 PREEMPT Sat May 3 19:29:46 BST 2014 armv6l GNU/Linux
  • Software:
    • motion
    • fswebcam
    • cheese
  • Webcams:
    • Creative Live! Cam Sync HD ~ 22 €
    • Creative WebCam Vista Skype ~ 15 €
    • NoName Cam ~ 10 €

Da ich den Kleinen Headless, also ohne Maus und Tastatur betreibe, bleibt nur der Remotezugang per ssh. Dagegen wird motion nicht im daemon Modus gestartet, sondern direkt von der Kommandozeile. Find ich aktuell einfacher zu debuggen. Um die Aufzeichnung am Leben zu halten, auch wenn das Terminal geschlossen wird, habe ich mir stattdessen screen installiert.

> sudo apt-get install screen

Ist screen installiert, kann man eine neue "benannte" Session mit folgendem Befehl starten:

> screen -S motion

Um sich aus der Sitzung zu entkoppeln, wird STRG+a und anschließend d für "detach" gedrückt. Will man die Sitzung komplett schließen, schreibt man entweder exit, oder drückt STRG+a und dann SHIFT+d (also großes D).

Weiter Infos unter http://wiki.ubuntuusers.de/screen.

Probleme + Analysen + Lösungen

Nach dem Anschluss der teureren "Creative Live! Cam Sync HD" erhielt ich leicht instabiles Bild, aber der Raspberry lief eine halbe Stunde lang ohne Probleme. Mit motion habe ich dann 5 Minuten ein sich ständig in der Helligkeit veränderndes Bild bekommen. Das lag aber an der Cam, denn an einem Alternativgerät, einem Netbook, lief die Cam auch nicht sauber.

Ich war überzeugt, dies würde mit den anderen beiden Cams besser laufen. Also habe ich beide angeschlossen und motion für den Betrieb von beiden Cams konfiguriert.

Startete ich nun motion erhielt ich diverse Fehlermeldungen:

  • Unsupported marker type 0xf5
  • Invalid JPEG file structure: SOS before SOF
  • Bogus Huffman table definition

Ich habe danach eine nach der anderen Cam eingestöpselt und geprüft, ob die Cams zu viel Strom ziehen oder etwas in der Art. Auffällig war auch, dass einige der Cams als fast und die andere als full-speed USB Gerät erkannt wurden. Kann der Raspberry nicht mit beiden parallel arbeiten?

Was fehlt dem Kleinen?

Beide Geräte wurden im System gefunden und mit input: ov519 as gekennzeichnet. Die erste Cam "Creative Live! Cam Sync HD" hatte eine eigene Bezeichnung.

> dmesg 
...
[  119.852964] usb 1-1.2: new full-speed USB device number 4 using dwc_otg
[  119.905344] usb 1-1.2: New USB device found, idVendor=041e, idProduct=405f
[  119.911244] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  119.911546] usb 1-1.2: Product: Creative WebCam Vista
[  119.931348] usb 1-1.2: Manufacturer: CRrative Labs
[  119.982745] media: Linux media interface: v0.10
[  119.998363] Linux video capture interface: v2.00
[  120.193744] gspca_main: v2.14.0 registered
[  120.332434] gspca_main: ov519-2.14.0 probing 041e:405f
[  123.507334] input: ov519 as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/input/input0
...

Das hatte mich stutzig gemacht. In einigen Foren wurden andere Programme etwa fswebcam vorgestellt. Das Problem bestand aber selbst hier.

Irgendwann hatte ich den Treiber v4l2 und uvcvideo im Visir. Irgendwie fehlte dieses Stück Software auf meinem Raspberry also habe ich es nachinstalliert.

> sudo apt-get update 
> sudo apt-get upgrade
> sudo apt-get install v4l-utils

Nachdem ich diesen Treiber installiert habe, habe ich die Cams an den Raspberry angeschlossen, und motion gestartet.

> sudo motion

Und siehe da, motion lief problemlos an und beide Cams lieferten ein Bild.

Der Vollständigkeit halber sei erwähnt, dass ich den Raspberry neu gestartet habe, bevor ich motion angeworfen habe...

Die billige NoName Cam hatte aber nach einiger Zeit eine Artefakte im Bild produziert. Ich habe mir dabei erst einmal nichts gedacht und den Aufbau eine Nacht gegen eine Garageneinfahrt gerichtet, deren Lampe nachts angeht, wenn der Kater des Nachbarn herumstreunt.

Am nächsten Morgen die Überraschung: Der Raspberry lässt sich nicht mehr ansprechen, kein ping, kein ssh - nichts. Nur die LAN Leuchten blinkten fröhlich, als würde sie kommunizieren.

Also: Reboot durch Strommangel, bzw. Stecker ziehen.

Was war jetzt denn wieder los? Einige Stunden lang läuft alles (mehr oder minder) zufriedenstellend und dann wird der Raspberry immer langsamer und langsamer bis er resigniert. Verwunderlich ist nur, dass top kein CPU-Aktivität meldet. Protokolle unter /var/logs/ sind auch leer... Seltsam.

Also habe ich die Cams nun tageweise aktiviert: Zuerst die "Creative WebCam Vista Skype". Diese lief eine ganze Nacht durch und machte fröhlich kleine Shots vom Kater.

Danach habe ich die NoName-Cam versucht zu betreiben. Am nächsten morgen war der Raspberry wieder in Trance. Aha! Die NoName Cam hat also eine Macke, die den Raspberry mundtot gemacht hatte.

Fazit

Die billigen Cams haben offenbar alle ihre Schwierigkeiten mit dem Raspberry. Ich hatte es mir etwas einfacher vorgestellt, die Cams anzuschließen und aus zwei Perspektiven zu betreiben. Naja, wenigstens habe ich wieder die Bestätigung, dass billige Produkte zu billiger Verarbeitung und schlechtem Support führen. Das Lehrgeld muss ich wohl zahlen...

Wenn der Flachmann aber mal läuft, ist er nicht zu hören, dezent und unauffällig. Tut seinen Dienst und ist sehr erweiterungsfreudig. Ich bin mal gespannt, was ich noch so alles aus ihm kitzeln kann.

Nächste Schritte

Für eine bessere Wahl der nächsten Cam werde ich mir die Kompatibilität einiger Cams unter http://elinux.org/RPi_USB_Webcams, https://wiki.ubuntu.com/SkypeWebCams und http://www.ideasonboard.org/uvc/#devices genauer anschauen.

Die geschossenen Fotos sollen automatisiert einmal in der Stunde auf ein NAS kopiert werden. Das mache ich aktuell noch mit einem kleinen Script zu Fuss... sollte aber mit cron einfach sein dies zu erledigen.

Die Fotos sollten langfristig zu einem Tagesfilm zusammengeklebt werden und für mindestens 14 Tage vorliegen.