ESP 보드 이름을 변경하는 udev의 규칙이 작동하지 않습니다.

ESP 보드 이름을 변경하는 udev의 규칙이 작동하지 않습니다.

두 개의 ESP 보드(USB 허브에 연결됨)를 연결했습니다. 따라서 ESP 보드는 USB 허브의 USB 포트 중 하나를 통해 간접적으로 acer-extensa-5630z(이전 모델)에 연결되었습니다. /dev 디렉토리에는 두 개의 ESP 보드가 ttyUSB0 및 ttyUSB1로 나열되어 있습니다.

"ttyUSB0" 및 "ttyUSB1" 이름을 각각 "esp1" 및 "esp2"로 변경하고 싶습니다. 내 이름을 변경하기 위해 수행한 단계는 다음과 같습니다.

  1. 아래 나열된 속성을 얻기 위해 다음 명령을 사용하여 속성을 나열했습니다.
udevadm 정보 --attribute-walk --name=/dev/ttyUSB0
ram@ram-Extensa-5630:/etc/udev/rules.d$ udevadm info --attribute-walk --name=/dev/ttyUSB0

udevadm 정보는 devpath에 지정된 장치에서 시작됩니다.
상위 장치 체인 위로 이동합니다. 모든 장치에 대해 인쇄됩니다.
udev 규칙 키 형식에서 가능한 모든 속성을 검색합니다.
일치 규칙은 장치 속성으로 구성될 수 있습니다.
단일 상위 장치의 속성.

  장치 보기 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/ttyUSB0/tty/ttyUSB0':
    커널 == "ttyUSB0"
    하위 시스템 == "tty"
    드라이버==""

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0/ttyUSB0' 보기:
    커널 == "ttyUSB0"
    subsystem=="USB-직렬"
    드라이버=="ch341-uart"
    ATTRS{포트번호}==“0”

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2:1.0' 보기:
    커널=="2-1.2:1.0"
    하위 시스템 == "usb"
    드라이버=="ch341"
    ATTRS{bInterfaceNumber}==“00”
    ATTRS{승인됨}=="1"
    ATTRS{bAlternateSetting}==“0”
    ATTRS{bInterfaceSubClass}==“01”
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{지원_자동-일시 중지}=="1"
    ATTRS{bInterfaceProtocol}==“02”
    ATTRS{bNumEndpoints}==“03”

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2' 보기:
    커널=="2-1.2"
    하위 시스템 == "usb"
    드라이버=="USB"
    ATTRS{bmAttributes}=="80"
    ATTRS{bDeviceClass}=="ff"
    ATTRS{속도}=="12"
    ATTRS{rx_lanes}=="1"
    ATTRS{버전}=="1.10"
    ATTRS{idProduct}=="7523"
    ATTRS{bNumConfigurations}==“1”
    ATTRS{product}=="USB2.0-직렬"
    ATTRS{제거 가능}=="알 수 없음"
    ATTRS{avoid_reset_quirk}==“0”
    ATTRS{bMaxPacketSize0}==“8”
    ATTRS{bNumInterfaces}==“1”
    ATTRS{urbnum}=="16"
    ATTRS{devnum}=="27"
    ATTRS{idVendor}=="1a86"
    ATTRS{bDeviceProtocol}==“00”
    ATTRS{devpath}=="1.2"
    ATTRS{구성}==""
    ATTRS{tx_lanes}==“1”
    ATTRS{bMaxPower}==“98mA”
    ATTRS{ltm_capable}=="아니요"
    ATTRS{버스 번호}=="2"
    ATTRS{maxchild}==“0”
    ATTRS{bcdDevice}==“0263”
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{Quirk}=="0x0"
    ATTRS{승인됨}=="1"
    ATTRS{bConfigurationValue}==“1”

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1' 보기:
    커널 == "2-1"
    하위 시스템 == "usb"
    드라이버=="USB"
    ATTRS{bDeviceProtocol}==“01”
    ATTRS{rx_lanes}=="1"
    ATTRS{버전}=="2.00"
    ATTRS{bDeviceClass}==“09”
    ATTRS{bMaxPacketSize0}==“64”
    ATTRS{urbnum}==“35”
    ATTRS{bNumInterfaces}==“1”
    ATTRS{idVendor}=="045b"
    ATTRS{Quirk}=="0x0"
    ATTRS{devnum}=="25"
    ATTRS{bConfigurationValue}==“1”
    ATTRS{devpath}=="1"
    ATTRS{승인됨}=="1"
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{제거 가능}=="알 수 없음"
    ATTRS{idProduct}==“0209”
    ATTRS{속도}=="480"
    ATTRS{tx_lanes}==“1”
    ATTRS{버스 번호}=="2"
    ATTRS{bNumConfigurations}==“1”
    ATTRS{avoid_reset_quirk}==“0”
    ATTRS{bMaxPower}==“0mA”
    ATTRS{maxchild}=="4"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bcdDevice}==“0100”
    ATTRS{ltm_capable}=="아니요"
    ATTRS{구성}==""

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2' 보기:
    커널=="usb2"
    하위 시스템 == "usb"
    드라이버=="USB"
    ATTRS{idVendor}=="1d6b"
    ATTRS{bcdDevice}==“0504”
    ATTRS{avoid_reset_quirk}==“0”
    ATTRS{Quirk}=="0x0"
    ATTRS{시퀀스}=="0000:00:1d.7"
    ATTRS{버전}=="2.00"
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{rx_lanes}=="1"
    ATTRS{bNumConfigurations}==“1”
    ATTRS{ltm_capable}=="아니요"
    ATTRS{bConfigurationValue}==“1”
    ATTRS{제조업체}=="리눅스 5.4.0-58-일반 ehci_hcd"
    ATTRS{tx_lanes}==“1”
    ATTRS{authorized_default}==“1”
    ATTRS{속도}=="480"
    ATTRS{버스 번호}=="2"
    ATTRS{bMaxPower}==“0mA”
    ATTRS{bmAttributes}=="e0"
    ATTRS{제거 가능}=="알 수 없음"
    ATTRS{devnum}=="1"
    ATTRS{maxchild}=="6"
    ATTRS{urbnum}=="226"
    ATTRS{제품}=="EHCI 호스트 컨트롤러"
    ATTRS{bMaxPacketSize0}==“64”
    ATTRS{bDeviceClass}==“09”
    ATTRS{bNumInterfaces}==“1”
    ATTRS{승인됨}=="1"
    ATTRS{구성}==""
    ATTRS{interface_authorized_default}==“1”
    ATTRS{bDeviceProtocol}==“00”
    ATTRS{devpath}=="0"
    ATTRS{idProduct}==“0002”

  상위 장치 '/devices/pci0000:00/0000:00:1d.7' 보기:
    커널 == "0000:00:1d.7"
    하위 시스템 == "pci"
    드라이버=="ehci-pci"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{dma_mask_bits}==“32”
    ATTRS{d3cold_allowed}==“1”
    ATTRS{하위 시스템 제공자}=="0x1025"
    ATTRS{공급업체}=="0x8086"
    ATTRS{uframe_periodic_max}==“100”
    ATTRS{confirm_dma_mask_bits}==“32”
    ATTRS{numa_node}=="-1"
    ATTRS{driver_override}=="(비어 있음)"
    ATTRS{개정}=="0x03"
    ATTRS{장치}=="0x293a"
    ATTRS{irq}=="23"
    ATTRS{local_cpus}=="3"
    ATTRS{활성화}=="1"
    ATTRS{동반자}==""
    ATTRS{하위 시스템 장치}=="0x013c"
    ATTRS{ari_enabled}==“0”
    ATTRS{msi_bus}==“1”
    ATTRS{broken_parity_status}==“0”
    ATTRS{class}=="0x0c0320"

  상위 장치 "/devices/pci0000:00" 보기:
    커널=="pci0000:00"
    하위 시스템==""
    드라이버==""

