Am Raspberry PI eine USB Webcam betreiben

Dafuer gibt es unzaehlige Anleitungen im Internet. Die meissten davon funktionieren
aber nicht, oder nicht ordentlich.

Grundsaetzlich gibt es 2 vielversprechende Programme dafuer :

motion -> braucht aber recht viel CPU (kann theoretisch auch mehr; z.B. aufzeichnen, sobald sich was bewegt…)
mjpegstreamer -> besser aber nur mit Tricks optimal :

Wenn man den einfach so kompiliert, dann funktioniert die „mjpeg“ Option nicht.
Die Webcam geht nur mit dem „-y“ Parameter; sie liefert dann „raw“ – Bilder
an die CPU und die CPU muss daraus den Mpeg Stream erzeugen.
Beim PI2 mit seinen 4 Kernen ist das zwar nicht schlimm, aber schoen ist es auch nicht.
(1 Kern zu 100% ausgelastet)
Beim PI1 ist das natuerlich voelliger Non-Sense. In diesem Fall waere der PI natuerlich fuer andere Einsatzzwecke
kaum mehr zu gebrauchen.

Nach einiger Recherche hab ich dafuer aber einen Patch gefunden unter :
https://www.raspberrypi.org/forums/viewtopic.php?t=97983

Damit klappts dann auch ohne „-y“; die Kamera liefert dann direkt komprimierte Bilder zur CPU.
-> CPU Last = 1% beim PI1; 0,3% beim PI2

Allerdings es es halt doch einiges an Aufwand, alles korrekt zusammenzusuchen, zu patchen etc.

Drum hab ich mein gepatchtes Build-Verzeichnis mal gepackt, und hier nochmal hochgeladen.
Dann gehts einfacher :

apt-get update
apt-get install libjpeg8-dev imagemagick libv4l-dev
ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
mkdir -p /install
cd /install
wget http://downloads.walterschlag.net/mjpg-streamer.tgz
tar xfz mjpg-streamer.tgz
cd mjpg-streamer
make clean # Fuer den Fall, dass schon mal kompiliert wurde …
make

In der Datei „start.sh“ finden sich nun einige Beispiele, wie der Streamer zu starten ist.
Mein Start Script sieht so aus :

#!/bin/sh
cd /install/mjpg-streamer
export LD_LIBRARY_PATH=“/install/mjpg-streamer“
./mjpg_streamer -i „input_uvc.so -d /dev/video0 -r 1280×960 -f 5“ –output „output_http.so -c BENUTZERNAME:PASSWORT -w www/“ &

Und wird – ganz einfach – ueber die /etc/rc.local mitgestartet …

Seagate Goflex serielle Verbindung

So schön und toll wie embedded Linux Systeme auch immer sind, hin und wieder ist halt leider doch eine serielle Konsole notwendig.
Vorallem z.B. dann, wenn man so ein System auf ein neues kopiert.
Dann ist man froh, wenn z.B. aus China ein USB-Serial adapter mit 3,3V TTL Signalen bereit liegt :

image

image

image

In meinem Fall hab ich damit herausgefunden, dass sich der Name der Netzwerkschnittstelle geändert hat.
eth0 -> eth1
Dadurch war das Gerät natürlich nicht mehr erreichbar…

USV Bypass

Warum bin ich da drauf nicht gleich gekommen ?!? Hab für meine USV Versorgung einen Bypass gebaut. Ist ein zweipoliger Wechselschalter in einer Feuchtraumdose.
So kann ich jetzt ohne Unterbrechung die USV entnehmen, testen, reparieren u.ä. falls es notwendig ist.

Breitband internet

Irgendwas stimmt mit der Sim Karte von meinem mobilen Internet nicht. Sollten eigentlich 30MBit downlink sein, aber leider bekomme ich nur :

image

Hab jetzt mal per AT Kommando umgeschaltet auf LTE only :
image

-> schon besser; ich glaub ich werd mal a neuere Firmware aufm Router probieren…

So. hab jetzt mal den Stick direkt am Laptop angesteckt, und getestet; ist offenbar wirklich ein Router Problem :

ModemDirektAmLaptopBesserPlaziert

So – neue Firmware ist jetzt drauf.
Genau genommen benötigt man entweder einen TP-Link 1043 oder einen 4300.
Und natürlich ein LTE Modem. (E3372 in meinem Fall)

Auf den Router kommt diese Firmware (einfach die für den richtigen Router auswählen; beim 1043 gibts V1 und V2!!) :
http://79.133.43.76/openwrt/v6/

WAN-Interface auf eth1 umstellen.

dann legt man z.B. unter /bin eine datei „connect.sh“ an, und macht sie ausführbar. Inhalt :

#!/bin/sh

    if test -e /dev/ttyUSB0
    then
     echo -e "AT^NDISDUP=1,1,\"drei.at\"\r" > /dev/ttyUSB0
    fi

Dann noch mit „crontab -e“ einen Job anlegen, welcher dieses Scipt jede Minute 1x startet :

* * * * * /bin/nice -n 9 /bin/other/connect.sh

Damit krieg ich jetzt ähnliche Werte, wie wenn das Modem direkt am Laptop steckt.
-> kann meinen 30MBit Vertrag voll ausreizen !