1

2 つのシリアル ポートの名前を設定する udev ルールを作成しています。シンボリックリンクで属性bInterfaceNumberの値を使用したい。

私のルールは次のとおりです。

SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", SYMLINK+="toto%s{bInterfaceNumber}"

ルールはデバイスに一致しましたが、属性の値が見つかりません。

1 つのデバイスの階層ビューを次に示します。

console@host:udevadm info --name=/dev/ttyUSB0 --attribute-walk
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0':
    KERNELS=="1-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ftdi_sio"
    ATTRS{bInterfaceNumber}=="00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-1':
    KERNELS=="1-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{idVendor}=="0403"
    ATTRS{idProduct}=="6010"

前もって感謝します

4

2 に答える 2

2

これは、デュアル ポート FTDI チップのエイリアスを作成するために作成したルールです。

# Internal serial ports
SUBSYSTEMS=="usb", ATTRS{interface}=="Dual RS232", SYMLINK+="sertest%s{bInterfaceNumber}"

この投稿によると、属性は 1 つのレベルで一致する必要があります。そのためidVendoridProductと では動作しませんbInterfaceNumber。以下に示すように、interfacebInterfaceNumberは同じレベルに属しています。

looking at parent device '/devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1/1-1.2/1-1.2:1.0':
KERNELS=="1-1.2:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bNumEndpoints}=="02"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceSubClass}=="ff"
ATTRS{bInterfaceProtocol}=="ff"
ATTRS{supports_autosuspend}=="1"
ATTRS{interface}=="Dual RS232"
于 2013-10-10T06:43:59.200 に答える
0

そのような環境変数を使用できると思います。

あなたの場合、次のようになります。

SUBSYSTEM=="usb", DRIVER=="ftdi_sio", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010" ENV{MY_DEV}="yes"

ENV{MY_DEV}="yes", SUBSYSTEMS=="usb", SYMLINK+="toto%s{bInterfaceNumber}"
于 2015-02-06T11:39:47.963 に答える