Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Probleme mit udev und openSUSE 10.2

Alles rund um Hardware, die unter Linux läuft oder zum Laufen gebracht werden soll

Moderator: Moderatoren

Gesperrt
uteh
Newbie
Newbie
Beiträge: 9
Registriert: 10. Aug 2007, 17:54

Probleme mit udev und openSUSE 10.2

Beitrag von uteh » 10. Aug 2007, 18:09

Hallo zusammen,

ich experimentiere gerade unter openSUSE 10.2 mit udev und wollte eine einfache Regel fuer einen USB-Stick erstellen.

Ich habe mit udevinfo mir die Serialnummer des USB-Sticks ausgeben lassen, da ich dachte, dass das ein ziemlich eindeutiger Schlüssel sei. Sicherheitshalber habe ich auch die niedrigste Nummer für meine Regeldatei vergeben, sie heisst /etc/udev/rules.d/01-udev.rules.

Die Regeldatei sieht so aus:
SUBSYSTEMS=="usb", ATTRS{serial}=="07711B2210DD", NAME=="usbstick1"

Alle Infos stammen aus demselben Level des Devicetrees und ich habe udev mit udevcontrol reload_rules neu gestartet.

openSUSE mountet leider den USB-Stick fleissig weiter auf /dev/disk (wenn er kein Label hat) oder /dev/USBSTICK (seinen Labelnamen) und je nachdem, wieviel Geräte eingesteckt sind, mal auf /dev/sda1, mal auf /dev/sdb1. Die Serialnummer habe ich 3 x überprüft, sie stimmt.

Ich kriege nicht heraus, warum das passiert, welche Konfigurationsdatei dafür verantwortlich ist und wie man das ändern kann bzw. was ich falsch mache. Ich habe heute den ganzen Tag die Man Pages und das Internet durchwühlt und alle Anleitungen befolgt, aber nichts ändert diesen Zustand.

Für jede Idee bin ich sehr dankbar!

Viele Grüsse,
Ute

Werbung:
b3ll3roph0n
Moderator
Moderator
Beiträge: 3669
Registriert: 4. Dez 2005, 13:17
Kontaktdaten:

Beitrag von b3ll3roph0n » 10. Aug 2007, 18:53

Da fehlt so einiges an der Regel.

Lesen: http://reactivated.net/writing_udev_rules.html

Als Beispiel mal meine Regel für meinen Usb-Stick:

Code: Alles auswählen

# cat /etc/udev/rules.d/01-usbstick.rules
SUBSYSTEMS=="usb", ATTRS{serial}=="SerienNummer", KERNEL=="sd*", NAME="%k", SYMLINK+="Name%n"
Gruß b3ll3roph0n
--
Denken hilft!

Ich beantworte keine Support-Anfragen per PN.
Für alle meine Beiträge gelten, außer bei Zitaten, die Creative Commons.

uteh
Newbie
Newbie
Beiträge: 9
Registriert: 10. Aug 2007, 17:54

udev-Regel

Beitrag von uteh » 10. Aug 2007, 20:41

Hallo,

danke für deinen Hinweis - ich hatte die udev-Regeln so verstanden, dass man nicht alle Angaben machen muss (auf dem Link, den du mir gabst, war ich auch schon ;-) ...).

Jetzt sieht meine 01-udev.rules so aus:
KERNELS=="1-6", SUBSYSTEMS=="usb", ATTRS{serial}=="07711B2210DD", NAME="usbstick1", SYMLINK+="stick2"

Das wären ja alle Angaben, die du für notwendig hältst, nicht wahr?

Jetzt wird der Stick unter dem angegebenen Namen gemountet, danke - aber unter dem Verzeichnis /mnt????? Ist das korrekt? Das wollte ich eigentlich nicht - ich wollte es weiterhin unter /media haben - kann man das auch noch einstellen?

Danke und viele Grüße,
Ute

b3ll3roph0n
Moderator
Moderator
Beiträge: 3669
Registriert: 4. Dez 2005, 13:17
Kontaktdaten:

