Neue udev-Regeln nach allgemein gültigen Ansatz definieren
Der Ablauf ist weitgehend allgemein gültig. Die Beispielkommandos behandeln das Einsetzen einer SD-Karte.
- Das gewünschte Gerät in /sys finden
- Beispiel
find /sys -name 'mmcblk*'
findet /sys/block/mmcblk0
- Beispiel
- Erkennunsmerkmale des Geräts auflisten
udevadm info --attribute-walk /sys/block/mmcblk0
- Passende Erkennunsmerkmale sammeln
udevadm info --attribute-walk /sys/block/mmcblk0 |
grep -wE 'KERNEL|SUBSYSTEM|size' > /etc/udev/rules.d/10-sdcard.rules
- 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", \
- 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"
- Vorerest soll die zweite Zeile lediglich das Anlegen einer neuen Datei auslösen:
- Regel ausführbar machen und Regel laden
chmod +x /etc/udev/rules.d/10-sdcard.rules
udevadm control --reload
- Regel testen – Vorgang simulieren und prüfen ob Datei angelegt wurde
udevadm trigger --sysname-match=mmcblk0 --action=add
stat /tmp/triggered-* && rm /tmp/triggered-*
- 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