Product SiteDocumentation Site

9.11.3. Wie udev funktioniert

Wenn udev vom Kernel über das Erscheinen eines neuen Gerätes informiert wird, sammelt es verschiedene Informationen über das betreffende Gerät, indem es die entsprechenden Einträge in /sys/ zurate zieht, vor allem diejenigen, die es eindeutig identifizieren (MAC-Adresse bei einer Netzwerkkarte, Seriennummer bei einigen USB-Geräten usw.).
Mit all diesen Informationen versehen konsultiert udev dann alle in /etc/udev/rules.d/ und /lib/udev/rules.d/ enthaltenen Regeln. Im Verlauf dieses Vorgangs entscheidet es, wie das Gerät bezeichnet werden soll, welche symbolische Verknüpfung erstellt werden soll (um ihm einen alternativen Namen zu geben), und welche Befehle ausgeführt werden sollen. All diese Dateien werden der Reihe nach konsultiert und alle Regeln nacheinander ausgewertet (außer wenn eine Datei „GOTO“-Anweisungen verwendet). So kann es mehrere Regeln geben, die sich auf einen bestimmten Vorgang beziehen.
Die Syntax von Regeldateien ist recht einfach: jede Zeile enthält Auswahlkriterien und die Festsetzung von Variablen. Erstere werden gebraucht, um Vorgänge auszuwählen, auf die reagiert werden muss, und letztere bestimmen die zu ergreifenden Maßnahmen. Sie sind alle einfach durch Kommata getrennt, und der Operator teilt sie implizit in Auswahlkriterien (durch Vergleichsoperatoren wie == oder !=) und Zuordnungsanweisungen ein (durch Operatoren wie =, += oder :=).
Vergleichsoperatoren werden bei den folgenden Variablen verwendet:
Die richtigen Operanden können Strukturausdrücke benutzen, um mehreren Werten gleichzeitig zu entsprechen. Zum Beispiel entspricht * jeder Zeichenkette (selbst einer leeren); ? entspricht jedem Zeichen und [] entspricht dem Zeichensatz zwischen den eckigen Klammern (oder seinem Gegenteil, falls das erste Zeichen ein Ausrufezeichen ist und zusammenhängende Reihen von Zeichen, wie a-z, angegeben sind).
Was die Zuweisungsoperatoren betrifft, so weist = einen Wert zu (und ersetzt den gegenwärtigen Wert); im Falle einer Liste wird sie geleert und enthält dann nur den zugewiesenen Wert. := macht dasselbe, aber unterbindet spätere Veränderungen derselben Variablen. += fügt einer Liste eine Position hinzu. Die folgenden Variablen können verändert werden:
Die Werte, die diesen Variablen zugewiesen werden, können eine Reihe von Ersetzungen benutzen:
Die oben stehenden Listen sind nicht vollständig (sie enthalten nur die wichtigsten Parameter), jedoch sollte die Handbuchseite udev(7) es sein.