#1 14.07.2005 21:36:50

quiptime
Gast

/mnt/camera - Dimage Z3 - HowTo

Dieser Thread nimmt Bezug auf

http://www.laber-land.de/?page=Postin...hread=4123

Auch mit hwd, dbus, hal wird Die Kamera Dimage Z3 vom System nicht erkannt. Grund:

In der Datei /etc/udev/rules.d/udev.rules ist dieses USB - Gereat nicht gelistet. Um diesen Umstand zu aendern muss man also die Dimage Z3 in der Liste der moeglichen USB - Geraete aufnehmen. Nun sollte man das aber nicht in der Datei /etc/udev/rules.d/udev.rules tun. Bei einem Update wird udev.rules ueberschrieben und alle eigenen Definitionen waeren verloren. Aus diesem Grund legt man sich eine eigene Datei an, um USB - Geraete zu definieren. Beim Namen dieser Date muss man einen Namen waehlen, der diese Datei vor der Datei udev.rules im Verzeichnis listet. Der Name 10-udev.rules ist einen moegliche Variante.

Also diese Datei anlegen:

touch /etc/udev/rules.d/10-udev.rules

Nun muss in dieser Datei die Kamera Dimage Z3 eingetragen werden. Dazu benoetigt man Informationen uber dieses USB - Geraet.

Nicht vergessen. Die Kamera anstecken, einschalten und auf den USB - Modus umschalten.

Man kann vorher prufen, ob die Kamera ueberhaupt "von USB" erkannt wird:

usbview

Wenn die Kamera vom USB Viewer gemeldet wird ist es OK.

Nun kann man noch pruefen, wie die Kamera im System angemeldet wurde. Die Logdateien sind dazu eine gute Quelle:

tail -n 20 /var/log/messages.log

Man sollte etwa folgende Ausgabe am Ende erhalten:

Jul 14 18:37:38 www usb 3-2.2: USB disconnect, address 5
Jul 14 19:04:27 www usb 3-2.2: new full speed USB device using uhci_hcd and address 6
Jul 14 19:04:28 www scsi3 : SCSI emulation for USB Mass Storage devices
Jul 14 19:04:33 www Vendor: KM        Model: DiMAGE Z3         Rev: 1.00
Jul 14 19:04:33 www Type:   Direct-Access                      ANSI SCSI revision: 00
Jul 14 19:04:33 www SCSI device sdb: 1002263 512-byte hdwr sectors (513 MB)
Jul 14 19:04:33 www sdb: Write Protect is off
Jul 14 19:04:33 www SCSI device sdb: 1002263 512-byte hdwr sectors (513 MB)
Jul 14 19:04:33 www sdb: Write Protect is off
Jul 14 19:04:33 www /dev/scsi/host3/bus0/target0/lun0: p1
Jul 14 19:04:33 www Attached scsi removable disk sdb at scsi3, channel 0, id 0, lun 0
Jul 14 19:04:34 www scsi.agent[10332]: disk at /devices/pci0000:00/0000:00:11.2/usb3/3-2/3-2.2/3-2.2:1.0/host3/target3:0:0/3:0:0:0

In diesem Beispiel hat sich die Kamera also als "SCSI device sdb" gemeldet. Ebenso waere auch "SCSI device sda" oder "SCSI device sdc" moeglich.

Nun kann man noch die Speicherkarte "befragen":

fdisk /dev/sdb

Danach p eingeben und es kann folgende Info erscheinen:

Platte /dev/sdb: 513 MByte, 513158656 Byte
9 Köpfe, 40 Sektoren/Spuren, 2784 Zylinder
Einheiten = Zylinder von 360 × 512 = 184320 Bytes

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1               1        2785      501131+   6  FAT16

In meinem Fall dieses Beispiels hat die Kamera einen Speicherchip mit 512 MB.

So, nun hat man genuegend Infos zur Kamera. Nicht alle werden benoetigt.

Die benoetigten Infos fuer den Eintrag in der Datei /etc/udev/rules.d/10-udev.rules bekommt man folgendermassen:

udevinfo -a -p /sys/block/sdb

Hier die Info aus /var/log/messages.log verwenden. Also das Device angeben, dass sich im System gemeldet hat. sda, sdb, sdc, sdd usw.

Die hiermit erhaltene Info ist etwas umfangreich. Man benoetigt die Infos aus den oberen 2 Bloecken der Ausgabe. Die Ausgabe in meinem Beispiel, gekuerzt auf die oberen 3 Bloecke:

udevinfo starts with the device the node belongs to and then walks up the
device chain, to print for every device found, all possibly useful attributes
in the udev key format.
Only attributes within one device section may be used together in one rule,
to match the device for which the node will be created.

