ubuntuusers.de

Kamera via PTP einbinden

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/Oxygen/camera-photo.png Digital-Kameras können entweder direkt als Massenspeichermedium in das Dateisystem eingebunden werden, oder sie sind wie viele Spiegelreflexkameras (DSLR) ausschließlich über das Picture Transfer Protocol (PTP) ansprechbar. PTP ist ein von der International Imaging Industry Association entwickeltes Protokoll zum Austausch von Bildern zwischen Digitalkameras und anderen Geräten wie Computern oder Druckern.

Die einfachste Möglichkeit ist, das Speichermedium (z.B. eine SD-Karte) zu entnehmen und einen externen USB-Kartenleser zu verwenden. Möchte man jedoch PTP nutzen, gibt es dafür das Werkzeugpaket gPhoto2, auf welches auch viele andere Programme wie beispielsweise digiKam oder gThumb zugreifen.

gPhoto2 besteht aus:

Welche Kameras konkret unterstützt werden, ist einer Liste 🇬🇧 zu entnehmen, die in gewissen Zeitabständen aktualisiert wird und daher eine recht verlässliche Grundlage darstellt. Allerdings muss beachtet werden, dass diese Liste nicht unbedingt dem Paket gphoto entspricht, welches je nach Ubuntu-Version auch älter sein kann, und dann faktisch bereits als unterstützt gelistete Modelle unter Ubuntu nicht funktionieren.

gPhoto2

Mit gPhoto2 🇬🇧 können Bilder von der Kamera geholt und auf die Kamera geschickt werden. Außerdem kann die Kamera vom Rechner aus (fern)gesteuert werden (Tethered Shooting), wenn das jeweilige Kameramodell entsprechend unterstützt 🇬🇧 wird.

Es muss das folgende Paket installiert [1] werden:

  • gphoto2 (universe)

Paketliste zum Kopieren:

sudo apt-get install gphoto2 

Oder mit apturl installieren, Link: apt://gphoto2

Mit gtkam gibt es eine einfache grafische Oberfläche für gphoto2. Mehr Komfort bietet das Programm Entangle , das seit Ubuntu 14.04 Bestandteil der offiziellen Paketquellen ist.

Konfiguration

Falls die Kamera auch den USB-Massenspeichermodus erlaubt, muss an der Kamera der USB-Modus auf PTP gesetzt werden. Um herauszufinden, ob die installierte Version von gPhoto2 die Kamera unterstützt, gibt man folgenden Befehl in ein Terminalfenster ein [2]:

gphoto2 --auto-detect 

Nun sollte der angeschlossene Kameratyp angezeigt werden. Eine Liste der Bilder auf der Kamera zeigt:

gphoto2 --auto-detect -L 

Um die Bilder auf den PC zu übertragen, ruft man aus dem Verzeichnis, in das die Bilder kopiert werden sollen, nachstehenden Befehl auf:

gphoto2 --auto-detect -P 

Hinweis:

  • Falls mehr als ein Speicherkartenschacht in der Kamera zur Verfügung steht, darf nur eine Speicherkarte ansprechbar sein.

  • Eventuell automatisch eingebundene Kamera, z.B.durch gthumb-Importtool, muss ausgehängt werden.

  • Kamera wird nicht am Fokussieren gehindert oder steht auf “manuell”.

Beispiele

  • zeigt die installierte Version von gphoto:

    gphoto2 -v 
  • gibt die Eigenschaften der angeschlossenen Kamera aus:

    gphoto2 -summary 
  • Unterstützt die Kamera eine Fernsteuerung über den Rechner:

    gphoto2 --port usb: --abilities 
  • nimmt ein Bild auf:

    gphoto2 --capture-image 
  • zeigt die Einstellungsparameter auf der Kamera:

    gphoto2 --list-config 
    • zeigt Einstellmöglichkeit für den Parameter iso:

      gphoto2 --get-config iso 
    • setzt den Parameter iso auf den Wert 3 entsprechend den Einstellmöglichkeiten:

      gphoto2 --set-config iso=3 
  • erlaubt, Einstellungen auf der Kamera zu ändern:

    gphoto2 --set-config capture=on 
  • gibt eine Liste der Bilder auf der Kamera aus:

    gphoto2 --list-files 
  • zum Herunterladen aller Bilder von der Kamera:

    gphoto2 --get-all-files 
  • zum Aufnehmen eines Bildes alle 10 Sekunden:

    gphoto2 --capture-image --interval 10 
  • nimmt ein Bild auf und speichert es auf dem Rechner. Das Initialisieren dauert etwa 2 Min.:

    gphoto2 --port usb: -capture-image-and-download 
  • Serienbilder erstellen, insgesamt zehn Bilder im Abstand von zwei Sekunden

    gphoto2 --capture-image --interval 2 -frames 10 

