为什么 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网络命名空间也会影响其输出。

相关内容