Beiträge von Roland_DT im Thema „USB/UVC Kamera unter Linux“

    Angeregt durch dieses Thema http://www.astrotreff.de/topic.asp?TOPIC_ID=141507 habe ich eine kleine Anleitung zusammengestellt, wie man eine vermeintlich nicht von Linux unterstützte Kamera doch zum Laufen bringt.


    Inbetriebnahme einer UVC kompatiblen USB Kamera unter Ubuntu.


    Viele Hersteller bieten keine offizielle Treiberunterstützung für den Linux Kernel an. Dennoch ist es oftmals möglich diese unter Linux in Betrieb zu nehmen. Vorraussetzung ist, dass die Kamera der USB Video Class (UVC) Spezifikation entspricht. Ob dies der Fall ist, sollte im Kameradatenblatt stehen.


    Meine Bescreibung bezieht sich auf die Inbetriebnahme einer DMK 31AU03.AS.


    1. Schritt ist die Überprüfung des Datenblatts. Bei TheImagingSource ist der Hinweis auf UVC Kompatibiliaet leider etwas versteckt, und nicht direkt in den Technischen Daten der DMK31AU03.AS beschrieben. Aber sie ist UVC kompatibel, das ist das Wichtigste.


    2. Nun müssen wir die USB Vendor-ID und die Product-ID unserer Kamera herausfinden. Hierzu muss die Kamera zunächst an den Rechner angeschlossen werden. Nun verwenden wir auf der Konsole das folgende Kommando:


    $ lsusb


    Wir erhalten nun eine Liste aller angeschlossenen USB Geräte. Unter anderem im meinen Beispiel diese Zeile:


    Bus 002 Device 002: ID 199e:8101 The Imaging Source Europe GmbH DFx 21BU04 Camera


    Die Zahlenkombination hinter ID ist die gesuchte
    Vendor-ID = 199e und die
    Product-ID = 8101.


    3. Mit diesen Informationen können wir nun das Treibermodul laden und ihm die IDs übergeben. Da dieser Vorgang bei jedem Anstecken des USB Kabels erfolgen soll, packen wir es in ein kleines Schell-skript, welches wir zum Beispiel unter dem Namen /etc/dmk31au03as.sh ablegen:


    #!/bin/bash
    # Load device driver
    modprobe uvcvideo
    # Tell vendor and device ID to driver
    echo 199e 8101 > /sys/bus/usb/drivers/uvcvideo/new_id
    # End of skript


    4. Nun muss im Verzeichnis /etc/udev/rules.d/ eine neue Udev Regeldatei für die Kamera erzeugt werden. Der Name kann zum Beispiel 71-dmk31au03as.rules lauten. In diese Datei schreiben wir die folgende Regel:


    SUBSYSTEM=="usb", ATTR{idVendor}=="199e", ATTR{idProduct}=="8101", RUN="/etc/dmk31au03as.sh"


    Die Regel besagt, dass wenn am USB das Gerät mit der genannten Vendor-ID und Proukt-ID angesteckt wird, so soll der Befehl hinter RUN= ausgeführt werden. (Unser skript von Oben)


    5. Um die neue Regel wirksam werden zu lassen, muss der Udev Daemon neu gestartet werden. Die geht bei Ubuntu über das folgende skript, welches wir mit dem Parameter "restart" aufrufen:


    $ /etc/init.d/udev restart


    (Um dieses skript ausfueren zu können müssen wir root Rechte besitzen. Wir müssen entweder per "su" root werden oder das skript mit Hilfe von "sudo" ausführen.)


    6. Nun können wir die Kamera testen, zum Beispiel mit mplayer:


    $ mplayer tv:// -tv device=/dev/video0


    Es sollte sich ein Fenster mit dem Kamerabild öffnen.


    Viele Grüße,
    Roland