我将两块 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 info --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-serial” 驱动程序==“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{supports_autosuspend}=="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{quirks}=="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{quirks}=="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{quirks}=="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-通用 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{product}=="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{consistent_dma_mask_bits}=="32" ATTRS{numa_node}=="-1" ATTRS{driver_override}=="(null)" ATTRS{修订}=="0x03" ATTRS{设备}=="0x293a" ATTRS{irq}=="23" ATTRS{local_cpus}=="3" ATTRS{启用}=="1" ATTRS{companion}=="" 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 info --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-serial” 驱动程序==“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{supports_autosuspend}=="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{quirks}=="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{quirks}=="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{quirks}=="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{quirks}=="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{product}=="EHCI 主机控制器" ATTRS{制造商}=="Linux 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{consistent_dma_mask_bits}=="32" ATTRS{子系统供应商}=="0x1025" ATTRS{local_cpulist}=="0-1" ATTRS{driver_override}=="(null)" 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{companion}=="" 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$
- 在“/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。
请帮我解决这个问题。提前谢谢您。