Hallo!
Ich versuche eine Camera (Kodak DX4530) mit gphoto2 gesprächig zu machen. Das klappt auch, allerding nur als root. Wenn ich als normaler Nutzer z.B gphoto2 -L aufrufe (was den Inhalt des Kameraspeichers wiedergeben soll), gibts folgende Meldung:
tom@zarch:~> gphoto2 --debug -L 0.000155 main(2): BITTE IMMER FOLGENDE ZEILE EINFÜGEN WENN DEBUG MESSAGES AN DIE MAILINGLISTE GESCHICKT WERDEN: 0.000505 main(2): gphoto2 2.1.3 0.000647 main(2): gphoto2 has been compiled with the following options: 0.000808 main(2): + gcc (C compiler used) 0.000954 main(2): + no popt (for handling command-line parameters) 0.001112 main(2): + exif (for displaying EXIF information) 0.001267 main(2): + no cdk (for accessing configuration options) 0.001424 main(2): + aa (for displaying live previews) 0.001575 main(2): + jpeg (for displaying live previews in JPEG format) 0.001736 main(2): + no readline (for easy navigation in the shell) 0.001898 main(2): libgphoto2 2.1.3 0.002066 main(2): libgphoto2 has been compiled with the following options: 0.002229 main(2): + gcc (C compiler used) 0.002375 main(2): + no EXIF (for special handling of EXIF files) 0.002533 main(2): + no ltdl (working around buggy libltdl, eh? :-) 0.002692 main(2): + /proc/meminfo (adapts cache size to memory available) 0.002861 main(2): libgphoto2_port 0.5.1 0.003006 main(2): libgphoto2_port has been compiled with the following options: 0.003248 main(2): + gcc (C compiler used) 0.003426 main(2): + USB (for USB cameras) 0.003601 main(2): + serial (for serial cameras) 0.003779 main(2): + no resmgr (serial port access and locking) 0.003966 main(2): + no baudboy (serial port locking) 0.004148 main(2): + no ttylock (serial port locking) 0.004330 main(2): + no lockdev (serial port locking) 0.004511 main(2): + no ltdl (working around buggy libltdl, eh? :-) 0.004705 foreach(2): Executing action 'List Files' for folder '/'. 0.005441 gphoto2-camera(2): Listing files in '/'... 0.005824 gphoto2-camera(2): Initializing camera... 0.006028 gphoto2-port-usb(1): Looking for USB device (vendor 0x40a, product 0x576)... found. 0.006242 gphoto2-camera(2): Loading '/usr/local/lib/gphoto2/2.1.3/libgphoto2_ptp2.so'... 0.006676 gphoto2-port(2): Opening USB port... 0.007016 gphoto2-port(0): Konnte Schnittstelle 0 nicht reservieren (Die Operation ist nicht erlaubt). Stellen Sie sicher, dass kein anderes Programm oder Kernelmodul (z.B. dc2xx oder stv680) das Gerät verwendet und Sie Lese- und Schreibrechte für das Gerät haben. 0.007483 context(0): Ein Fehler trat in der IO-Bibliothek auf (»Konnte das USB-Gerät nicht beanspruchen«): Konnte Schnittstelle 0 nicht reservieren (Die Operation ist nicht erlaubt). Stellen Sie sicher, dass kein anderes Programm oder Kernelmodul (z.B. dc2xx oder stv680) das Gerät verwendet und Sie Lese- und Schreibrechte für das Gerät haben.
*** Fehler *** Ein Fehler trat in der IO-Bibliothek auf (»Konnte das USB-Gerät nicht beanspruchen«): Konnte Schnittstelle 0 nicht reservieren (Die Operation ist nicht erlaubt). Stellen Sie sicher, dass kein anderes Programm oder Kernelmodul (z.B. dc2xx oder stv680) das Gerät verwendet und Sie Lese- und Schreibrechte für das Gerät haben. *** Fehler (-53: »Konnte das USB-Gerät nicht beanspruchen«) ***
Für Debug-Meldungen verwenden Sie bitte die Option »--debug«. Diese Meldungen können Ihnen helfen, eine Lösung für Ihr Problem zu finden. Wenn Sie jedoch Fehler- oder Debug-Meldungen an die Mailingliste gphoto-devel@lists.sourceforge.net schicken wollen, so starten sie gphoto2 bitte wie folgt:
env LANG=C gphoto2 --debug --debug -L
Please make sure there is sufficient quoting around the arguments.
0.012913 gp-camera(2): Freeing camera... 0.013103 gphoto2-port(2): Freeing port... 0.013280 gphoto2-port(2): Closing port... 0.013508 gphoto2-port(0): Konnte Schnittstelle 0 nicht freigeben (Die Operation ist nicht erlaubt). 0.013803 libgphoto2/gphoto2-filesys.c(2): Clearing fscache LRU list... 0.014003 libgphoto2/gphoto2-filesys.c(2): fscache LRU list already empty 0.014197 gphoto2-filesystem(2): Internally deleting all folders from '/'...
Ich weiß an der Stelle nicht weiter. Einen USB Stick kann ich als Normalo nutzen. Als root klappt es mit der Kamera, wie gesagt. Was kann ich da vielleicht noch machen?
Gruß und Danke, Tom Guder
On Wed, 10 Dec 2003 12:38:57 +0100 Tom Guder tom-guder@web.de wrote:
Hallo!
Ich versuche eine Camera (Kodak DX4530) mit gphoto2 gesprächig zu machen. Das klappt auch, allerding nur als root. Wenn ich als normaler Nutzer z.B gphoto2 -L aufrufe (was den Inhalt des Kameraspeichers wiedergeben soll), gibts folgende Meldung:
tom@zarch:~> gphoto2 --debug -L 0.000155 main(2): BITTE IMMER FOLGENDE ZEILE EINFÜGEN WENN DEBUG MESSAGES AN DIE MAILINGLISTE GESCHICKT WERDEN: 0.000505 main(2): gphoto2 2.1.3 0.000647 main(2): gphoto2 has been compiled with the following options: 0.000808 main(2): + gcc (C compiler used) 0.000954 main(2): + no popt (for handling command-line parameters) 0.001112 main(2): + exif (for displaying EXIF information) 0.001267 main(2): + no cdk (for accessing configuration options) 0.001424 main(2): + aa (for displaying live previews) 0.001575 main(2): + jpeg (for displaying live previews in JPEG format) 0.001736 main(2): + no readline (for easy navigation in the shell) 0.001898 main(2): libgphoto2 2.1.3 0.002066 main(2): libgphoto2 has been compiled with the following options: 0.002229 main(2): + gcc (C compiler used) 0.002375 main(2): + no EXIF (for special handling of EXIF files) 0.002533 main(2): + no ltdl (working around buggy libltdl, eh? :-) 0.002692 main(2): + /proc/meminfo (adapts cache size to memory available) 0.002861 main(2): libgphoto2_port 0.5.1 0.003006 main(2): libgphoto2_port has been compiled with the following options: 0.003248 main(2): + gcc (C compiler used) 0.003426 main(2): + USB (for USB cameras) 0.003601 main(2): + serial (for serial cameras) 0.003779 main(2): + no resmgr (serial port access and locking) 0.003966 main(2): + no baudboy (serial port locking) 0.004148 main(2): + no ttylock (serial port locking) 0.004330 main(2): + no lockdev (serial port locking) 0.004511 main(2): + no ltdl (working around buggy libltdl, eh? :-) 0.004705 foreach(2): Executing action 'List Files' for folder '/'. 0.005441 gphoto2-camera(2): Listing files in '/'... 0.005824 gphoto2-camera(2): Initializing camera... 0.006028 gphoto2-port-usb(1): Looking for USB device (vendor 0x40a, product 0x576)... found. 0.006242 gphoto2-camera(2): Loading '/usr/local/lib/gphoto2/2.1.3/libgphoto2_ptp2.so'... 0.006676 gphoto2-port(2): Opening USB port... 0.007016 gphoto2-port(0): Konnte Schnittstelle 0 nicht reservieren (Die Operation ist nicht erlaubt). Stellen Sie sicher, dass kein anderes Programm oder Kernelmodul (z.B. dc2xx oder stv680) das Gerät verwendet und Sie Lese- und Schreibrechte für das Gerät haben. 0.007483 context(0): Ein Fehler trat in der IO-Bibliothek auf (»Konnte das USB-Gerät nicht beanspruchen«): Konnte Schnittstelle 0 nicht reservieren (Die Operation ist nicht erlaubt). Stellen Sie sicher, dass kein anderes Programm oder Kernelmodul (z.B. dc2xx oder stv680) das Gerät verwendet und Sie Lese- und Schreibrechte für das Gerät haben.
*** Fehler *** Ein Fehler trat in der IO-Bibliothek auf (»Konnte das USB-Gerät nicht beanspruchen«): Konnte Schnittstelle 0 nicht reservieren (Die Operation ist nicht erlaubt). Stellen Sie sicher, dass kein anderes Programm oder Kernelmodul (z.B. dc2xx oder stv680) das Gerät verwendet und Sie Lese- und Schreibrechte für das Gerät haben. *** Fehler (-53: »Konnte das USB-Gerät nicht beanspruchen«) ***
Für Debug-Meldungen verwenden Sie bitte die Option »--debug«. Diese Meldungen können Ihnen helfen, eine Lösung für Ihr Problem zu finden. Wenn Sie jedoch Fehler- oder Debug-Meldungen an die Mailingliste gphoto-devel@lists.sourceforge.net schicken wollen, so starten sie gphoto2 bitte wie folgt:
env LANG=C gphoto2 --debug --debug -L
Please make sure there is sufficient quoting around the arguments.
0.012913 gp-camera(2): Freeing camera... 0.013103 gphoto2-port(2): Freeing port... 0.013280 gphoto2-port(2): Closing port... 0.013508 gphoto2-port(0): Konnte Schnittstelle 0 nicht freigeben (Die Operation ist nicht erlaubt). 0.013803 libgphoto2/gphoto2-filesys.c(2): Clearing fscache LRU list... 0.014003 libgphoto2/gphoto2-filesys.c(2): fscache LRU list already empty 0.014197 gphoto2-filesystem(2): Internally deleting all folders from '/'...
Vielleicht reicht es, wenn du die Zugriffsrechte für /dev/<Gerät> so änderst, dass du es mit deiner Nutzerkennung ansprechen kannst.
Ich hatte mal bei einer Kamera das Problem, dass er das Modul stv680 immer automatisch beim anstecken der Kamera geladen hat, dann konnte man nicht auf sie zugreifen, sondern musste erst das stv680 wieder enfernen. Aber wenn du als root auf die Kamera zugreifen kannst, ist das wahrscheinlich nicht dein Problem.
Mit freundlichem Gruß,
Friedrich
Am Mittwoch, 10. Dezember 2003 14:39 schrieb phriedrich:
Vielleicht reicht es, wenn du die Zugriffsrechte für /dev/<Gerät> so änderst, dass du es mit deiner Nutzerkennung ansprechen kannst.
Ich weiß nicht für welches Gerät ich die Rechte änder muß. Wie finde ich das raus?
Gruß, Tom
On 10.12.03 Tom Guder (tom-guder@web.de) wrote:
Am Mittwoch, 10. Dezember 2003 14:39 schrieb phriedrich:
Moin,
Vielleicht reicht es, wenn du die Zugriffsrechte für /dev/<Gerät> so änderst, dass du es mit deiner Nutzerkennung ansprechen kannst.
Ich weiß nicht für welches Gerät ich die Rechte änder muß. Wie finde ich das raus?
Im Ernstfall halt strace gphoto2 <args> 2> ~/logfile und dann in logfile schaue, welche Devices er versucht zu öffnen und wo er stirbt.
H.
Am 10. Dezember 2003 schrieb Hilmar Preusse:
On 10.12.03 Tom Guder (tom-guder@web.de) wrote:
Am Mittwoch, 10. Dezember 2003 14:39 schrieb phriedrich:
Moin,
Vielleicht reicht es, wenn du die Zugriffsrechte für /dev/<Gerät> so änderst, dass du es mit deiner Nutzerkennung ansprechen kannst.
Ich weiß nicht für welches Gerät ich die Rechte änder muß. Wie finde ich das raus?
Im Ernstfall halt strace gphoto2 <args> 2> ~/logfile und dann in logfile schaue, welche Devices er versucht zu öffnen und wo er stirbt.
Bringt nur nix, wenn der Fehler in einem geforken Kindprozess auftritt, deshalb besser: $ strace -ff -o logfile.txt gphoto <args>
Freundlich grüßend,
Erik
so... nach vielem greppen in der log habe ich rausgefunden, daß die Dateien und Verzeichnisse in /proc/usb schuldig sind ... diese können vom Normalnutzer nicht gelesen werden. /proc wird doch aber immer nach dem Systemstart neu angelegt?! Wie kann ich diese Rechte dauerhaft ändern?
Gruß, Tom
Hi!
Am 2003-12-10 23:16 +0100 schrieb Tom Guder:
so... nach vielem greppen in der log habe ich rausgefunden, daß die Dateien und Verzeichnisse in /proc/usb schuldig sind ... diese können vom Normalnutzer nicht gelesen werden. /proc wird doch aber immer nach dem Systemstart neu angelegt?!
Richtig.
Wie kann ich diese Rechte dauerhaft ändern?
Ich verwende hotplug. Ich habe mir folgende Datei angelegt:
------ /etc/hotplug/usb/camera -------- #!/bin/bash if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ] then chmod 555 /proc/bus chmod 660 ${DEVICE} chown root.camera ${DEVICE} fi ---------------------------------------
Das erlaubt Lese- und Schreibzugriff für die Gruppe camera. Du kannst den chown natürlich ummodeln, wenn Du z. B. nur Dir selber Zugriff erlauben willst. Damit das funktioniert, muss Deine Kamera natürlich in /etc/hotplug/usb.usermap eingetragen sein.
Man kann die Rechte nicht schon beim Booten ändern, weil es da diese Gerätedateien noch gar nicht gibt.
Pitti
On Wed, Dec 10, 2003 at 12:38:57PM +0100, Tom Guder wrote:
Hallo!
Hi Tom,
0.006242 gphoto2-camera(2): Loading '/usr/local/lib/gphoto2/2.1.3/libgphoto2_ptp2.so'... 0.006676 gphoto2-port(2): Opening USB port... 0.007016 gphoto2-port(0): Konnte Schnittstelle 0 nicht reservieren (Die Operation ist nicht erlaubt). Stellen Sie sicher, dass kein anderes Programm oder Kernelmodul (z.B. dc2xx oder stv680) das Gerät verwendet und Sie Lese- und Schreibrechte für das Gerät haben.
^^^ Wer lesen kann ist klar im Vorteil ;)
Das Gerät könntest du herausbekommen indem du das Programm mit strace startest (schau einfach mal welche Datei beim Öffnen -EPERM zurückgibt) oder schau einfach mal ob /dev/usb/dc2xx0 existiert (letzteres ergab ein gg:gphoto usb device)
Ciao, Tobias
lug-dd@mailman.schlittermann.de