Miscellaneous:USB camera howto (German)
Contents |
Unterstützt die Kamera usb storage?
Wir prüfen ob der Kernel usb storage und SCSI unterstützt:
modprobe -l
Hier halten wir Ausschau nach den Modulen usb-storage und sd. Wenn die SCSI Unterstützung in den Kernel hinein kompiliert wurde, anstatt es als Modul zu nutzen, müssen wir stattdessen unter /proc/devices nach 'sd' suchen. Das gilt auch für usb-storage.
Nun schließen wir die Kamera über USB an und tippen:
dmesg | tail
Steht hier nun etwas über ein angeschlossenes SCSI Gerät können wir die Kamera als entfernbaren Datenträger nutzen.
Einbindungseinstellung
Wir fügen eine neue Zeile in dieser Form in unsere /etc/fstab ein:
/dev/sda1 /mnt/usbflash vfat rw,noauto,user,noexec 0 0
Tatsächlich brauchen wir hier auch noch Unterstützung für vfat (Microsoft Windows 9x Dateisystem).
Das ist auch schon alles!
Bilder von der Kamera mit gphoto2 ziehen
gphoto2 installieren
# lin -cr gphoto2
Das installiert das benötigte libgphoto2 welches dich nach der Installation der gewünschten libusb und libexif fragen wird... wir bestätigen beides mit Ja.
"libusb" "For usb camera support" say "yes" "libexif" "For EXIF tag support" say "yes"
Nun führen wir folgendes Kommando als normaler Benutzer aus:
$ gphoto2 --list-files
Das Ergebnis sollte ein großer Haufen Fehlermeldungen mit folgender Schlussfolgerung sein:
gphoto2-port(0): Could not release interface 0 (Operation not permitted).
Wenn wir wollten, könnten wir bereits mit dem root-Benutzer Bilder von der Kamera laden. Da das aber nicht die feine Art ist werden wir noch die Berechtigungen für unsere Kamera konfigurieren um normalen Benutzer den Zugriff zu ermöglichen.
Berechtigungen für den Zugriff als normaler Benutzer auf die Kamera konfigurieren
Ich habe das hier nur mit udev und hotplug getestet, was nur für 2.6.x Kernel geeignet ist. Dazu muss man diesen HowTo folgen und bei der Installation udev auswählen.
In der /etc/fstab brauchen wir folgende Zeile:
usbfs /proc/bus/usb usbfs defaults 0 0
Wir fügen eine neue Gruppe "usb" hinzu und gehen sicher dass unser Benutzer *username*, der Zugriff auf die Kamera bekommen soll, Teil dieser Gruppe ist.
# groupadd -g 31 usb
# gpasswd -a *username* usb
Kopiere einfach die Ausgabe von /usr/lib/libgphoto2/print-usb-usermap in die Datei /etc/hotplug/usb/usbcam.usermap
# /usr/lib/libgphoto2/print-usb-usermap > /etc/hotplug/usb/usbcam.usermap
Kopiere dann /usr/share/doc/libgphoto2/linux-hotplug/usbcam.user nach /etc/hotplug/usb/usbcam
# cp /usr/share/doc/libgphoto2/linux-hotplug/usbcam.user /etc/hotplug/usb/usbcam
Editiere nun in /etc/hotplug/usb/usbcam in der Zeile mit
user=ROOT
nach
user=*username*
- Hinweis: Wenn du mehrere Benutzer hast, die auf die Kamera zugreifen können sollen, kopiere die Datei usbcam.group und füge jene Benutzer in dieser Gruppe ein.
# chmod +x /etc/hotplug/usb/usbcam
Jetzt verbinden wir die Kamera und schalte sie ein. Der Kernel wird nun feststellen, dass die Kamera verbunden wurde, und feststellen, dass kein geeigneter Treiber im Kernel für die Kamera gefunden werden konnte. Nun fragt der Kernel Hotplug ob etwas mit der neuen Gerätedatei angestellt werden soll. Hotplug sieht nun in /etc/hotplug/usb/*.usermap nach und entscheidet, dass das usbcam Skript für das neu gefundene Gerät geeignet ist. Folglich wird /etc/hotplug/usb/usbcam ausgeführt und die Zugriffsrechte der Gerätedatei werden korrekt gesetzt. In /var/log/messages finden wir eine Resonanz dieses Effekts. Wir wollen nun rausfinden ob die Zugriffsrechte der entsprechende Gerätedatei wirklich korrekt gesetzt wurden. Dazu sehen wir uns /proc/bus/usb mit ls -lR /proc/bus/usb genauer an. Hier sollte nun mindestens eine Gerätedatei (irgendwas mit 015 oder so) mit den Zugriffsrechten unserer Wünsche gesetzt worden sein.
Bilder von der Kamera herunterladen
Nun können wir als normaler Benutzer in unserem Heimatverzeichnis folgende Befehle ausführen:
$ gphoto2 --list-ports $ gphoto2 --auto-detect $ gphoto2 --summary $ gphoto2 --list-files $ gphoto2 --get-all-files
Nun sollten keine der vorherigen Fehlermeldungen mehr auftauchen und unsere Bilder sollten in unser Heimatverzeichnis, oder wohin auch immer wir sie wollen, heruntergeladen werden. Eine kleine Veränderung des Befehls kann den Dateinamen zu dem Datum, an dem wir das Bild von der Kamera gezogen haben, ändern. Gehe sicher, dass das Verzeichnis 'MyPictures' bereits existiert.
$ gphoto2 --get-all-files --filename ~/MyPictures/'%y-%M-%d-%n'.jpg