Neue udev-Regeln nach allgemein gültigem Ansatz definieren

Neue udev-Regeln nach allgemein gültigen Ansatz definieren

Der Ablauf ist weitgehend allgemein gültig. Die Beispielkommandos behandeln das Einsetzen einer SD-Karte.

  1. Das gewünschte Gerät in /sys finden
    • Beispiel find /sys -name 'mmcblk*' findet /sys/block/mmcblk0
  2. Erkennunsmerkmale des Geräts auflisten
    • udevadm info --attribute-walk /sys/block/mmcblk0
  3. Passende Erkennunsmerkmale sammeln
    • udevadm info --attribute-walk /sys/block/mmcblk0 |
      grep -wE 'KERNEL|SUBSYSTEM|size' > /etc/udev/rules.d/10-sdcard.rules
  4. Erkennungsparameter in Editor aufbereiten
    • ${EDITOR:-vi} /etc/udev/rules.d/10-sdcard.rules
    • Die erste Zeile könnte dann beispielsweise so aussehen:
      ACTION=="add", KERNEL=="mmcblk0", SUBSYSTEM=="block", ATTR{size}=="15949824", \
  5. Aktion zum Testen der Regel ergänzen
    • Vorerest soll die zweite Zeile lediglich das Anlegen einer neuen Datei auslösen:
      RUN+="/usr/bin/touch /tmp/triggered-%k"
  6. Regel ausführbar machen und Regel laden
    • chmod +x /etc/udev/rules.d/10-sdcard.rules
    • udevadm control --reload
  7. Regel testen – Vorgang simulieren und prüfen ob Datei angelegt wurde
    • udevadm trigger --sysname-match=mmcblk0 --action=add
    • stat /tmp/triggered-* && rm /tmp/triggered-*
  8. Regel testen – Gerät physisch einsetzen und prüfen ob Datei angelegt wurde
    • stat /tmp/triggered-* && rm /tmp/triggered-*

An dieser Stelle ist sicher gestellt, dass die Regel erwartungsgemäß ausgeführt wird. Nun kann RUN auf das gewünschte Kommando geändert werden oder andere Aktionen, wie beispielweise SYMLINK, OWNER oder MODE definiert werden.

Die Möglichkeiten sind in udev(7) dokumentiert.

Tipp: Live-Überwachung

udev-Ereignisse können mittels udevadm monitor live überwacht werden. Für bessere Übersicht kann die Ausgabe nach Subsystem gefiltert werden. Beispiel:

udevadm monitor --subsystem-match=block