Re: udev-Regel

Beitrag von b3ll3roph0n » 10. Aug 2007, 21:32

Code: Alles auswählen

KERNELS=="1-6", SUBSYSTEMS=="usb", ATTRS{serial}=="07711B2210DD", NAME="usbstick1", SYMLINK+="stick2"
*Öhm*
Kannst du mal erklären, wie du auf die Regel kommst?
Insbesondere die Erklärungen zu KERNELS, NAME und SYMLINK würden mich interessieren.

KERNEL ist die Bezeichnung unter der der Kernel dieses Device anlegt - also bei USB-Devices i.d.R. sdX.

NAME bezeichnet das Device-Node das unter /dev angelegt wird.

Ich empfehle, weder KERNEL noch NAME grundlegend zu verändern.
Also:

Code: Alles auswählen

SUBSYSTEMS=="usb", ATTRS{serial}=="SNR", KERNEL=="sd?", NAME="%k"
Damit hast du aber nur das Device selbst angelegt also z.B. sda -. um den Stick nutzen zu können brauchst du natürlich auch noch die Device-Nodes für die jeweiligen Partitionen (sda1, sda2, etc.).
Also:

Code: Alles auswählen

SUBSYSTEMS=="usb", ATTRS{serial}=="SNR", KERNEL=="sd?[1-9]", NAME="%k"
(für maximal neun Partitionen)

Was jetzt noch fehlt ist ein entsprechender Symlink, damit das Device immer mit dem entsprechenden Namen angesprochen werden kann:

Code: Alles auswählen

SUBSYSTEMS=="usb", ATTRS{serial}=="SNR", KERNEL=="sd?", NAME="%k", SYMLINK+="usbstick"
SUBSYSTEMS=="usb", ATTRS{serial}=="SNR", KERNEL=="sd?[1-9]", NAME="%k", SYMLINK+="usbstick%n"
Damit wird - egal ob der Stick als sda, sdb, etc. angegelegt wird - immer eine Symlink usbstick angelegt (inkl. der ensprechenden Partitionen: usbstick1, usbstick2, etc.).

Diese beiden Regeln lassen sich auch in einer zusammenfassen:

Code: Alles auswählen

SUBSYSTEMS=="usb", ATTRS{serial}=="SNR", KERNEL=="sd*", NAME="%k", SYMLINK+="usbstick%n"
Wie bzw. wo das jeweilige Device dann eingebunden wird, musst du via HAL konfigurieren.
Gruß b3ll3roph0n
--
Denken hilft!

Ich beantworte keine Support-Anfragen per PN.
Für alle meine Beiträge gelten, außer bei Zitaten, die Creative Commons.

uteh
Newbie
Newbie
Beiträge: 9
Registriert: 10. Aug 2007, 17:54

Beitrag von uteh » 11. Aug 2007, 20:12

Hallo b3ll3roph0n,
*Öhm*
Kannst du mal erklären, wie du auf die Regel kommst?
Insbesondere die Erklärungen zu KERNELS, NAME und SYMLINK würden mich interessieren.
Gerne - ich habe den Befehl udevinfo -a -p /sys/block/sdb verwendet und dort aus einer Sektion (das verstand ich unter der Anweisung "ein Knoten des Device Trees") die Angaben Hersteller und "KERNELS" abgeschrieben. Die Angabe 'KERNEL=="sd?"' stand in einem anderen Teil der Ausgabe, ich dachte, die dürfte ich nicht nehmen. Ich habe es aber eben probiert, klappt auch.

NAME und SYMLINK sind doch frei wählbar, dachte ich? Irre ich mich da so? Ich dachte, das udev-Regelsystem sei dazu da, die Gerätenamen frei zu wählen - vielleicht bin ich ganz auf dem Holzweg? Wozu verwendet man dann das Ganze? Nur um symbolische Links zu erzeugen?
Wie bzw. wo das jeweilige Device dann eingebunden wird, musst du via HAL konfigurieren.
Kannst du mir hier noch einen Tipp bezüglich der Konfigurationsdatei geben? Das höre ich heute zum ersten Mal. Ich habe eben die /etc durchforstet, aber unter /etc/hal finde ich nur Dinge, die nicht sehr aussagekräftig sind. Und man hal bringt nichts ...

