為什麼 udev 沒有觀察到 cdc_ether 網路設備?

為什麼 udev 沒有觀察到 cdc_ether 網路設備?

為什麼在 udev 不知情的情況下出現網路介面?

# 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

SUBSYSTEM=net隨著新網路介面的usb0出現,我預計會發生事件。我該如何讓 udev 處理它?

同時systemd-udevd --debug顯示網路相關訊息:

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

答案1

該問題是由於udevd不在root上運行引起的網路命名空間(預設新增網路介面卡)。

此外,udevadm monitor網路命名空間也會影響其輸出。

相關內容