Digikam 0.7.1 - Fotos nur mit root?
Markus Pitha
- software
Hallo,
seit meinem letzten emerge -uD system, habe ich plötzlich das Problem, dass ich im Programm Digikam 0.7.1 die Fotos meiner Kamera (HP 635) nur mehr als Root entladen kann. Mir wurde gesagt, es hätte etwas mit udev 068 zu tun. Allerdings ist für mich udev noch immer etwas nicht so wirklich Durchschaubares.
Es kann also nur irgend ein Rechteproblem sein. Daraufhin habe ich versucht die Rechte des Shellscripts "usbcam" in /etc/hotplug/usb auf mich zu setzen, was nicht funktionierte. Was kann ich tun?
Markus.
Hallo Markus,
seit meinem letzten emerge -uD system, habe ich plötzlich das Problem, dass ich im Programm Digikam 0.7.1 die Fotos meiner Kamera (HP 635) nur mehr als Root entladen kann. Mir wurde gesagt, es hätte etwas mit udev 068 zu tun. Allerdings ist für mich udev noch immer etwas nicht so wirklich Durchschaubares.
Es kann also nur irgend ein Rechteproblem sein. Daraufhin habe ich versucht die Rechte des Shellscripts "usbcam" in /etc/hotplug/usb auf mich zu setzen, was nicht funktionierte. Was kann ich tun?
http://de.gentoo-wiki.com/Udev und http://de.gentoo-wiki.com/Udev_Rules lesen. Wenn das dort Beschriebene nicht klappt / hakt, bitte wieder mit genauer Beschreibung, was daran nicht klappt melden.
Grüße aus Barsinghausen,
Fabian
Hallo,
http://de.gentoo-wiki.com/Udev und http://de.gentoo-wiki.com/Udev_Rules lesen. Wenn das dort Beschriebene nicht klappt / hakt, bitte wieder mit genauer Beschreibung, was daran nicht klappt melden.
Nun, wie weiß ich denn, ob es wirklich an udev liegt? Es war nämlich nur eine Vermutung von jemanden. Gibt es vielleicht noch eine andere mögliche Fehlerursache, bevor ich hier anfange an udev herumzufrickeln?
Markus.
Ich habe es anhand der Regeln versucht, aber scheitere schon am Anfang. In /dev/usb wird nie irgendwas von einer Kamera angezeigt, obwohl diese online ist. Der USB-Drucker wird jedenfalls angezeigt. Das Verzeichnis muss also stimmen.
Markus.
Hallo Markus,
Ich habe es anhand der Regeln versucht, aber scheitere schon am Anfang. In /dev/usb wird nie irgendwas von einer Kamera angezeigt, obwohl diese online ist. Der USB-Drucker wird jedenfalls angezeigt. Das Verzeichnis muss also stimmen.
Die Kamera wird ja auch nicht in /dev/usb eingebunden, sondern unter /sys/block/sdX, wenn du scsi-blockdevices im Kernel hast, und die USB-Massenspeichermodule. Dann findest du mit den folgenden Befehlen heraus, wo sie genau hängt:
udevinfo -a -p /sys/block/sda
oder:
udevinfo -a -p /sys/block/sda/sda1
Damit definierst du dann erst die Regel, die die Kamera unter /dev/usbcam einhängen _würde_.
Grüße aus Barsinghausen,
Fabian
Hallo,
udevinfo -a -p /sys/block/sda
oder:
udevinfo -a -p /sys/block/sda/sda1
Ja, so steht es dort in der Beschreibung, aber bei mir sieht das wohl ganz anders aus. Ich habe kein /sys/block/sda
Zitat aus der Wiki:
Es ist nicht immer nötig das Verzeichnis in /sys per Hand zu finden. Wenn man ein Gerät ansteckt und es wird in /dev eine Gerätedatei erzeugt, dann kann mit diesen sich den Pfad zu dem /sys-Verzeichnis mit udevinfo ausgeben lassen.
Tja. Es wird aber in /dev keine Gerätedatei erzeugt, und nun?
Ich habe /dev einmal mit und einmal ohne angesteckter Kamera ausgeben lassen, und mit diff verglichen. Es hat sich nichts geändert. (Die Unterverzeichnisse wie zB pty oder pts habe ich nicht durchsucht)
P.S Das ist jetzt nämlich genau das, was ich mir dachte. Ich habe bisher den halben Vormittag für ein Problem investiert, dass vielleicht gar nicht mit meinem ursprünglichen Problem zusammenhängt.
Markus.
Hallo Markus,
udevinfo -a -p /sys/block/sdaoder:
udevinfo -a -p /sys/block/sda/sda1Ja, so steht es dort in der Beschreibung, aber bei mir sieht das wohl ganz anders aus. Ich habe kein /sys/block/sda
Zitat aus der Wiki:
Es ist nicht immer nötig das Verzeichnis in /sys per Hand zu finden. Wenn man ein Gerät ansteckt und es wird in /dev eine Gerätedatei erzeugt, dann kann mit diesen sich den Pfad zu dem /sys-Verzeichnis mit udevinfo ausgeben lassen.Tja. Es wird aber in /dev keine Gerätedatei erzeugt, und nun?
Das kann zwei Gründe haben: Du hast noch immer das dev-Filesystem aktiv, das immer alle denkbaren Files in /dev/ erzeugt. Wenn jetzt eines davon "real" wird, also auch etwas zu bedeuten hat, dann kann div das nicht merken, weil sich am File von aussen gesehen nichts ändert. Das dev-Filesystem kannst du m.W. im Kernel entweder auskompilieren oder beim Booten durch Übergabe von
gentoo=nodevfs
überbrücken. Wichtig ist natürlich, dass udev draufgespielt ist und funktioniert, sonst wirst du einfach 'nen Kernel-Panic bekommen, wenn keines der beiden Systeme gestartet werden kann. (Du bekommst die Panic nicht deswegen, sondern weil /dev/hdx nicht existiert und deine Root-Partition nicht gemountet werden kann, was für dich freilich auf dasselbe erstaunte Gesicht hinausliefe :))
Der zweite Grund ist, dass deine Kamera nicht erkannt wird, also entsprechende Treiber fehlen. Dazu sagt dir
dmesg | grep "usb"
mehr. Wenn da was von "unknown USB device" steht, dann wird sie nicht als Massenspeicher erkannt. Das kann ich mir zwar nicht vorstellen, solltest du aber mit letzter Sicherheit ausschließen wollen.
PS: Welche Sprache muss ich in [ code lang=xy ] für Shell-Skripte verwenden? Ich habe bash und shell ausprobiert, aber beide male sehe ich keinen Unterschied in der Darstellung.
Grüße aus Barsinghausen,
Fabian
Hallo,
also im Kernel habe ich /dev file system support deaktivert gehabt.
Bei eingesteckter Kamera bekomme ich bei einem dmseg | grep "usb" folgende Ausgabe, die sich von der Ausgabe bei nicht eingesteckter Kamera mit folgender Zeile unterscheidet:
usb 2-2: new full speed USB device using uhci_hcd and address 3
Hmmm. Wie weiß ich jetzt, welche Gerätedatei das ist?
Markus.
Hallo Markus,
also im Kernel habe ich /dev file system support deaktivert gehabt.
Bei eingesteckter Kamera bekomme ich bei einem dmseg | grep "usb" folgende Ausgabe, die sich von der Ausgabe bei nicht eingesteckter Kamera mit folgender Zeile unterscheidet:usb 2-2: new full speed USB device using uhci_hcd and address 3
Hmmm. Wie weiß ich jetzt, welche Gerätedatei das ist?
Wenn du SCSI-Blockdevices aktiviert hast, dann mit
udevinfo -a -p /sys/block/sda
oder:
udevinfo -a -p /sys/block/sda/sda1
So das nicht geht hilft es nur noch Digikam anzuwerfen und beim Transfer der Bilder als root zu schauen, welche Files das Programm geöffnet hat. Siehe hierzu "lsof". Ich kann dir nämlich ohen eingehenden Blick in den Sourcecode der Applikation sagen, wie Digikam den "Aufenthaltsort" der Kamera herausfindet. Ich würde sogar vermuten, dass die Suchregeln da hardgecodet sind.
Grüße aus Barsinghausen,
Fabian
Hallo,
Die Lösung war folgende: Nach der Umbenennung von /etc/hotplug/usb/usbcam-gphoto2.usermap in /etc/hotplug/usb/usbcam.usermap ist die Ausgabe von lsusb hier einzutragen. Ob jetzt der User auch noch zusätzlich in der Gruppe "usb" sein muss, weiß ich nicht. Ich habe mich jedenfalls davor schon der Gruppe usb hinzugefügt.
Markus.