device '/sys/block/sdb' has major:minor 8:16
  looking at class device '/sys/block/sdb':
    SUBSYSTEM=="block"
    SYSFS{dev}=="8:16"
    SYSFS{range}=="16"
    SYSFS{removable}=="1"
    SYSFS{size}=="1002263"
    SYSFS{stat}=="     100       70      170     1823        0        0        0        0        0     1823     1823"

follow the "device"-link to the physical device:
  looking at the device chain at '/sys/devices/pci0000:00/0000:00:11.2/usb3/3-2/3-2.2/3-2.2:1.0/host3/target3:0:0/3:0:0:0':
    BUS=="scsi"
    ID=="3:0:0:0"
    DRIVER=="sd"
    SYSFS{detach_state}=="0"
    SYSFS{device_blocked}=="0"
    SYSFS{max_sectors}=="240"
    SYSFS{model}=="DiMAGE Z3       "
    SYSFS{queue_depth}=="1"
    SYSFS{queue_type}=="none"
    SYSFS{rev}=="1.00"
    SYSFS{scsi_level}=="3"
    SYSFS{state}=="running"
    SYSFS{timeout}=="30"
    SYSFS{type}=="0"
    SYSFS{vendor}=="KM      "

  looking at the device chain at '/sys/devices/pci0000:00/0000:00:11.2/usb3/3-2/3-2.2/3-2.2:1.0/host3/target3:0:0':
    BUS==""
    ID=="target3:0:0"
    DRIVER=="unknown"
    SYSFS{detach_state}=="0"

Wir benoetigen einzig die Info von SYSFS{model}

Damit hat sich die Dimage gemeldet. Eigentlich naheliegend. Aber bei anderen Kameras , oder USB - Stick's, muss das nicht so sein. Ein von mir genutzter Stick meldet sich nicht etwa wie zu erwarten mit usbstick sondern mit "2004-02-23". Also, die Info von SYSFS{model} traegt man nun in 10-udev.rules ein. Leerzeichen nach dem Namen weglassen.

Da sich die Kamera aber beim naechsten Mal auch als anderes Device melden kann (z. Bsp. Jetzt als sda und beim naechsten Mal als sdb) traegt man diesem Umstand vorbeugend mit der Art des Eintrages Rechnung. Wer an seinem Rechner wechselnd mit mehreren USB - Geraeten arbeitet muesste also jedes Mal erst pruefen, als was fuer ein Device sich das jeweilige Geraet gerade im System meldet. Mit Hilfe der KonfigDateien /etc/udev/rules.d/10-udev.rules und /etc/udev/rules.d/udev.rules wird die Zuordnung auf bestimmte und damit schon bekannte /dev - Eintraege zugeordnet.

Habe ich verschiedene USB - Stick's zu /dev/usbstick -> /mnt/usbstick

Habe ich verschiedene Kameras zu /dev/camera -> /mnt/camera

Der Eintrag:

BUS="scsi", KERNEL="sd?1", SYSFS{model}="DiMAGE Z3", NAME="camera"

Das Fragezeichen ist der Rechnung tragende Faktor. Bei diesem Eintrag wird festgelegt, dass man die Kamera unter /mnt/camera mounten moechte. Beliebige andere Namen sind an dieser Stelle moeglich. Nur muss man einen anderen Namen als camera bei den folgenden letzten Schritten beachten!

Wer sich bei dem Eintrag in 10-udev.rules mehr an den schon vorhandenen Eintraegen in udev.rules orientieren moechte kann auch Folgendes fuer die Dimage/Kamera eintragen:

BUS="scsi", KERNEL="sd[a-z][0-9]*", SYSFS{model}="DiMAGE Z3", NAME="camera"

Auch damit ist der "verschiedene Devices - Anmeldung" des selben USB -Geraetes Rechnung getragen.

Den Mountpoint anlegen:

mkdir /mnt/camera

Den Mountpoint in der fstab eintragen:

nano -w /etc/fstab

Folgende Zeile eintragen:

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

Ich denke, die meisten Speicherkarten sind mit FAT16 formatiert und deswegen der Dateisystemtyp vfat.

Geschafft. Das war es. Nun sollte man auf die Dimage Z3 direkt zugreifen koennen.

Dazu die Kamera ab- und wieder anstecken und wenn sie schon im Standby ist wieder einschalten. Die Kamera muss sich ja mit der geanderten USB - Konfiguration am System anmelden.

Wie bereits weiter oben gesagt, das Ganze hier kann auch auf andere Kameras angewendet werden.

Gruss quiptime

Beitrag geändert von Guest (15.07.2005 01:13:33)

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums