Warum wird eine Netzwerkschnittstelle angezeigt, ohne dass Udev davon weiß?
# rnn ip link show dev usb0
Device "usb0" does not exist.
# stdbuf -oL udevadm monitor -p | grep 'SUBSYSTEM\|ACTION\|e2:c9:f6:5c:37:7c' --line-buffered
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
ACTION=add
SUBSYSTEM=usb
^C
# rnn ip link show dev usb0
35: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether e2:c9:f6:5c:37:7c brd ff:ff:ff:ff:ff:ff
Ich erwarte SUBSYSTEM=net
Ereignisse, wenn eine neue Netzwerkschnittstelle usb0
erscheint. Wie bringe ich udev dazu, damit umzugehen?
Währenddessen systemd-udevd --debug
werden netzwerkbezogene Meldungen angezeigt:
seq 9553 queued, 'add' 'usb'
seq 9554 queued, 'add' 'usb'
seq 9555 queued, 'add' 'net'
seq 9556 queued, 'add' 'queues'
seq 9557 queued, 'add' 'queues'
seq 9558 queued, 'add' 'usb'
...
PROGRAM '/bin/readlink /etc/udev/rules.d/80-net-setup-link.rules' /lib/udev/rules.d/73-usb-net-by-mac.rules:6
Antwort1
Das Problem wird dadurch verursacht, dass udevd
es nicht auf dem Stammverzeichnis ausgeführt wirdNetzwerk-Namespace(wo Netzwerkadapter standardmäßig hinzugefügt werden).
Darüber hinaus udevadm monitor
wirkt sich auch der Netzwerk-Namespace auf die Ausgabe aus.