udevルールはシリアルポートを数値範囲に割り当て/制限します。

udevルールはシリアルポートを数値範囲に割り当て/制限します。

製造元のプロパティに基づいてシリアルポートを取り外そうとしますATTRS{manufacturer}

との間の値を/dev/ttyUSBx持つことができるメーカーAで検出された項目に割り当てたいと思います。x同様に、製造元Bで製造されたと検出された製品に対して、との間の値のみを取ることができる場所を割り当てたいと思います。09/dev/ttyUSByy1019

私は偶然会ったこれ記事の著者は、名前を変更するために使用できると言いましたsymlinks。私の要求に対応するために同様の措置を講じることができますか?

ベストアンサー1

あなたの質問に対する直接的な答えではありませんが、確認できます

$ ls -l /dev/serial/by-id/

(USB-シリアルアダプタを1つ以上接続した後)トラブルシューティング方法のアイデアが出ていることを確認してください。

/lib/udev/rules.d/60-serial.rules例を見て、その動作/dev/serialを確認することもできます。私のKubuntu 16.04では:

ACTION=="remove", GOTO="serial_end"
SUBSYSTEM!="tty", GOTO="serial_end"

SUBSYSTEMS=="pci", ENV{ID_BUS}="pci", ENV{ID_VENDOR_ID}="$attr{vendor}", ENV{ID_MODEL_ID}="$attr{device}"
SUBSYSTEMS=="pci", IMPORT{builtin}="hwdb --subsystem=pci"
SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb"

# /dev/serial/by-path/, /dev/serial/by-id/ for USB devices
KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="serial_end"

SUBSYSTEMS=="usb-serial", ENV{.ID_PORT}="$attr{port_number}"

IMPORT{builtin}="path_id"
ENV{ID_PATH}=="?*", ENV{.ID_PORT}=="", SYMLINK+="serial/by-path/$env{ID_PATH}"
ENV{ID_PATH}=="?*", ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-path/$env{ID_PATH}-port$env{.ID_PORT}"

IMPORT{builtin}="usb_id"
ENV{ID_SERIAL}=="", GOTO="serial_end"
SUBSYSTEMS=="usb", ENV{ID_USB_INTERFACE_NUM}="$attr{bInterfaceNumber}"
ENV{ID_USB_INTERFACE_NUM}=="", GOTO="serial_end"
ENV{.ID_PORT}=="", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}"
ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}-port$env{.ID_PORT}"

LABEL="serial_end"

おすすめ記事