Linux 是否可以创建与I2C地址匹配的udev规则?
我有许多相同设备的实例(基于I2C的IIO传感器),在两个I2C多路复用器后面有相同的I2C地址。我想基于确定性路径将Linux 是否可以创建与I2C地址匹配的udev规则?,linux,i2c,udev,iio,Linux,I2c,Udev,Iio,我有许多相同设备的实例(基于I2C的IIO传感器),在两个I2C多路复用器后面有相同的I2C地址。我想基于确定性路径将iio:deviceX符号链接到一个更有意义的名称(例如,设备=0x29,在mux=0x70,在总线1上) 不幸的是,从udevadm info--attribute walk--name=/dev/iio \:device0来看,我似乎无法根据以下属性匹配I2C地址: looking at device '/devices/pci0000:00/808622C1:00/i2
iio:deviceX
符号链接到一个更有意义的名称(例如,设备=0x29,在mux=0x70,在总线1上)
不幸的是,从udevadm info--attribute walk--name=/dev/iio \:device0
来看,我似乎无法根据以下属性匹配I2C地址:
looking at device '/devices/pci0000:00/808622C1:00/i2c-0/i2c-5/i2c-PRP0001:02/iio:device0':
KERNEL=="iio:device0"
SUBSYSTEM=="iio"
DRIVER==""
ATTR{name}=="vl53l0x"
ATTR{in_distance_raw}=="8190"
ATTR{in_distance_scale}=="0.001000"
looking at parent device '/devices/pci0000:00/808622C1:00/i2c-0/i2c-5/i2c-PRP0001:02':
KERNELS=="i2c-PRP0001:02"
SUBSYSTEMS=="i2c"
DRIVERS=="vl53l0x-i2c"
ATTRS{name}=="vl53l0x"
looking at parent device '/devices/pci0000:00/808622C1:00/i2c-0/i2c-5':
KERNELS=="i2c-5"
SUBSYSTEMS=="i2c"
DRIVERS==""
ATTRS{name}=="i2c-0-mux (chan_id 0)"
looking at parent device '/devices/pci0000:00/808622C1:00/i2c-0':
KERNELS=="i2c-0"
SUBSYSTEMS=="i2c"
DRIVERS==""
ATTRS{name}=="Synopsys DesignWare I2C adapter"
looking at parent device '/devices/pci0000:00/808622C1:00':
KERNELS=="808622C1:00"
SUBSYSTEMS=="platform"
DRIVERS=="i2c_designware"
ATTRS{driver_override}=="(null)"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
我如何确定与这些传感器的匹配?我甚至不确定是否可以假设I2C多路复用器总是以相同的顺序初始化…您是否运行了
iio\u info
并检查它是否有有有意义的字段?我非常确定libiio
应该有一些东西可以让你区分这些设备。如果没有,我建议与库维护人员合作以获得您想要的。您是否运行了iio_info
,并检查其中是否有有有意义的字段?我非常确定libiio
应该有一些东西可以让你区分这些设备。如果没有,我建议与库维护人员合作,以获得您想要的。