Danke für all die Hilfe, das ist alles sehr interessant :-)

Viele Grüße,
Ute

b3ll3roph0n
Moderator
Moderator
Beiträge: 3669
Registriert: 4. Dez 2005, 13:17
Kontaktdaten:

Beitrag von b3ll3roph0n » 12. Aug 2007, 03:42

uteh hat geschrieben:NAME und SYMLINK sind doch frei wählbar, dachte ich? Irre ich mich da so? Ich dachte, das udev-Regelsystem sei dazu da, die Gerätenamen frei zu wählen [...]
Ja, du kannst NAME und SYMLINK frei wählen, allerdings bin ich der Ansicht, dass man sich an die allgemein gültigen/verwendeten Schemata halten bzw. erst dann davon abweichen sollte, wenn es unbedingt notwendig ist.
Allerding musst du trotzdem die entsprechenden Wildcards/Platzhalter (?, *) verwenden, damit die Devive-Nodes - nicht nur für das Gerät selbst sondern auch für die einzelnen Partitionen - auch korrekt angelegt werden.
uteh hat geschrieben:Wozu verwendet man dann das Ganze? Nur um symbolische Links zu erzeugen?
Ja.
Ist doch völlig ausreichend um ein Device immer unter demselben Namen ansprechen zu können. :wink:
uteh hat geschrieben:Kannst du mir hier noch einen Tipp bezüglich der Konfigurationsdatei geben? Das höre ich heute zum ersten Mal. Ich habe eben die /etc durchforstet, aber unter /etc/hal finde ich nur Dinge, die nicht sehr aussagekräftig sind. Und man hal bringt nichts ...
Du musst ein entsprechendes Policy-File mit der Endung fdi unter /etc/hal/fdi/policy anlegen:
http://en.opensuse.org/SDB:Mounting_to_ ... unt_Points
http://wiki.archlinux.org/index.php/HAL
uteh hat geschrieben:Danke für all die Hilfe, das ist alles sehr interessant :-)
Bitte ... und ... ja, das ist es. :wink:
Gruß b3ll3roph0n
--
Denken hilft!

Ich beantworte keine Support-Anfragen per PN.
Für alle meine Beiträge gelten, außer bei Zitaten, die Creative Commons.

Benutzeravatar
misiu
Moderator
Moderator
Beiträge: 3989
Registriert: 8. Mär 2004, 11:27
Wohnort: bei Schweinfurt

Beitrag von misiu » 12. Aug 2007, 12:37

Hm, das hört sich gut an, könnte gute Vorlage für die Wiki werden.
Setzte ich mal auf "Wichtig".

MfG
misiu

uteh
Newbie
Newbie
Beiträge: 9
Registriert: 10. Aug 2007, 17:54

Beitrag von uteh » 13. Aug 2007, 20:16

Hallo b3ll3roph0n,

nochmals herzlichen Dank für die gute und ausführliche Erklärung - das hat mir viel gebracht.

Ich habe mir meine udev-Kenntnisse auf verschiedenen Websites angelesen, die nun im Nachhinein doch bruchstückhaft zu sein scheinen: denn manche haben einfach den SYMLINK-Eintrag in den Regeln weggelassen oder beschrieben, man könne beliebige Attribute zum Matchen wählen, weshalb ich den KERNEL-Eintrag wegließ, dazu gab es auch Beispiele.

Jetzt funktioniert es aber und ich bin zufrieden!

Viele Grüße,
Ute

mampfi
Hacker
Hacker
Beiträge: 670
Registriert: 17. Mär 2004, 19:33
Wohnort: München

das könnte mir helfen

Beitrag von mampfi » 15. Mär 2008, 13:21

Darf man sich hier man einklinken?

ich hab Backup-Skripte laufen, die mir Verzeichnisse per cronjob auf USB-Stick sichern.

