Deshalb gebe ich jetzt mal einfach ein Beispiel wie ich vorgehe, und ihr
könnt mir dann hoffentlich sagen, wo ich falsch liege.
Erstmal, das Howto zum Regelschreiben ist ja wohl hoffnungslos veraltet.
Aber hat immer noch gute Tipps.
Ich benutze ein AMD64 Debian System auf testing.
ii udev 0.087-2
Ich habe einen USB-Stick mit drei Partitionen darauf.
Eingesteckt wird er idR mit sde1-3 erkannt. Dafür möchte ich jetzt
Symlinks drauf haben.
Als erstes mache ich "udevinfo -a -p /sys/block/sde/"
Unter anderem bekomme ich folgendes:
BUS=="scsi"
DRIVER=="sd"
SYSFS{ioerr_cnt}=="0x4"
SYSFS{iodone_cnt}=="0x2d"
SYSFS{iorequest_cnt}=="0x2d"
SYSFS{iocounterbits}=="32"
SYSFS{timeout}=="30"
SYSFS{state}=="running"
SYSFS{rev}=="2.00"
SYSFS{model}=="Flash Disk "
SYSFS{vendor}=="OTi "
Ich gehe jetzt in /etc/udev/rules.d und erstelle eine Datei 000_myrules
mit folgender Zeile:
BUS="scsi", KERNEL="sd?1", SYSFS{model}="Flash Disk ",
SYSFS{vendor}=="OTi ", NAME{all_partitions}="%k",
SYMLINK="usbstick%d"
Laut dem howto sollte ich jetzt udevstart machen, aber die Datei gibt es
nicht mehr.
Also mache ich udevsynthesize, was anscheinend dessen Nachfolger ist.
Ich entferne den USB-Stick.
/etc/init.d/udev restart
(nur um auf Nummer Sicher zu gehen)
Ich stecke den USB-Stick wieder ein.
ls -al /dev/sde*
brw-rw---- 1 root floppy 8, 64 Apr 5 02:43 /dev/sde
brw-rw---- 1 root floppy 8, 65 Apr 5 02:43 /dev/sde1
brw-rw---- 1 root floppy 8, 66 Apr 5 02:43 /dev/sde2
brw-rw---- 1 root floppy 8, 67 Apr 5 02:43 /dev/sde3
ls -al /dev/u*
crw-rw-rw- 1 root root 1, 9 Apr 4 20:55 /dev/urandom
Es hat sich also nichts getan.
Habe ich irgendwas grundsätzliches übersehen?
Ich wollte auch noch folgendes Probieren:
KERNEL=="ttyS0" NAME="modem"
Hat auch nichts bewirkt.
Ich habe es auch noch mit dem Erhöhen des Loglevels probiert, aber ich
habe keine Ahnung, wo diese Logs dann landen.
Für Hilfe wäre ich wirklich dankbar.
--
Lehmeier Michael (Nightshade Dragon UDIC)
8:00 - 12:00 : Frohlocken!
12:00 - 20:00 : Hosianna singen!
> Erstmal, das Howto zum Regelschreiben ist ja wohl hoffnungslos veraltet.
Welches Howto? Es gibt mehrere davon.
> Ich habe einen USB-Stick mit drei Partitionen darauf.
> Eingesteckt wird er idR mit sde1-3 erkannt. Dafür möchte ich jetzt
> Symlinks drauf haben.
> Als erstes mache ich "udevinfo -a -p /sys/block/sde/"
> Unter anderem bekomme ich folgendes:
> BUS=="scsi"
> DRIVER=="sd"
> SYSFS{ioerr_cnt}=="0x4"
> SYSFS{iodone_cnt}=="0x2d"
> SYSFS{iorequest_cnt}=="0x2d"
> SYSFS{iocounterbits}=="32"
> SYSFS{timeout}=="30"
> SYSFS{state}=="running"
> SYSFS{rev}=="2.00"
> SYSFS{model}=="Flash Disk "
> SYSFS{vendor}=="OTi "
> Ich gehe jetzt in /etc/udev/rules.d und erstelle eine Datei 000_myrules
> mit folgender Zeile:
> BUS="scsi", KERNEL="sd?1", SYSFS{model}="Flash Disk ",
> SYSFS{vendor}=="OTi ", NAME{all_partitions}="%k",
> SYMLINK="usbstick%d"
Ist diese unterschiedliche Anzahl Leerzeichen nach "Flash Disk" und
"OTi" beim Copy-and-Paste passiert? Oder hat Dein Editor womöglich Tabs
aus den Leerzeichen gemacht?
> Laut dem howto sollte ich jetzt udevstart machen, aber die Datei gibt es
> nicht mehr.
Hier gibt's das noch (Gentoo, udev-087).
> Also mache ich udevsynthesize, was anscheinend dessen Nachfolger ist.
Gibt's hier nicht.
> Ich entferne den USB-Stick.
> /etc/init.d/udev restart
> (nur um auf Nummer Sicher zu gehen)
KERNEL=="ttyS0", SYMLINK+="modem", MODE="0660", OWNER="fax", GROUP="modem"
tut's hier.
> Habe ich irgendwas grundsätzliches übersehen?
Evtl. hängt's mit der Reihenfolge zusammen, in der diese *.rules
abgearbeitet werden. Dein 00-*.rules wird als erstes gelesen, d.h. die
*.rules aus der Distribution kommen danach und bügeln Deine Änderungen
evtl. wieder über.
> Ich wollte auch noch folgendes Probieren:
> KERNEL=="ttyS0" NAME="modem"
> Hat auch nichts bewirkt.
Da fehlt das Komma.
> Ich habe es auch noch mit dem Erhöhen des Loglevels probiert, aber ich
> habe keine Ahnung, wo diese Logs dann landen.
Irgendwo in /var/log, würde ich mal grob schätzen. "ls -lrt" zeigt die
zuletzt geänderten Dateien am Ende - eine davon müsste es sein.
Michael
Das in der Dokumentation von udev mitgeliefert wird.
Zumindest in der Debian Distribution.
Von anderen Howtos wird auch oft auf dieses verwiesen.
/usr/share/doc/udev/writing_udev_rules/index.html
>> Laut dem howto sollte ich jetzt udevstart machen, aber die Datei gibt es
>> nicht mehr.
>
> Hier gibt's das noch (Gentoo, udev-087).
Es scheint mir immer mehr ein Debian-spezifisches Problem zu sein.
>> Also mache ich udevsynthesize, was anscheinend dessen Nachfolger ist.
>
> Gibt's hier nicht.
>
> Evtl. hängt's mit der Reihenfolge zusammen, in der diese *.rules
> abgearbeitet werden. Dein 00-*.rules wird als erstes gelesen, d.h. die
> *.rules aus der Distribution kommen danach und bügeln Deine Änderungen
> evtl. wieder über.
Ich zitiere:
"It is important that your own rules get processed before the udev
defaults, otherwise your own naming schemes will not take effect!"
Zumindest nach der Anleitung ist es umgekehrt, deine veränderten Werte
müssen als erstes kommen.
Ich habe das Problem übrigens ein wenig weiter eingrenzen können.
Das Schreiben der Rules war nicht das Problem.
Ich habe alle Anleitungen ignoriert und meine Zeilen direkt in
/etc/udev/udev.rules geschrieben, dann geht es.
udevstart existiert in Debian ja nicht und udevsynthesize scheint
zumindest diese Aufgabe nicht zu übernehmen. Jedenfalls wird die Datei
hier niemals überschrieben.
Auch eine Änderung an den Defaults in /etc/udev/rules.d/ bringt
keinerlei Änderung am Verhalten von udev.
Wie gesagt, es scheint ein Debian-spezifisches Problem zu sein.
Wenn hier niemand was dazu sagen kann, werde ich dahingehend
weiterforschen.
Zumindest mit dem Hack funktioniert alles wie es soll und ich bin
zufrieden.
Mit der alten Ausnahme, dass ich meinen eingebauten USB-Cardreader nicht
mehr verwenden kann, weil ich keine Devices erzeugt bekomme wenn ich
eine Karte einstecke.
Aber das ist glaube ich ein grundsätzliches Problem von udev und kaum
lösbar. Zumindest habe ich im Internet keine Lösung für das Problem
finden können.