udev 更改 ESP 板名称的规则不起作用

udev 更改 ESP 板名称的规则不起作用

我将两块 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 信息 --attribute-walk --name=/dev/ttyUSB0

udevadm info 从 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”
    子系统==“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{产品}==“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{busnum}=="2"
    ATTRS{maxchild}==“0”
    ATTRS{bcdDevice}==“0263”
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{怪癖}==“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{怪癖}==“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{busnum}=="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{怪癖}==“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{制造商}==“Linux 5.4.0-58-generic ehci_hcd”
    ATTRS{tx_lanes}==“1”
    ATTRS{authorized_default}==“1”
    ATTRS{速度}==“480”
    ATTRS{busnum}=="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{类}==“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 info 从 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”
    子系统==“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{busnum}=="2"
    ATTRS{avoid_reset_quirk}==“0”
    ATTRS{配置}==""
    ATTRS{bConfigurationValue}==“1”
    ATTRS{bDeviceSubClass}==“00”
    ATTRS{devnum}=="28"
    ATTRS{产品}==“USB2.0-串行”
    ATTRS{怪癖}==“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{怪癖}==“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{busnum}=="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{busnum}=="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{怪癖}==“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{怪癖}==“0x0”
    ATTRS{busnum}=="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{制造商}==“Linux 5.4.0-58-generic 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{类}==“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 控制 --reload-rules && udevadm 触发器

我不知道问题是出在我执行的步骤上还是出在 USB 端口上。 我正在使用 ubuntu 20.04 LTS。

请帮我解决这个问题。先感谢您。

答案1

该规则对我来说看起来是正确的并且应该有效。我发现的唯一问题是您用于测试/运行规则的命令 -udevadm trigger默认情况下会发送change事件并且您的规则会做出反应,add因此您应该使用:

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

相关内容