Nur gibts Trouble wenn ich die Externe Festplatte einschalte (USB).

Was ist denn nun /media/disk und was ist /media/disk-1?

Wenn ichs richtig verstanden habe, dann kann ich meinen USB-Stick per Konfiguration auf einen Device "zwingen".

Stimmt das?
Programmieren macht Spaß und ärgert gleichzeitig

uteh
Newbie
Newbie
Beiträge: 9
Registriert: 10. Aug 2007, 17:54

Re: das könnte mir helfen

Beitrag von uteh » 15. Mär 2008, 14:27

mampfi hat geschrieben:Darf man sich hier man einklinken?
ich hab Backup-Skripte laufen, die mir Verzeichnisse per cronjob auf USB-Stick sichern.
Nur gibts Trouble wenn ich die Externe Festplatte einschalte (USB).
Was ist denn nun /media/disk und was ist /media/disk-1?
Wenn ichs richtig verstanden habe, dann kann ich meinen USB-Stick per Konfiguration auf einen Device "zwingen".
Stimmt das?
Du darfst dich gerne einklinken, auch wenn es schon eine Zeitlang her ist, dass ich mich damit beschäftigte.
Aber es ist genau richtig, wie du schreibst: du kannst per udev-Regeln erzwingen, dass dein USB-Stick immer unter demselben Namen gemountet wird. Am besten verwendest du dazu Hersteller-ID oder Nummer, die sind ziemlich eindeutig.

Viele Grüße,
Ute

mampfi
Hacker
Hacker
Beiträge: 670
Registriert: 17. Mär 2004, 19:33
Wohnort: München

Beitrag von mampfi » 17. Mär 2008, 14:36

hm, ich bin da noch nicht so weit:

In der Datei file:///etc/udev/rules.d/01-usbstick.rules

steht bei mir folgendes

SUBSYSTEMS=="usb", ATTRS{serial}=="0705081259103", NAME=="usbstick", SYMLINK+="usbstick"

fdi-Dateien möcht hier mal lieber nicht zeigen, fang lieber von vorne an,
was müsste ich denn "policy-mäßig" verändern
Programmieren macht Spaß und ärgert gleichzeitig

uteh
Newbie
Newbie
Beiträge: 9
Registriert: 10. Aug 2007, 17:54

udev-Regeln

Beitrag von uteh » 18. Mär 2008, 21:10

Hallo Mampfi,
mampfi hat geschrieben:hm, ich bin da noch nicht so weit:

In der Datei file:///etc/udev/rules.d/01-usbstick.rules

steht bei mir folgendes

SUBSYSTEMS=="usb", ATTRS{serial}=="0705081259103", NAME=="usbstick", SYMLINK+="usbstick"

fdi-Dateien möcht hier mal lieber nicht zeigen, fang lieber von vorne an,
was müsste ich denn "policy-mäßig" verändern
Lies dir mal die Beiträge in diesem Thread genau durch, da sagten mir die Spezialisten, was zu tun ist. Ich kann dir leider im Moment keinen "anderen Support" bieten, da ich erst in ca. 4 - 6 Wochen wieder an ein Linux-System mit udev rankomme (habe gerade nur einen "älteren Suse 8-Server" hier).

Gruss Ute

mampfi
Hacker
Hacker
Beiträge: 670
Registriert: 17. Mär 2004, 19:33
Wohnort: München

Beitrag von mampfi » 18. Mär 2008, 21:56

Grübel,

hab ich mir so genau durchgelesen, dass ich den Thread bald auswendig kenne.

hab mir mir linux so "dekonfiguriert", das gar nix mehr gemountet wurde und ich ein Image (Gottlob hab ich sowas) restored habe.

Interessanterweise der "klassische" mount auf /media/disk verloren wenn ich im netz einen Samba-server auf cifs mounte.

Werd jetzt erstmal andere Aktivitäten vorziehen.

submount ist so ein Thema unter Linux.
Programmieren macht Spaß und ärgert gleichzeitig

Gesperrt