Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe
allgemeine Kategorie => Allgemeine Diskussionen => Thema von: Sebastian am 07. Mai 2022, 09:23:24

Titel: Udev Regeln bauen
Beitrag von: Sebastian am 07. Mai 2022, 09:23:24

Hallo Suletuxe,

ich habe die Tage die Zufalls Artikel Funktion des Arch Wikis verwendet um mir ein wenig gute Nacht Lektüre heraus zu suchen. Dabei bin ich auf den Wiki Eintrag von Link (https://wiki.archlinux.org/title/Udev]udev[/url] gestoßen, den ich sehr interessant fand. In diesen Wiki Artikel war auch ein [url=http://www.reactivated.net/writing_udev_rules.html) zu einer noch besseren Anleitung die einen auch noch mit Hintergrundwissen über die Erstellung von Udev Regeln erstellen versorgt.

udev ist quasi dafür zuständig die Geräte Dateien in /dev für die Hardware zur Verfügung zu stellen.

Was ich toll fand da ich das auch noch nicht wusste ist, das es für udev für die meisten Geräte bereits Regeln gibt um ein Gerät wie z.B. eine Externe Festplatte persistent ansprechbar zu machen. Das ist sehr Praktisch für Scripte die immer auf das selbe Laufwerk zugreifen müssen, und man sicherstellen will das dass Laufwerk immer unter dem selben Pfad ansprechbar ist.
Zitat:
Built-in persistent naming schemes
udev provides persistent naming for some device types out of the box. This is a very useful feature, and in many circumstances means that your journey ends here: you do not have to write any rules.

udev provides out-of-the-box persistent naming for storage devices in the /dev/disk directory. To view the persistent names which have been created for your storage hardware, you can use the following command:

# ls -lR /dev/disk
This works for all storage types. As an example, udev has created /dev/disk/by-id/scsi-SATA_ST3120827AS_4MS1NDXZ-part3 which is a persistent-named symbolic link to my root partition. udev creates /dev/disk/by-id/usb-Prolific_Technology_Inc._USB_Mass_Storage_Device-part1 when I plug my USB flash disk in, which is also a persistent name.


Zudem liefert die Seite auch viel Historisches Hintergrundwissen mit, durch das Studium der Seite konnte ich auch erfahren was für ein nutzen das Verzeichnis /sys bzw. das Dateisystem sysfs hat. Wodrüber praktisch die ganzen Attribute seiner Hardware ausgelesen werden können.
Zitat:
sysfs is a new filesystem to the 2.6 kernels. It is managed by the kernel, and exports basic information about the devices currently plugged into your system. udev can use this information to create device nodes corresponding to your hardware. sysfs is mounted at /sys and is browseable. You may wish to investigate some of the files stored there before getting to grips with udev. Throughout this document, I will use the terms /sys and sysfs interchangeably.


Zusammen mit dem Befehl, den ich in dem Artikel auch kennengelernt habe, (als Beispiel für das Laufwerk sda)


Code:

udevinfo -a -p /sys/block/sda


bekommt man gleich fertig Formatierte Attribute, die man zum erstellen eigener udev Regeln verwenden kann ausgegeben. um z.b. automatisch ein Skript zu starten wenn ein gewisses Laufwerk angeschlossen oder abgezogen wurde.

Man muss nur dafür den Pfad seiner Hardware im /sys Baum kennen, den man beispielhaft für das laufwerk sda so rausfinden kann:


Code:

find /sys -name sda


Alleine durch das Studium dieses Artikels traue ich mir nun zu (natürlich nur mit spiken in den Artikel) eigene udev Regeln schreiben zu können.

Zudem habe ich dadurch noch beiläufig erfahren wie wertvoll das sysfs ist und mir wurde dadurch noch eine weitere Möglichkeit gegeben meine Hardware auf unterschiedliche weiße auszulesen bzw. zu bedienen.

Ich habe aus dem einen Artikel folgendes für mich mitnehmen können:


  • Was ist udev? Und wofür brauch man das?
  • Woher die Gerätedateien in /dev kommen bzw. wie sie entstehen.
  • Wofür /sys (sysfs) gut ist, und welche Infos man daraus ziehen kann.
  • Wie man udev Regeln erstellt und wofür man diese anwenden kann.
  • Das mithilfe von udevinfo es ga nicht mal zu schwer ist an eindeutige Attribute seiner Hardware zu kommen um Regeln erstellen zu können.


  • Diese kleine gute Nacht Lektüre hatte mir einmal mehr gezeigt wie toll Linux doch ist, und wie viel Kontrolle es einen über die eigene Hardware gibt, zudem das wissen im Internet dafür nur gefunden werden will.

    Das wissen über Linux ist frei im Internet verfügbar und wartet nur darauf von wissbegierige gefunden, verstanden und verbreitet zu werden. Aus diesem Anlass um vielleicht den ein oder anderen darauf neugierig gemacht zu haben, wollte ich hier mal meine Erfahrung mit dem erkunden eines kleinen Artikels berichten und wie viel ich davon mitnehmen konnte.

    Seid neugierig, Linux möchte erkundet werden um von euch gemeistert zu werden. Jeden Tag ein Stückchen mehr.


    Für die jenigen die Probleme mit dem Englisch haben hier der Link (https://www-reactivated-net.translate.goog/writing_udev_rules.html?_x_tr_sch=http&_x_tr_sl=en&_x_tr_tl=de&_x_tr_hl=de) zu dem Artikel über den Google Übersetzter. Auch wenn der Übersetzer schon sehr gut geworden ist passt bei Maschinen Übersetzungen auf besonders falls Code Zeilen ausversehen mit übersetzt werden.

Titel: Re:Udev Regeln bauen
Beitrag von: Andreas am 07. Mai 2022, 09:48:07

...ich habe mich mal dumm gestellt und unter dem Arch Linux versucht udevinfo aufzurufen. Ergebnis: "command not found". OK - vielleicht nicht installiert? Ein yay -Ss udevinfo brachte kein Paket zu Tage. Also eine Suchmaschine bemüht:

Titel: Re:Udev Regeln bauen
Beitrag von: Andreas am 07. Mai 2022, 09:49:14

... und dann den ersten Link genommen. Da finde ich:

Titel: Re:Udev Regeln bauen
Beitrag von: Andreas am 07. Mai 2022, 09:51:30

und anstelle von

udevinfo -a -p /sys/block/sda

udevadm info -a -p /sys/block/sda

ausgeführt und siehe da:
funktionuckelt ;D

Aufwand um das Problem zu lösen:
60 Sekunden

Aufwand um das hier reinzuschreiben:
3 Minuten

Es ist alles offen, es ist alles transparent, die Lösungen für (fast) alles stehen im Netz, man muss sich nur aufraffen. Und ÜBEN,ÜBEN,ÜBEN.

DANKE für den interessanten Beitrag Sebastian!

LG
Andreas

Titel: Re:Udev Regeln bauen
Beitrag von: Sebastian am 07. Mai 2022, 11:15:47

Vielen dank Andreas, für die Korrektur und Ergänzung.

Anscheint haben sich die Befehle in laufe der Zeit ein wenig geändert.
Andreas hat aber gezeigt wie schnell man mit einer kurzen Internet Recherche aus dem alten Wissenstand auf den neuen kommt.

Aus dem was Andreas geschrieben hat, ziehe ich folgende Rückschlüsse:


  • In Laufe der Zeit wurden wohl Einzelne Programme (wie udevinfo) zu einem neuen Programm udevadm (Englische Eselsbrücke Userspace Device Administration) als Unterfunktionen zusammen gefasst. Nachdem die Funktion info angegeben wird scheinen die Parameter gleich geblieben worden zu sein. Somit kann man mitthilfe seines alt wissens das neue einfach Adaptieren.
  • Damit weis ich das ich in Zukunft bei ältere Artikel falls es noch andere udev Programme gibt die Funktionen bzw. Aufgaben die diese durchführen sollten wahrscheinlich von udevadm übernommen werden und ich weitere Hilfe in den man Pages (Handbuchseiten) von udevadm finde. Oder bei der nächsten Internet Recherche direkt nach udevadm suchen kann.


  • Vielen dank Andreas, wieder was gelernt. :)

Titel: Re:Udev Regeln bauen
Beitrag von: Andreas am 07. Mai 2022, 11:56:55

Ich finde das Klasse Sebastian. Lass uns hier zusammen zeigen wie man lernt. Dementsprechend waren meine Antworten auch keine Kritik sondern sie waren ein Weg wie man auf Informationen reagieren kann wenn nicht das rauskommt was man erwartet. Man darf nicht erwarten dass man "copy & paste Antworten" bekommt. Ein wenig eigene Initiative führen mit dem richtigen Tipp aber sehr schnell zum Erfolg.

LG
Andreas

Titel: Re:Udev Regeln bauen
Beitrag von: Sebastian am 07. Mai 2022, 13:06:01

Zitat von: Andreas am 07. Mai 2022, 11:56:55
Ich finde das Klasse Sebastian. Lass uns hier zusammen zeigen wie man lernt. Dementsprechend waren meine Antworten auch keine Kritik sondern sie waren ein Weg wie man auf Informationen reagieren kann wenn nicht das rauskommt was man erwartet. Man darf nicht erwarten dass man "copy & paste Antworten" bekommt. Ein wenig eigene Initiative führen mit dem richtigen Tipp aber sehr schnell zum Erfolg.

LG
Andreas


Ich habe das auch nicht als Kritik aufgefasst, spätestens als du dich für den Interessanten Beitrag bedankt hattest wusste ich das du das nicht als Kritik meintest.

Ich helfe gerne mit, zu vermitteln wie man lernen kann. Auch wenn das der ein oder andere vielleicht als unnötige Information ansieht dachte ich mir einfach, ich schreibe einfach mal dazu welche Gedanken und Rückschlüsse ich aus einen Artikel ziehe. Denn um richtig lernen bzw. verstehen zu können muss man eventuell sich ein anderes denk Muster aneignen.

Außerdem wollte ich aufzeigen das man ganz nebenbei durch ein Einstiegs Thema auch viel neues lernen kann wonach man vorher überhaupt nicht gesucht hatte. Erst wollte ich nur mehr über udev wissen, dadurch habe ich automatisch von dem sysfs bzw. /sys erfahren wie wertvoll das ist. Nun ist mein Interesse auch dafür geweckt worden, bzw. falls ich anders wo mal auf Probleme stoße was mit meiner Hardware zu tun hat, weiß ich das ich in Zusammenhang mit sysfs nun ein weiteres Werkzeug im meinen Portfolio habe, indem ich den Umgang damit wiederum mit einer Recherche im Internet erlernen kann, falls ich auf ein Problem stoße wofür sich das anbietet. So kommt Stück für Stück ein weiteres Puzzlement vom großen ganzen Linux zusammen. So erkennt man dann immer besser die zusammenhänge der einzelnen Komponenten. Und wird immer besser den Ursprung eines Fehlers zu lokalisieren.

LG
Sebastian


Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.