是否可以创建与I2C地址匹配的udev规则?

问题描述

我有几个相同设备的实例(一个基于I2C的IIO传感器),在两个I2C多路复用器后面有相同的I2C地址。我想根据确定性路径将iio:deviceX符号链接一个更有意义的名称(例如device = 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多路复用器将始终以相同的顺序进行初始化...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...