Weiter Zurück Inhalt

4. Schnittstellen

4.1 Serielle 8250/16550 (und kompatible) UARTs

Fast alle älteren Digitalkameras verwenden die serielle Schnittstelle. Als die USB Schnittstelle populär wurde, haben die Kamerahersteller die Geräte oft mit serieller und USB Schnittstelle ausgestattet. Da gphoto 2 den Upload über USB noch nicht unterstützt, wird auch diese Schnittstelle noch oft benutzt. Die serielle Schnittstelle läst sich bei jeder Distribution einfach einrichten und wird daher nicht weiter beschrieben. Bei Problemen lesen Sie bitte die Serial HOWTO.

4.2 USB

Am USB Port tauschen die angesschlossenen Geräte Informationen aus. Die Geräte sind in entsprechende Klassen eingeteilt. Digitalkameras melden sich entweder als Mass Storage oder in einer anbieterspeziefischen Klasse an. Digitalkameras und Kartenleser, die sich als Mass Storage anmelden (FujiFilm, Leica, Sony u.a.) k�nen z.B. wie ein USB Ziplaufwerk über die SCSI Emulation gemountet werden. Die Speichermedien der Kameras verhalten sich dabei wie Festplatten. Bei Kameras, die sich als anbieterspeziefische Klasse anmelden (Canon u.a.) wird für die Komunikation mit der Kamera eine zusätzliche Software wie z.B. gphoto 2 oder jPhoto benötigt (oder man benutzt das verwendete Speichermedium direkt mit einem Kartenleser).

Kameras mit Mass Storage Klasse haben den Vorteil, das keine spezielle Software benötigt wird. Mass Storage Modelle haben eine sehr hohe Funktionsgarantie. Der Nachteil ist, das nur die "Grundfunktionen" (Download, Upload, Delete) unterstützt werden können. Durch die spezielle Software für Kameras mit anbieterspeziefischer Klasse und der damit verbundenen eigenen Produkt-ID für jeden Kameratyp sind neben den "Grundfunktionen" auch spezielle Funktionen wie z.B. Fernsteuern der Kamera oder ändern der Kamera-Einstellungen über die Software möglich. Da die meisten Kamerahersteller sich nach dem JEIDA Standart (Design rule for Camera File Systems), dem Exif (Exchangeable image file format) und dem standardisierten Picture Transfer Protocol for Digital Still Photography Devices (PIMA/ISO 15740) richten, hält sich der Programmiermehraufwand in Grenzen. Weitere Information findet man auf der Free Software with PTP Support Homepage http://ptp.sourceforge.net/.

Unter http://www.qbik.ch/usb/devices/ oder unter http://www.teaser.fr/~hfiguiere/linux/digicam.html kann man nachsehen, zu welchem Klassentyp die Kamera gehört. Alternativ kann man auch nach der Einrichtung des USB Grundgerüsts (siehe USB Kamera mit anbieterspezifischer Klasse einrichten) durch:

cat /proc/bus/usb/devices

die Informationen (Produkt-ID) direkt aus der Kamera auslesen oder im Windowstreiber in der Datei mit der Endung .nif nachsehen. Steht unter Product (siehe Beispielausgabe der IXUS 300) USB Mass Storage oder die Produktbezeichnung?

Zum Einrichten der USB-Schnittstelle müssen einige Einstellungen im Kernel aktiviert sein und die entsprechenden Module erstellt werden. Anwender, die einen vorgefertigten Kernel mit USB Unterstützung installiert haben, können diesen Abschnitt überspringen.

Da nicht jeder 2.2.X Kernel schon die volle USB-Unterstützung beinhaltet, muss der Kernel eventuell vor der Konfiguration gepatched werden oder direkt ein 2.4.X Kernel eingesetzt werden. Beim Einsatz von USB 2.0 ist ein aktueller 2.6.X sehr zu empfehlen. Module müssen fast immer bei einer Änderung der Kernel-Version neu erzeugt  werden. Innerhalb gleicher Kernel-Version ist dies normalerweise nicht notwendig. Der erste Schritt zu einem neuen Kernel ist die Konfiguration. Hier wählt man die Kernelkomponenten aus, die man braucht. Als erstes wechselt man in das Verzeichnis der Kernel Source z.B.  /usr/src/linux . Da das X-Window für die Grafikausgabe vorher schon installiert sein muß, ändert man am bequemsten die Konfiguration mit dem grafischen Konfigurationstool durch Eingabe von:

   make xconfig

