Ubuntu绑定USB接口到固定端口

绑定端口

  1. 打开终端,输入以下命令查看USB端口信息:
bash 复制代码
udevadm info -a -n /dev/ttyUSB0

执行后,可以看到部分输出如下:

找到第一个,a-b:c格式的KERNELS,记住这个值,后面会用到。

bash 复制代码
lin@lin-B660M-D2H-DDR4:~$ udevadm info -a -n /dev/ttyUSB0

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.1/1-11.1:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.1/1-11.1:1.0':
    KERNELS=="1-11.1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ch341"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{authorized}=="1"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceProtocol}=="02"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bNumEndpoints}=="03"

其中需要用到的信息有:

  • KERNELS=="1-11.1:1.0"

同样的,另一个端口如下:

  • KERNELS=="1-11.2:1.0"
  1. 添加udev规则:
bash 复制代码
sudo vim /etc/udev/rules.d/test_usb.rules

添加以下内容:

如果是/dev/ttyUSB*,则KERNEL要改为KERNEL=="ttyUSB*"

如果是/dev/video*,则KERNEL要改为KERNEL=="video*"

bash 复制代码
KERNEL=="ttyUSB*", KERNELS=="1-11.2:1.0", MODE:="0777", SYMLINK+="ttyUSB_test_back"
KERNEL=="ttyUSB*", KERNELS=="1-11.1:1.0", MODE:="0777", SYMLINK+="ttyUSB_test_front"

保存并退出,执行以下命令:

bash 复制代码
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo service udev reload
sudo service udev restart
  1. 重启后,就可以通过以下命令查看端口号:
bash 复制代码
ls /dev/ttyUSB*

输出:

bash 复制代码
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB_test_back  /dev/ttyUSB_test_front
相关推荐
木白CPP5 分钟前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
RisunJan28 分钟前
Linux命令-times(进程累计时间显示)
linux·运维·chrome
Titan20242 小时前
Linux网络基础知识
linux·服务器·网络·c++·学习
皮皮蟹虾饺2 小时前
NCCL 源码解析:通信器从出生到消亡的完整一生
linux·人工智能·ubuntu·语言模型·kubernetes
Java&Develop3 小时前
QuantDinger 宝塔 Linux 部署完整指南
linux·运维·状态模式
RisunJan3 小时前
Linux命令-tcpdump(网络数据包捕获)
linux·网络·tcpdump
Titan20244 小时前
Linux网络学习:套接字、UDP的封装与应用
linux·服务器·开发语言·网络·c++
.冰块.4 小时前
两套完整 Linux 建站实战:Wordpress 博客(LAMP)+ECShop 电商(LNMP)全套手册
linux·运维·项目实战·lnmp·lamp·电商平台·博客平台
杨云龙UP4 小时前
生产环境MySQL多实例XtraBackup全量备份与rsync异地自动传输实践
linux·运维·数据库·mysql·xtrabackup·主从复制·备份恢复
拂拉氏5 小时前
【知识讲解】 Linux中vim编辑器的学习与使用
linux·编辑器·vim