Home / LinuxUser / 2002 / 09 / photopc

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

„Klickbunt auf dem Server? Warum nicht, wenn's hilft!"
(220 Punkte bei 8 Stimmen)
KDE 4.10.2, Gnome 3.6 und mehr
(121 Punkte bei 4 Stimmen)
Google schmeißt Jabber raus ...
(121 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Einfach ausgelesen

photopc

01.09.2002 Für den Zugriff auf Bilder in Digitalkameras gibt es zahlreiche GUI-Tools, hier beschreiben wir eines für die Kommandozeile: photopc lässt sich auch gut zur Automatisierung in einem Skript verwenden.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen - wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Wenn Sie den Artikel "Abgebildet" auf Seite 37 in dieser Ausgabe gelesen haben, kennen Sie schon einige Tools für den Kamerazugriff. Mit den GUI-Tools lässt sich zwar komfortabel anhand der Voransicht eine Auswahl treffen, aber wenn Sie regelmäßig große Mengen von Bildern erstellen und im Rechner weiter verarbeiten wollen, brauchen Sie ein Tool, das sich auch in ein Shell-Skript einbauen lässt. Ein solches Tool ist photopc.

Installation aus den Sourcen

Auf der Heft-CD im Verzeichnis LinuxUser/photopc/ finden Sie die beiden Dateien photopc_3.05.tar.gz und photopc-3.05J23.tar.gz (USB-Unterstützung). Installieren Sie bitte nur eines der beiden Pakete - abhängig davon, ob Sie Ihre Kamera über USB anschließen oder nicht. Nach dem Mounten der CD führen Sie als Superuser root folgende Schritte aus:

asteroid:~# cd /usr/local/src/
asteroid:/usr/local/src# tar xzvf /cdrom/LinuxUser/photopc/photopcXY.tar.gz

Ein neues Verzeichnis photopcXY wird angelegt; wechseln Sie in dieses (cd photopcXY) und tippen ./configure. Als letzte Ausgaben erhalten Sie im Idealfall:

creating ./config.status
creating Makefile
creating config.h
config.h is unchanged
creating dos/version.h
dos/version.h is unchanged
creating win32/version.h
win32/version.h is unchanged

Anschließend installieren Sie das Programm im Zweierschritt:

asteroid:/usr/local/src/photopcXY# make
[…]
asteroid:/usr/local/src/photopcXY# make install
[…]

Ist alles ohne Fehlermeldung durchgelaufen, wurde das Programm nach /usr/local/bin installiert.

Vor dem Start

Die Kamera wird entweder über ein USB-Kabel an den USB-Port oder mit einem entsprechenden Kabel an die serielle Schnittstelle angeschlossen - das hängt von Ihrem PC und dem Kameramodell ab. Hängt die Digitalkamera an einer seriellen Schnittstelle, müssen Sie diese bei jedem Programmaufruf explizit mit dem Parameter -l (kleines "l" wie in "lustig") und dem Device-Namen ansprechen. Dies können Sie abkürzen, indem Sie einen symbolischen Linkauf das verwendete Device setzen (siehe auch Kasten 1). Ist die Kamera beispielsweise an den ersten seriellen Port angeschlossen, erzeugen Sie den Link als Superuser root mit dem Kommando:

asteroid:~# ln -s /dev/ttyS0 /dev/photopc

Als Superuser root können Sie nun problemlos mit dem Tool arbeiten. Dem "einfachen" Benutzer fehlen allerdings noch ein paar Rechte, damit das reibungslos klappt. Wie bereits angesprochen, zeigt der Symlink /dev/photopc auf die serielle Schnittstelle, an der die Kamera hängt. Um ohne root-Rechte mit der Kamera zu kommunizieren, muss der User auf das Device schreiben dürfen. Schauen Sie sich die Rechte der Schnittstelle mit dem Befehl ls -l an:

asteroid:~# ls -l /dev/ttyS0
crw-rw—-    1 root     dialout    4,  64 Jun 30 16:30 /dev/ttyS0

Das erste Zeichen steht für den Dateityp, hier ein "c" für "character device" - ein zeichenorientiertes Gerät. Das "r" bedeutet Leseerlaubnis ("read"), das "w" Schreibberechtigung ("write"), und an dritter Stelle kann ein "x" für die Erlaubnis, die Datei ausführen zu dürfen ("executable"), stehen. Die ersten drei Zeichen gehören zum Dateieigentümer, die nächsten drei zur Gruppe; die letzte Dreiergruppe steht für alle übrigen Benutzer des Systems. Für die erste serielle Schnittstelle gilt hier also: Sie darf gelesen und geschrieben werden von root (dem Dateieigentümer) und von allen Mitgliedern der Gruppe dialout, die von der Distribution Debian Woody für dieses Device angelegt wurde. (Sollte die Gruppe auf Ihrem System anders heißen, gelten alle weiteren Angaben entsprechend.) Um zu überprüfen, ob Sie in diese Gruppe eingetragen sind, verwenden Sie (unter Ihrer normalen Kennung) das Kommando groups:

huhn@asteroid:~$ groups
users cdrom floppy sudo audio video dos cdwrite

Soll der Benutzer huhn in die Gruppe dialout eingetragen werden, editieren Sie als Superuser root die Datei /etc/group. Suchen Sie dort nach der Gruppe dialout und fügen den gewünschten User hinzu. (Sollen es mehrere Benutzer sein, können diese durch Kommata getrennt aneinandergereiht werden.) Der Eintrag in /etc/group lautet also:

dialout:x:20:huhn

Sollten Sie Shadow-Passwörter für Gruppen verwenden (Datei /etc/gshadow), müssen Sie auch dort den Benutzer zur Gruppe hinzufügen:

dialout ::huhn

Anschließend können Sie, damit die Änderung greift, als normaler Benutzer auf der Kommandozeile newgrp dialout tippen. Alternativ wird die neue Gruppe ebenfalls aktiv, wenn Sie sich neu einloggen.

Kasten 1: Schnittstellen-Bezeichnung unter Linux

Betrachten Sie das Verzeichnis /dev, finden Sie hier eine Reihe von Einträgen, die auf den ersten Blick unübersichtlich wirken. Diese Device-Dateien werden von Linux benutzt, um mit den Hardware-Komponenten (z. B. Festplatten, Floppy-Laufwerke, Maus, Soundkarte etc.) zu kommunizieren. Das erste Zeichen lautet entweder b (für "block device", blockorientiert) oder c (für "character device", zeichenorientiert) und steht für den Typ des Zugriffs. Die wichtigsten Device-Namen sind:

*/dev/hd* - IDE-Laufwerke (Festplatten, CD-ROMs etc.)

  • /dev/lp* - parallele Schnittstellen (Drucker etc.)
  • /dev/sd* - SCSI-Laufwerke
  • /dev/scd* - SCSI-CD-ROM-Laufwerke
  • /dev/tty* - virtuelle Terminals
  • /dev/ttyS* - serielle Schnittstellen

Einige dieser Device-Einträge sind als Links realisiert, z. B. können der Eintrag /dev/cdrom auf /dev/hdc (ein CD-ROM-Laufwerk, das am zweiten IDE-Bus hängt) und /dev/mouse auf /dev/ttyS1 (die zweite serielle Schnittstelle) zeigen.

Das USB-Device-Dateisystem wird wie das /proc-Dateisystem dynamisch generiert und ist normalerweise unter /proc/bus/usb zu finden. Die Verzeichnisse der Form "00n" enthalten die Schnittstellen für die jeweils aktiven USB-Geräte. In den beiden Dateien devices und drivers finden Sie eine Übersicht über alle angeschlossenen Geräte und die Ihnen eventuell zugeordneten Treiber. Der Kernel ist dafür zuständig, diese Verzeichnisse zu erzeugen (sofern USB-Unterstützung vorhanden ist). Da die Informationen in /proc/bus/usb/devices recht unübersichtlich sind, wird gerne die X-Anwendung usbview verwendet, um sich einen Überblick über angeschlossene Geräte zu verschaffen.

Abhängig von der Distribution, die Sie verwenden, kann die Zusammenarbeit mit USB unterschiedlich aussehen. Möglicherweise reicht es bei einigen Systemen aus, die Kamera an die USB-Buchse zu hängen und einzuschalten. Sollte das nicht so reibungslos klappen, zeigen wir hier einen möglichen Weg, mit photopc via USB auf die Kamera zuzugreifen. Überprüfen Sie zunächst die Zugriffsrechte im Verzeichnis /proc/bus/usb. Schließen Sie die Kamera an den USB-Port an, schalten Sie sie ein und tippen:

asteroid:~# ls -l /proc/bus/usb/001
total 0
-rw-rw-r--   1 root   root   18 Jul 31 17:19  001
-rw-rw-r--   1 root   root   18 Jul 31 17:19  002

Als einfacher User darf offenbar nicht mit der Kamera kommuniziert werden, da die Geräte beide dem Benutzer und der Gruppe root "gehören". Es sind aber nur ein paar Handgriffe nötig, um das zu ändern. Wie auch bei den Anpassungen zur seriellen Schnittstelle, editieren Sie als Superuser root die Datei /etc/group. Fügen Sie in diese eine neue Gruppe usb ein. Die Nummern für die Systemgruppen werden in der Regel von 0 bis 99 vergeben. Ab Ziffer 100 folgen User-Gruppen - Ausnahmen können vorkommen. Suchen Sie eine freie Nummer für die neue Gruppe aus (auf dem Testsystem wurde z. B. die 51 gewählt) und tragen Sie sie zusammen mit Ihrer Benutzerkennung ein:

usb:x:51:huhn

Auch hier gilt: Wird auf dem System mit Shadow-Passwörtern gearbeitet, müssen Sie in /etc/gshadow hinzufügen:

usb ::huhn

Jetzt fehlt noch ein Eintrag in der Datei /etc/fstab:

none /proc/bus/usb usbdevfs auto,devmode=0664,devgid=51   0   0

Damit werden die Dateirechte für die USB-Devices so modifiziert, dass Angehörige der Gruppe 51, also usb, schreiben und lesen dürfen. Für den Programmaufruf selbst gibt es ebenfalls eine Möglichkeit abzukürzen. Normalerweise muss der Parameter -u explizit angegeben werden, um photopc zu verraten, dass es den Universal Serial Bus verwenden soll. Mit dem in die Bash eingebauten Kommando alias sparen Sie Tipparbeit: Tragen Sie in die Datei .bashrc ein:

alias photopc='photopc -u'

Lesen Sie die veränderte .bashrc mit dem Aufruf source ~/.bashrc neu ein - fertig.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

763 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

title_2013_06

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Emacs als Psychologe
Emacs als Psychologe
Tim Schürmann, 21.05.2013 11:49, 0 Kommentare

Wer beim Schreiben in Emacs nicht mehr weiter weiß oder schier an einer Programmieraufgabe verzweifelt, der kann den eingebauten Psychologen um Rat fragen.

1966 entwickelte der Infor...

Aktuelle Fragen

Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 3 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...
lvm wieder loswerden
Peter Dibbern, 11.04.2013 16:28, 4 Antworten
Ich habe sämtliche alten Kisten ausgeschlachtet und aus der Teilen einen Rechner zusammengeschrau...