Es ist zu empfehlen alle Kernel-Module, die nicht zwingend während des Bootvorgangs benötigt werden, als ladbare Module zu realisieren und den Kernel Module Loader zu aktivieren. Passen Sie nun die entsprechende Konfiguration an und speichern die Änderungen ab.

4.3 USB Kamera und Flash-Kartenleser bzw. USB Sticks der Mass Storage Klasse einrichten

Weitere Information findet man auch auf der Mass Storage Devices Homepage http://www.linux-usb.org/USB-guide/x498.html

Ändern Sie im Kernelkonfigurationsabschitt USB support die Einstellungen auf:

        Support for USB=m
        USB Controllers UHCI=m (*)
        USB Controllers UHCI_ALT=m (*)
        USB Controllers UHCI_OHCI=m (*)
        USB Controllers EHCI=m (**)
        USB Devices Mass Storage support=m
(*) USB Port Version 1.X. Je nach verwendeten Chipsatz wird nur eines von den Modulen benötigt. Es kann über den Befehl lspci -vt festgestellt werden, welcher Chip verwendet wird.

(**) USB Port Version 2.0 Beim Einsatz von USB 2.0 werden die (*) Module nicht benötigt.

Ändern Sie im Kernelkonfigurationsabschitt SCSI support die Einstellungen auf:

        SCSI support=y oder =m
        SCSI disc support=y oder =m
        SCSI generic support=y oder =m
        Probe all LUNs on each SCSI device =y (für Multi-CardReader erforderlich)

Ändern Sie im Kernelkonfigurationsabschnitt Filesystems die Einstellungen auf:

        vfat fs support=y oder =m

Damit die Konfigurationsänderungen wirksam werden, muß man den Kernel und die Module kompilieren. Dies macht man am besten so:

        make dep clean zbImage modules modules_install

Installieren Sie nun den neuen Kernel und passen Sie den Bootloader an. Booten Sie jetzt Linux mit den neuen Kernel.

Zum testen laden wir jetzt die Module durch Eingabe von:

        eventuell die SCSI und Dateisystemmodule...
        modprobe usb-uhci (oder usb-ohci oder uhci oder ehci-hcd)
        modprobe usbcore
        modprobe usb-storage

Überprüfen Sie den Ladevorgang durch:

        tail -f /var/log/messages
        lsmod

Erstellen Sie einen Mountpoint z.B.

        mkdir /mnt/camera

Über die folgenden Befehle können Sie das gesuchte SCSI Geräte finden:

Es werden dazu die sg3_utils ( http://www.torque.net/sg/index.html) benötigt.

        sg_scan -i
        sg_map

Tragen Sie jetzt noch den Mountpoint in die /etc/fstab ein z.B.

        /dev/sdc1       /mnt/camera       vfat         rw,noauto,user  0   0

Schalten Sie die Kamera bzw. den Kartenleser ein und mounten das Speichermedium:

        mount /mnt/camera

Um die Module nicht jedesmal per Hand laden zu müssen, kann man sie gleich beim Booten automatisch laden lassen. Unter Debian tragen wir dazu folgende 2 Zeilen in /etc/modules ein:

        usb-uhci (oder usb-ohci oder uhci oder ehci-hcd)
        usb-storage

4.4 USB Kamera mit anbieterspeziefischer Klasse einrichten (gphoto2)

Ändern Sie im Kernelkonfigurationsabschitt USB support die Einstellungen auf:

        Support for USB=m
        Preliminary USB device filesystem=y
        USB Controllers UHCI=m (*)
        USB Controllers UHCI_ALT=m (*)
        USB Controllers UHCI_OHCI=m (*)
        USB Controllers EHCI=m (**)
(*) USB Port Version 1.X. Je nach verwendeten Chipsatz wird nur eines von den Modulen benötigt. Es kann über den Befehl lspci -vt festgestellt werden, welcher Chip verwendet wird.

(**) USB Port Version 2.0. Beim Einsatz von USB 2.0 werden die (*) Module nicht benötigt.

Damit die Konfigurationsänderungen wirksam werden, muß man den Kernel und die Module kompilieren. Dies macht man am besten so:

        make dep clean zbImage modules modules_install

Zum testen laden wir jetzt die Module durch Eingabe von:

        modprobe usb-uhci (oder usb-ohci oder uhci oder ehci-hcd)
        modprobe usbcore

Überprüfen Sie den Ladevorgang durch:

        tail -f /var/log/messages
        lsmod

Tragen Sie jetzt noch dem Mountpoint von usbdevfs in die /etc/fstab ein: (Bei Kernel 2.6.x bzw. USB 2.0 ist usbdevfs in usbfs umbenannt worden!)

        none   /proc/bus/usb   usbdevfs     noauto,devmode=0664,devgid=99 0 0

Tragen Sie jetzt noch die USB Gruppe 99 mit den Usern, die Zugriff erhalten sollen, in die /etc/group ein:

        usb::99:user1,user2,user3

Mounten Sie usbdevfs und schalten Sie danach die Kamera ein:

        mount -t usbdevfs /proc/bus/usb

Zum testen, ob die Kamera sich am USB Port anmelden konnte, geben Sie folgendes ein:

        cat /proc/bus/usb/devices

Die Ausgabe sieht bei einer IXUS 300 z.B. so aus:

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB UHCI Root Hub
S:  SerialNumber=e400
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=32 #Cfgs=  1
P:  Vendor=04a9 ProdID=304d Rev= 0.01
S:  Manufacturer=Canon Inc.
S:  Product=DIGITAL IXUS 300
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl= 96ms

Das USB Grundgerüst ist nun eingerichtet.

Um das Laden der USB Module zu automatisieren, können Sie den USB manager http://www.dotaster.com/~shuu/linux/usbmgr/ installieren (wird bei SuSE 7.1, 7.2 verwendet) und die Datei /etc/usbmgr/usbmgr.conf entsprechend anpassen. Ausserdem sollte man Linux Hotplugging http://linux-hotplug.sourceforge.net/ installieren.

Für eine detailierte Kernel- und Moduleinstallation findet man Information unter:

Zugriffe auf USB Geräte mit anbieterspeziefischer Klasse

USB Library für Digitalkameras:

Das Programm gphoto2 benötigt für Zugriffe auf die Digitalkamera die USB Library.

        tar -xzvf libusb-X.Y.Z.tar.gz
        cd libusb-X.Y.Z
        ./configure
        make
        make install

Das gphoto2 Utility läuft im user-space. Daher gibt es Zugriffsprobleme auf die Digitalkamera, wenn in der /etc/fstab nicht der Zusatz devmode=0664,devgid=99 0 0 und die USB Gruppe in /etc/group eingetragen wurde.

Normalerweise sehen die Rechte wie folgt aus:

linux:/proc/bus/usb/001 # ls -l
total 1
dr-xr-xr-x    1 root     root            0 Jan  3 12:17 .
dr-xr-xr-x    1 root     root            0 Jan  3 12:17 ..
-rw-rw-r--    1 root     usb            18 Jan  3 12:17 001 (USB Port)
-rw-rw-r--    1 root     usb            18 Jan  3 13:26 002 (Digitalkamera)

Wie man hier an der Digitalkamera (Datei 002) sehen kann, hat nur die Gruppe usb und der Besitzer root die benötigten Schreibrechte. Jeder User, der Zugriff auf die Kamera erhalten soll, muss daher der Gruppe usb angehören.

Wenn Sie Probleme mit den Schreibrechten haben, dann können Sie alternativ auch den USB Permission Daemon installieren. Das Programm ändert die Schreibrechten der Datei nachdem sie erstellt wurde.

        tar usb_perms-X.Y.tar.gz
        cd usb_perms-X.Y.Z
        make
        make install
Zur Konfiguration benötigen Sie die Product ID und Vendor ID der Digitalkamera. Schliessen und schalten Sie die Kamera an und geben folgendes ein:

        cat /proc/bus/usb/devices

Erstellen Sie mit einem Editor die /etc/usb_perms. Das Dateiformat ist wie folgt aufgebaut:

Vendor ID       Produkt ID     Zu setzende Rechte (Octal)     Gruppen ID (Dezimal)

Bei Gruppen ID=0 wird GID nicht geändert.

Beispiel für die Canon Digital IXUS 300:

04a9 304d 0666 0  #Canon Digital IXUS 300

Zum testen können Sie den Daemon starten:

/usr/local/sbin/usb_perms

Um den Daemon einfacher bedienen zu können, gibt es das Skript usb_permd. Mit Hilfes des Skriptes kann der Daemon wie jeder andere Daemon gestartet, gestoppt und neu gestartet werden. Eine Logdatei /var/log/usb_perm.log wird auch erzeugt. Wie das Skript in den Bootvorgang eingebunden wird, hängt von der Distribution ab. Die folgende Beispielkonfiguration funktioniert mit neuen SuSE Distributionen (7.X), die sich an die Linux Standard Base (LSB) Spezifikation halten.

Beispiel-Installation für SuSE 7.3: Installation des Skriptes

cp usb_permd /etc/init.d
cd /etc/init.d
chmod 754 usb_permd

Links anlegen

cd /etc/init.d/rc5.d
ln -s ../usb_permd S23usb_permd
ln -s ../usb_permd K23usb_permd
cd /etc/init.d/rc3.d
ln -s ../usb_permd S23usb_permd
ln -s ../usb_permd K23usb_permd

Öffnen Sie mit einem Editor die /etc/rc.config und fügen nach der Zeile START_USB="yes" folgendes ein:

START_USBPD="yes"

Bein nächsten booten wird der Daemon jetzt automatisch gestartet.

4.5 PCMCIA

SmartMedia-Speicherkarten und CompactFlash können in PCMCIA-Laufwerken mit Hilfe eines Adapters ausgelesen werden. PCMCIA-Laufwerke sind in fast allen Laptops vorhanden. Weitere Informationen siehe:

4.6 Firewire IEEE 1394

Die Firewire Schnittstelle wird hauptsächlich bei Videokameras verwendet. Da sich die Schnittstellensoftware noch in einem frühen Entwicklungsstadium befindet, lesen Sie bitte weiter unter:

4.7 Bluetooth

Bluetooth ist eine neue Kurzstreckenfunktechnik zur drahtlosen Verbindung elektronischer Geräte über das weltweit frei verfügbare 2,45-Gigahertz-Frequenzband. Bei Digitalkameras fand Bluetooth bis jetzt noch keine grosse Verwendung. Einige Firmen warten angeblich auf Bluetooth Version 2.

4.8 LAN/WLAN

Einige Digitalkameras kann man mit Hilfe spezieller Software fernsteuern. Das bedeutet, es ist möglich die Kamera als Webcam einzusetzen.

4.9 IrDA

Wegen zu geringer Datenübertragung findet die Infrarot Technik bei Kameras kaum Anwendung.

4.10 Composite Video In (Video4Linux)

Auch ohne direkte Software-Unterstützung können Sie die Bilder ihrer Digitalkamera auf ihren Computer laden, wenn Sie eine TV Karte installiert haben. Verbinden Sie die Kamera mit dem Composite-In Eingang der Fernsehkarte. Sie können nun (mit starken Qualitätsverlusten!) Bilder in der Größe 768x567 Pixel (PAL Norm) übertragen und abspeichern. Geeignete Programme sind z.B. XAWTV, KWinTV oder BTTVGRAB bzw. Kgrab. Einige Kameras übertragen im Aufnahmemodus kontinuierlich das digitalisierte Bild an der TV Out Ausgang. Über den Anschluss an die TV Karte kann man so die Digitalkamera als WebCam mit einer Auflösung von bis zu 768x567 Pixel benutzen.

4.11 DPOF

Um die Digital Kamera auch ohne Computer nutzen zu können, haben sich die Hersteller Kodak, Canon, Fuji und Matsushita/Panasonic auf ein zusätzliches Datenformat, das Digital Print Order Format geeinigt. Mit DPOF (http://www.panasonic.co.jp/avc/video/dpof/dpof_110/white_e.htm) kann man die zu druckenden Bilder abspeichern bzw. einen Index erstellen. DPOF dient aber auch als Informationsquelle für das Entwicklungslabor und Bestellterminals. Weiterhin dient DPOF zur Erstellung von Präsentationen. DPOF ist Bestandteil des PictBridge Standards.

4.12 PictBridge

PictBridge ist ein von der CIPA (Camera and Imaging Products Association) verabschiedeter Standard für das direkte Anschlie�n einer Digitalkamera an einen PictBridge-kompatiblen Drucker. Auf diese Weise kann ohne Umweg über einen Computer direkt gedruckt werden. Die Ausdrucke lassen sich ganz einfach - unabh�gig vom Druckerhersteller - über die Kamerabedienung erstellen. Achten Sie beim Kauf auf das PictBridge Logo, falls Sie den Direktdruck verwenden möchten. Einigen Kameras kann man PictBridge per Firmware-Update nachträglich beibringen.

Weitere Informationen findet man unter:


Weiter Zurück Inhalt