16. November 2008

by

In: Tech

Kommentare deaktiviert für Symlinks auf network devices per udev festlegen (geht nicht)

Bekanntlich kann man unter Linux ab Kernel 2.6 mit udev bestimmen, wie ein Gerät im /dev/-Baum heißen soll. Ebenso bietet udev die Möglichkeit, einem Gerät zusätzliche symbolische Namen zu geben. So ist es überall dokumentiert. Ebenfalls gut dokumentiert ist, dass man auch Netzwerk-Geräten wie „eth0“, „bond0“, „wlan0″ sprechendere Namen geben kann über eine udev-Regel. Zum Beispiel so:

SUBSYSTEM==“net“, SYSFS{address}==“00:16:3e:00:07:97″, NAME=“firstlan“
SUBSYSTEM==“net“, SYSFS{address}==“00:16:3e:00:07:98″, NAME=“secondlan“
SUBSYSTEM==“net“, SYSFS{address}==“00:16:3e:00:FF:54″, NAME=“wifi-lan“

Nirgendwo steht allerdings etwas dazu, dass die Option „SYMLINK=…“ bei Netzwerkgeräten nicht funktioniert. Zum Beispiel das hier:

SUBSYSTEM==“net“, SYSFS{address}==“00:16:3e:00:07:98″, NAME=“secondlan“, SYMLINK+=“eth1″

Wenn man diese Regel testet, meldet zum Beispiel udevtest:

udev_rules_get_name: add symlink ‚eth1′
udev_rules_get_name: rule applied, ’secondlan‘ becomes ’secondlan‘

Tatsächlich heißt das Interface mit der angegebenen MAC nun „secondlan“ – der Alternativname eth1 wurde aber nicht angelegt. Mein Kollege Michel hat dazu die Kernel-Entwickler befragt und auch eine Antwort erhalten:

„Right, network interfaces do not have any device nodes. The interface
names exist only in the kernel. There is only one name per interface
and nothing similar to the concept of symlinks“

Tags: , , ,