b46d8c1c70
All devices behind a SPI controller have the same udev ID_PATH property. This is a problem for predicable network names for CAN controllers. CAN controllers, in contrast to Ethernet controllers, don't have a MAC Address, so there's no way to tell two CAN controllers on the same SPI host controller apart: $ udevadm info /sys/class/net/can0 P: /devices/platform/soc/fe204000.spi/spi_master/spi0/spi0.1/net/can0 L: 0 E: DEVPATH=/devices/platform/soc/fe204000.spi/spi_master/spi0/spi0.1/net/can0 E: INTERFACE=can0 E: IFINDEX=3 E: SUBSYSTEM=net E: USEC_INITIALIZED=11187199 E: ID_PATH=platform-fe204000.spi E: ID_PATH_TAG=platform-fe204000_spi E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/can0 E: TAGS=:systemd: $ udevadm info /sys/class/net/can1 P: /devices/platform/soc/fe204000.spi/spi_master/spi0/spi0.0/net/can1 L: 0 E: DEVPATH=/devices/platform/soc/fe204000.spi/spi_master/spi0/spi0.0/net/can1 E: INTERFACE=can1 E: IFINDEX=4 E: SUBSYSTEM=net E: USEC_INITIALIZED=11192211 E: ID_PATH=platform-fe204000.spi E: ID_PATH_TAG=platform-fe204000_spi E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/can1 E: TAGS=:systemd: With this the chip select number is added to the ID_PATH, to make predictable network names possible. $ sudo udevadm info /sys/class/net/can0 P: /devices/platform/soc/fe204000.spi/spi_master/spi0/spi0.1/net/can0 L: 0 E: DEVPATH=/devices/platform/soc/fe204000.spi/spi_master/spi0/spi0.1/net/can0 E: INTERFACE=can0 E: IFINDEX=3 E: SUBSYSTEM=net E: USEC_INITIALIZED=11187199 E: ID_PATH=platform-fe204000.spi-cs-1 E: ID_PATH_TAG=platform-fe204000_spi-cs-1 E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/can0 E: TAGS=:systemd: $ sudo udevadm info /sys/class/net/can1 P: /devices/platform/soc/fe204000.spi/spi_master/spi0/spi0.0/net/can1 L: 0 E: DEVPATH=/devices/platform/soc/fe204000.spi/spi_master/spi0/spi0.0/net/can1 E: INTERFACE=can1 E: IFINDEX=4 E: SUBSYSTEM=net E: USEC_INITIALIZED=11192211 E: ID_PATH=platform-fe204000.spi-cs-0 E: ID_PATH_TAG=platform-fe204000_spi-cs-0 E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/can1 E: TAGS=:systemd: |
||
---|---|---|
.. | ||
ata_id | ||
cdrom_id | ||
fido_id | ||
mtd_probe | ||
net | ||
scsi_id | ||
v4l_id | ||
.vimrc | ||
generate-keyboard-keys-gperf.sh | ||
generate-keyboard-keys-list.sh | ||
meson.build | ||
udev-builtin-blkid.c | ||
udev-builtin-btrfs.c | ||
udev-builtin-hwdb.c | ||
udev-builtin-input_id.c | ||
udev-builtin-keyboard.c | ||
udev-builtin-kmod.c | ||
udev-builtin-net_id.c | ||
udev-builtin-net_setup_link.c | ||
udev-builtin-path_id.c | ||
udev-builtin-uaccess.c | ||
udev-builtin-usb_id.c | ||
udev-builtin.c | ||
udev-builtin.h | ||
udev-ctrl.c | ||
udev-ctrl.h | ||
udev-event.c | ||
udev-event.h | ||
udev-node.c | ||
udev-node.h | ||
udev-rules.c | ||
udev-rules.h | ||
udev-watch.c | ||
udev-watch.h | ||
udev.conf | ||
udev.pc.in | ||
udevadm-control.c | ||
udevadm-hwdb.c | ||
udevadm-info.c | ||
udevadm-monitor.c | ||
udevadm-settle.c | ||
udevadm-test-builtin.c | ||
udevadm-test.c | ||
udevadm-trigger.c | ||
udevadm-util.c | ||
udevadm-util.h | ||
udevadm.c | ||
udevadm.h | ||
udevd.c | ||
udevd.h |