ram@ram-Extensa-5630:/etc/udev/rules.d$

다음은 ttyUSB1의 속성을 표시하는 데 사용한 명령입니다.

udevadm 정보 --attribute-walk --name=/dev/ttyUSB1
ram@ram-Extensa-5630:/etc/udev/rules.d$ udevadm 정보 --attribute-walk --name=/dev/ttyUSB1

udevadm 정보는 devpath에 지정된 장치에서 시작됩니다.
상위 장치 체인 위로 이동합니다. 모든 장치에 대해 인쇄됩니다.
udev 규칙 키 형식에서 가능한 모든 속성을 검색합니다.
일치 규칙은 장치 속성으로 구성될 수 있습니다.
단일 상위 장치의 속성.

  장치 보기 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.4/2-1.1.4:1.0/ttyUSB1/tty/ttyUSB1':
    커널 == "ttyUSB1"
    하위 시스템 == "tty"
    드라이버==""

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.4/2-1.1.4:1.0/ttyUSB1' 보기:
    커널 == "ttyUSB1"
    subsystem=="USB-직렬"
    드라이버=="ch341-uart"
    ATTRS{포트번호}==“0”

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.4/2-1.1.4:1.0' 보기:
    커널=="2-1.1.4:1.0"
    하위 시스템 == "usb"
    드라이버=="ch341"
    ATTRS{bAlternateSetting}==“0”
    ATTRS{bNumEndpoints}==“03”
    ATTRS{bInterfaceProtocol}==“02”
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceSubClass}==“01”
    ATTRS{bInterfaceNumber}==“00”
    ATTRS{지원_자동-일시 중지}=="1"
    ATTRS{승인됨}=="1"

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.4' 보기:
    커널=="2-1.1.4"
    하위 시스템 == "usb"
    드라이버=="USB"
    ATTRS{속도}=="12"
    ATTRS{승인됨}=="1"
    ATTRS{idProduct}=="7523"
    ATTRS{버전}=="1.10"
    ATTRS{bMaxPower}==“98mA”
    ATTRS{ltm_capable}=="아니요"
    ATTRS{bDeviceProtocol}==“00”
    ATTRS{tx_lanes}==“1”
    ATTRS{bNumConfigurations}==“1”
    ATTRS{bNumInterfaces}==“1”
    ATTRS{bmAttributes}=="80"
    ATTRS{devpath}=="1.1.4"
    ATTRS{urbnum}=="16"
    ATTRS{제거 가능}=="알 수 없음"
    ATTRS{bcdDevice}==“0263”
    ATTRS{버스 번호}=="2"
    ATTRS{avoid_reset_quirk}==“0”
    ATTRS{구성}==""
    ATTRS{bConfigurationValue}==“1”
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{devnum}=="28"
    ATTRS{product}=="USB2.0-직렬"
    ATTRS{Quirk}=="0x0"
    ATTRS{maxchild}==“0”
    ATTRS{bMaxPacketSize0}==“8”
    ATTRS{rx_lanes}=="1"
    ATTRS{bDeviceClass}=="ff"
    ATTRS{idVendor}=="1a86"

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1' 보기:
    커널=="2-1.1"
    하위 시스템 == "usb"
    드라이버=="USB"
    ATTRS{Quirk}=="0x0"
    ATTRS{ltm_capable}=="아니요"
    ATTRS{idProduct}==“0209”
    ATTRS{avoid_reset_quirk}==“0”
    ATTRS{구성}==""
    ATTRS{bcdDevice}==“0100”
    ATTRS{버전}=="2.00"
    ATTRS{bDeviceProtocol}==“01”
    ATTRS{제거 가능}=="알 수 없음"
    ATTRS{urbnum}=="26"
    ATTRS{tx_lanes}==“1”
    ATTRS{devnum}=="26"
    ATTRS{rx_lanes}=="1"
    ATTRS{bConfigurationValue}==“1”
    ATTRS{속도}=="480"
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{버스 번호}=="2"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bDeviceClass}==“09”
    ATTRS{bNumConfigurations}==“1”
    ATTRS{maxchild}=="4"
    ATTRS{bMaxPower}==“0mA”
    ATTRS{idVendor}=="045b"
    ATTRS{bNumInterfaces}==“1”
    ATTRS{bMaxPacketSize0}==“64”
    ATTRS{승인됨}=="1"
    ATTRS{devpath}=="1.1"

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2/2-1' 보기:
    커널 == "2-1"
    하위 시스템 == "usb"
    드라이버=="USB"
    ATTRS{idVendor}=="045b"
    ATTRS{avoid_reset_quirk}==“0”
    ATTRS{버스 번호}=="2"
    ATTRS{bConfigurationValue}==“1”
    ATTRS{제거 가능}=="알 수 없음"
    ATTRS{bNumConfigurations}==“1”
    ATTRS{구성}==""
    ATTRS{urbnum}==“35”
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{rx_lanes}=="1"
    ATTRS{devpath}=="1"
    ATTRS{bDeviceClass}==“09”
    ATTRS{bMaxPacketSize0}==“64”
    ATTRS{tx_lanes}==“1”
    ATTRS{bcdDevice}==“0100”
    ATTRS{속도}=="480"
    ATTRS{devnum}=="25"
    ATTRS{승인됨}=="1"
    ATTRS{bMaxPower}==“0mA”
    ATTRS{Quirk}=="0x0"
    ATTRS{버전}=="2.00"
    ATTRS{bDeviceProtocol}==“01”
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumInterfaces}==“1”
    ATTRS{idProduct}==“0209”
    ATTRS{maxchild}=="4"
    ATTRS{ltm_capable}=="아니요"

  상위 장치 '/devices/pci0000:00/0000:00:1d.7/usb2' 보기:
    커널=="usb2"
    하위 시스템 == "usb"
    드라이버=="USB"
    ATTRS{bDeviceProtocol}==“00”
    ATTRS{bDeviceClass}==“09”
    ATTRS{구성}==""
    ATTRS{urbnum}=="226"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{bConfigurationValue}==“1”
    ATTRS{idVendor}=="1d6b"
    ATTRS{maxchild}=="6"
    ATTRS{제거 가능}=="알 수 없음"
    ATTRS{ltm_capable}=="아니요"
    ATTRS{Quirk}=="0x0"
    ATTRS{버스 번호}=="2"
    ATTRS{bMaxPower}==“0mA”
    ATTRS{bMaxPacketSize0}==“64”
    ATTRS{devnum}=="1"
    ATTRS{버전}=="2.00"
    ATTRS{속도}=="480"
    ATTRS{승인됨}=="1"
    ATTRS{bNumInterfaces}==“1”
    ATTRS{devpath}=="0"
    ATTRS{제품}=="EHCI 호스트 컨트롤러"
    ATTRS{제조업체}=="리눅스 5.4.0-58-일반 ehci_hcd"
    ATTRS{bNumConfigurations}==“1”
    ATTRS{시퀀스}=="0000:00:1d.7"
    ATTRS{rx_lanes}=="1"
    ATTRS{avoid_reset_quirk}==“0”
    ATTRS{idProduct}==“0002”
    ATTRS{tx_lanes}==“1”
    ATTRS{bcdDevice}==“0504”
    ATTRS{interface_authorized_default}==“1”
    ATTRS{authorized_default}==“1”

  상위 장치 '/devices/pci0000:00/0000:00:1d.7' 보기:
    커널 == "0000:00:1d.7"
    하위 시스템 == "pci"
    드라이버=="ehci-pci"
    ATTRS{uframe_periodic_max}==“100”
    ATTRS{d3cold_allowed}==“1”
    ATTRS{confirm_dma_mask_bits}==“32”
    ATTRS{하위 시스템 제공자}=="0x1025"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{driver_override}=="(비어 있음)"
    ATTRS{활성화}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{local_cpus}=="3"
    ATTRS{공급업체}=="0x8086"
    ATTRS{하위 시스템 장치}=="0x013c"
    ATTRS{ari_enabled}==“0”
    ATTRS{irq}=="23"
    ATTRS{broken_parity_status}==“0”
    ATTRS{동반자}==""
    ATTRS{msi_bus}==“1”
    ATTRS{장치}=="0x293a"
    ATTRS{class}=="0x0c0320"
    ATTRS{dma_mask_bits}==“32”
    ATTRS{개정}=="0x03"

  상위 장치 "/devices/pci0000:00" 보기:
    커널=="pci0000:00"
    하위 시스템==""
    드라이버==""

ram@ram-Extensa-5630:/etc/udev/rules.d$
  1. "/etc/udev/rules.d" 디렉토리에서 다음 내용으로 "esp.rules"라는 파일을 만들고 편집했습니다.
하위 시스템 == "usb", 작업 == "추가", ATTRS {idProduct} == "7523", ATTRS {idVendor} == "1a86", ATTRS {devpath} == "2.2", SYMLINK+="esp1 "

하위 시스템 == "usb", 작업 == "추가", ATTRS{idProduct}=="7523", ATTRS{idVendor}=="1a86", ATTRS{devpath}=="2.1.4", SYMLINK+= "esp2 "
  1. "esp.rules" 파일을 업데이트한 후 실행했습니다.
udevadm 제어--다시 로드 규칙 && udevadm 트리거

제가 수행한 단계에 문제가 있는지 아니면 USB 포트에 문제가 있는지 모르겠습니다. 저는 우분투 20.04 LTS를 사용하고 있습니다.

이 문제를 해결하도록 도와주세요. 미리 감사드립니다.

답변1

이 규칙은 내가 보기에 정확하고 작동할 것입니다. 내가 발견한 유일한 문제는 규칙을 테스트/실행하는 데 사용하는 명령에 있습니다. udevadm trigger기본적으로 change이벤트가 전송되고 규칙이 반응하므로 add다음을 사용해야 합니다.

udevadm control --reload-rules && udevadm trigger -c add

관련 정보