gphotofs

Das Werkzeug gphotofs 🇬🇧 erlaubt es, unterstützte Kameras desktop-unabhängig als Dateisysteme darzustellen. Zuerst muss das folgende Paket installiert [1] werden:

  • gphotofs (universe)

Paketliste zum Kopieren:

sudo apt-get install gphotofs 

Oder mit apturl installieren, Link: apt://gphotofs

Konfiguration

Die Konfiguration erfolgt in drei Schritten:

  1. Anlegen eines Ordners, in den die Kamera eingebunden wird

  2. Erstellen einer udev-Regel, um die Kamera erkennen zu können

  3. Ein kleines Shell-Skript als Hilfsprogramm für udev generieren

Verzeichnis anlegen

Nun wird ein entsprechendes Verzeichnis angelegt, über das die Kamera später erreichbar ist [2], beispielsweise:

sudo mkdir /media/mydigicam 

udev-Regel erstellen

Anschließend wird eine eigene udev-Regel zum automatischen Einbinden (mount) und Aushängen (umount) angelegt. Dazu erstellt man mit einem Editor [3] und Root-Rechten [4] die Datei /etc/udev/rules.d/70-mydigicam.rules und fügt folgenden Inhalt ein:

ACTION=="add", ATTRS{idVendor}=="HERSTELLER-ID", ATTRS{idProduct}=="PRODUKT-ID", RUN+="/usr/local/bin/mountcamera.sh add"
ACTION=="remove", ATTRS{idVendor}=="HERSTELLER-ID", ATTRS{idProduct}=="PRODUKT-ID", RUN+="/usr/local/bin/mountcamera.sh remove"

"HERSTELLER-ID" und "PRODUKT-ID" müssen noch an die eigene Kamera angepasst werden. Diese Daten können über die Ausgabe des Befehls

lsusb 

ermittelt werden. Ein Beispiel für eine Canon Ixus 100 IS:

1
2
ACTION=="add", ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c2", RUN+="/usr/local/bin/mountcamera.sh add"
ACTION=="remove", ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c2", RUN+="/usr/local/bin/mountcamera.sh remove"

Mount/Umount-Skript anlegen

Für den eigentlichen Vorgang des Einbindens und Auswerfens der Kamera ist ein zusätzliches Skript notwendig. Dazu legt man mit einem Editor und Root-Rechten die Datei /usr/local/bin/mountcamera.sh an und fügt folgenden Inhalt ein:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#! /bin/bash

## Bitte anpassen!
MOUNTPOINT="/media/mydigicam"

Mount()
{
# You need to add the allow_other option, otherwise only root can access the camera.
    gphotofs ${MOUNTPOINT} -o allow_other
}

Unmount()
{
    fusermount -u ${MOUNTPOINT}
}

Usage()
{
    echo "Usage: $0 [add|remove]"
    echo
}

case "$1" in
    add)
        Mount
        ;;
    remove)
        Unmount
        ;;
    *)
        Usage
        ;;
esac

Mit folgenden Befehl muss das Skript noch ausführbar gemacht werden:

sudo chmod a+x /usr/local/bin/mountcamera.sh 

Verwendung

Im Idealfall die Kamera über ihr USB-Kabel anschließen und einschalten. Bilder stehen nun über den unter Verzeichnis anlegen eingerichteten Ordner zur Verfügung. Zum Entfernen ausschalten und dann Kabel abziehen.

Problembehebung

Falls die Kamera nicht erkannt wird, kann es daran liegen, dass sie nicht direkt an einem USB-Port angeschlossen ist. Die Benutzung eines USB-Hubs ist dann anscheinend nicht möglich.

Diese Revision wurde am 1. Juni 2019 10:48 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Bildverwaltung, Multimedia