udevd meldet „invalid rule“

In /etc/udev/rules.d/10-local.rules stand bei mir Folgendes:

BUS=="usb", KERNEL=="sd?1", ATTR{manufacturer}=="LaCie*", NAME="%k", SYMLINK+="usbhdd1"

Mit einem der udev-Updates der letzten Jahre scheint sich die Notation solcher Regel etwas geändert zu haben, weshalb beim Boot-Prozess meines Linux-Servers kurzzeitig eine Fehlermeldung aufflackerte:

udevd[xxx]: invalid rule '/lib/udev/rules.d/10-local.rules:1'

Das Debugging solcher Fehlermeldungen und Regeln ist ganz einfach — wenn man weiss wie.

Auf der Kommandozeile führt man folgenden Befehl aus:

# udevadm test /etc/udev/rules.d/10-local.rules
load module index
read rules file: /etc/udev/rules.d/10-local.rules
unknown key 'BUS' in /etc/udev/rules.d/10-local.rules:1
invalid rule '/etc/udev/rules.d/10-local.rules:1'
...

Quelle: Debugging udev rules

Und siehe da, heute scheint das neu folgendermassen zu heissen:

SUBSYSTEM=="usb"

Nach der Änderung prüft man die Syntax erneut:

# udevadm test /etc/udev/rules.d/10-local.rules
load module index
read rules file: /etc/udev/rules.d/10-local.rules
unknown key 'SYSFS{manufacturer}' in /etc/udev/rules.d/10-local.rules:1
invalid rule '/etc/udev/rules.d/10-local.rules:1'
...

Aha, heute heisst das offenbar:

ATTR{manufacturer}

… und ab sofort motzt udevd nicht mehr rum:

# udevadm test /etc/udev/rules.d/10-local.rules
load module index
read rules file: /etc/udev/rules.d/10-local.rules
read rules file: /lib/udev/rules.d/42-usb-hid-pm.rules
...

Der Abend ist gerettet.