Re: Wie CF-Card unter 2.6 und udev korrekt mounten?
Am Samstag 09 Oktober 2004 19:34 schrieb Dirk Salva:
> On Sat, Oct 09, 2004 at 01:00:08PM +0200, Robert Rakowicz wrote:
> > Ist relativ einfach zu erklären. Damit wird sichergestellt, dass
> > eine CF-Kerte immer als /mnt/cfdisk erreichbar ist. Da bei USB
> > Storage Geräte also Festplatten, USB-Sticks, Card-Reader als SCSI
> > Platten dem User zur Verfügung gestellt werden, geht es leider nach
> > dem Motto wer zuerst kommt, malt zuerst. Schließt man die Geräte in
> > etwas anderer Reihenfolge und schon ist alles durcheinander.
> > U.a dafür hat man sich udev ausgedacht.
>
> Aha. Und was waeren hierbei "Model" und "Vendor", die ich ja in
> Deinen Zeilen noch eintragen muesste?
>
> kernel: usb 1-2: new full speed USB device using address 2
> kernel: scsi1 : SCSI emulation for USB Mass Storage devices
> kernel: Vendor: ICSI Model: CF Card CF Rev: 1.6B
> kernel: Type: Direct-Access ANSI SCSI
> revision: 02
> kernel: Attached scsi removable disk sda at scsi1, channel 0, id 0,
> lun 0
Hallo Dirk,
Ich habe meinen MP3Player über die Speichergröße erfasst:
## A mp3player.MP3Player
BUS="usb", SYSFS{size}="499200" , NAME="yamakawa%n" , MODE=0770 ,
GROUP=floppy
BUS="usb", SYSFS{size}="1002496" , NAME="sdcard%n" , MODE=0770 ,
GROUP=floppy
Du solltest es über die LUN versuchen, oder über diese strings:
/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0/host1/1:0:0:1
da sich da immer die letzte Ziffer unterscheidet.
Da schaust Du unter /sys nach, um den Suchstring zu finden, den Du in
den geschweiften Klammern einsetzen mußt ( SYSFS{String}="Wert" ).
Darüber solltest Du das Ding eindeutig identifizieren können, und
entsprechend nNamen wie CFcard, SDcard etc. für das device unter /dev
vergeben können. Das muß dann noch in die fstab.
Das ist mir zugegeben auch noch schleierhaft
/sys/bus/pci/devices/0000:00:07.3/usb2/2-1/2-1:1.0/host0/0:0:0:0/block/sda1/dev
hat bei mir z.B. einen eindeutig anderen Wert (8:1), als
/sys/bus/pci/devices/0000:00:07.3/usb2/2-1/2-1:1.0/host0/0:0:0:1/block/sdb1/dev
(8:17)
Es müsste also darüber genauso wie über {size} zu definieren sein.
BUS="usb", SYSFS{dev}="8:1" , NAME="yamakawa_test%n" , MODE=0770 ,
GROUP=floppy
BUS="usb", SYSFS{size}="8:17" , NAME="sdcard_test%n" , MODE=0770 ,
GROUP=floppy
Ich würde aber auch gerne wissen, wie man das einfach über die lun oder
den EndPoint (lsusb, usbview) ermittelt und in udev.rules einträgt.
Ich merke nämlich gerade, dass die Identifikation über dev nur zur
hälfte funktioniert
ls /dev/*test*
/dev/yamakawa_test1
sdcard_test? erscheint nämlich nicht, solte aber. Vielleicht findest Du
aber etwas, wie ich z.B. mit {size}, um das device eindeutig zu
identifizieren.
%b %c %e aus man udev könnten vielleicht noch herangezogen werden.
PROGRAM kannst Du vielleicht nutzen.
Hier ein paar Beispiele aus der udev.rules:
# if /sbin/scsi_id returns "OEM 0815" device will be called disk1
BUS="scsi", PROGRAM="/sbin/scsi_id", RESULT="OEM 0815",
NAME="disk1"
# create all 15 partitions of a USB flash card reader
# note the trailing spaces in the attribute, use udevinfo(8) to examine
your device
BUS="scsi", SYSFS{model}="CF/MD ",
NAME{all_partitions}="compactflash"
Vielleicht hilft das weiter:
http://www.reactivated.net/udevrules.php
Bei mir gibt das ganze folgende Unterscheidungsmerkmale:
udevinfo -a -p /sys/block/sda > sda.out && udevinfo -a -p /sys/block/sdb
> sdb.out && diff -s sda.out sdb.out
(Auszug)
< SYSFS{dev}="8:0"
> SYSFS{dev}="8:16"
< SYSFS{size}="499200"
> SYSFS{size}="1002496"
< ID="4:0:0:0"
> ID="4:0:0:1"
ciao
Gerhard
Reply to: