我将两块 ESP 板(连接到 USB 集线器。因此 ESP 板通过 USB 集线器的一个 USB 端口间接连接)连接到我的 acer-extensa-5630z(旧型号)。在 /dev 目录中,两个 ESP 板分别列为 ttyUSB0 和 ttyUSB1。
我想将名称“ttyUSB0”和“ttyUSB1”分别更改为“esp1”和“esp2”。以下是我更改名称所遵循的步骤。
- 我使用以下命令列出了属性来获取下面列出的属性
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$
- 在“/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” ”
- 更新文件“esp.rules”后,我执行了
udevadm 控制 --reload-rules && udevadm 触发器
我不知道问题是出在我执行的步骤上还是出在 USB 端口上。 我正在使用 ubuntu 20.04 LTS。
请帮我解决这个问题。先感谢您。
答案1
该规则对我来说看起来是正确的并且应该有效。我发现的唯一问题是您用于测试/运行规则的命令 -udevadm trigger
默认情况下会发送change
事件并且您的规则会做出反应,add
因此您应该使用:
udevadm control --reload-rules && udevadm trigger -c add