Ubuntu20.04(Linux)下CH348芯片8路串口序号固定(重启也有效)

Ubuntu20.04(Linux)下CH348芯片8路串口序号固定(重启也有效)

正常情况下USB HUB的物理编号是固定的,本文根据物理编号对应的USB口来修改4个CH348芯片8路串口模块的串口序号 (重启之后串口序号固定不变,共计32路串口)



前言

正常情况下USB HUB的物理编号是固定的,本文根据物理编号对应的USB口来修改4个CH348芯片8路串口模块的串口序号 (重启之后串口序号固定不变,共计32路串口)


提示:以下是本篇文章正文内容,下面案例可供参考

一、确定USB口物理编号

1.插入一个CH348串口模块

2.查看对应USB口物理编号

打开一个终端输入

ls -l /sys/class/tty

可以看到插入的USB物理编号是3-1.1
在这里插入图片描述

二、查看该CH348串口模块信息

1.查看模块芯片信息

打开一个终端输入

# 后面串口号ttyCH9344USB根据你插入的模块其中一路即可(0~7),同一个模块信息相同
udevadm info -a -n /dev/ttyCH9344USB0 

在这里插入图片描述

三、udev规则修改

1.进入目录

终端输入

cd /etc/udev/rules.d

2.创建规则文件

终端输入

# 名字自己定义后缀一样即可
touch 71-ch9344.rules

3.添加重定义规则

终端输入

# 进入编辑刚刚创建的文件
sudo nano 71-ch9344.rules

在文件中输入

SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d9", MODE="0666"

KERNEL=="ttyCH9344USB0" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB0"
KERNEL=="ttyCH9344USB1" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB1"
KERNEL=="ttyCH9344USB2" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB2"
KERNEL=="ttyCH9344USB3" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB3"
KERNEL=="ttyCH9344USB4" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB4"
KERNEL=="ttyCH9344USB5" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB5"
KERNEL=="ttyCH9344USB6" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB6"
KERNEL=="ttyCH9344USB7" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB7"

KERNEL=="ttyCH9344USB8" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB0"
KERNEL=="ttyCH9344USB9" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB1"
KERNEL=="ttyCH9344USB10" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB2"
KERNEL=="ttyCH9344USB11" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB3"
KERNEL=="ttyCH9344USB12" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB4"
KERNEL=="ttyCH9344USB13" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB5"
KERNEL=="ttyCH9344USB14" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB6"
KERNEL=="ttyCH9344USB15" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB7"

KERNEL=="ttyCH9344USB16" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB0"
KERNEL=="ttyCH9344USB17" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB1"
KERNEL=="ttyCH9344USB18" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB2"
KERNEL=="ttyCH9344USB19" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB3"
KERNEL=="ttyCH9344USB20" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB4"
KERNEL=="ttyCH9344USB21" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB5"
KERNEL=="ttyCH9344USB22" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB6"
KERNEL=="ttyCH9344USB23" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB7"

KERNEL=="ttyCH9344USB24" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB0"
KERNEL=="ttyCH9344USB25" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB1"
KERNEL=="ttyCH9344USB26" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB2"
KERNEL=="ttyCH9344USB27" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB3"
KERNEL=="ttyCH9344USB28" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB4"
KERNEL=="ttyCH9344USB29" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB5"
KERNEL=="ttyCH9344USB30" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB6"
KERNEL=="ttyCH9344USB31" KERNELS=="3-1.1:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB7"

其中

ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d9" 根据自己的芯片修改
KERNELS=="3-1.1:1.0"                              根据自己插入的USB口物理编号修改
SYMLINK+="ttyUSB0" -到- SYMLINK+="ttyUSB7"        看你自己想把CH348串口模块各个口改成什么名字
为什么要KERNEL=="ttyCH9344USB0"-到- KERNEL=="ttyCH9344USB31" 每一组都要重新命名?
因为我插四个CH348模块,重启的时候USB物理编号是固定的
但是由于开机上电的时间不一样, ttyCH9344USB可能是0~7,8~15,16~23,24~31
所以把所有可能的情况都重定义一下,最后不管什么情况命名都是ttyUSB0~7

4.根据上述流程其他规则文件

72-ch9344.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d9", MODE="0666"

KERNEL=="ttyCH9344USB0" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB8"
KERNEL=="ttyCH9344USB1" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB9"
KERNEL=="ttyCH9344USB2" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB10"
KERNEL=="ttyCH9344USB3" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB11"
KERNEL=="ttyCH9344USB4" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB12"
KERNEL=="ttyCH9344USB5" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB13"
KERNEL=="ttyCH9344USB6" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB14"
KERNEL=="ttyCH9344USB7" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB15"

KERNEL=="ttyCH9344USB8" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB8"
KERNEL=="ttyCH9344USB9" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB9"
KERNEL=="ttyCH9344USB10" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB10"
KERNEL=="ttyCH9344USB11" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB11"
KERNEL=="ttyCH9344USB12" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB12"
KERNEL=="ttyCH9344USB13" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB13"
KERNEL=="ttyCH9344USB14" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB14"
KERNEL=="ttyCH9344USB15" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB15"

KERNEL=="ttyCH9344USB16" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB8"
KERNEL=="ttyCH9344USB17" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB9"
KERNEL=="ttyCH9344USB18" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB10"
KERNEL=="ttyCH9344USB19" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB11"
KERNEL=="ttyCH9344USB20" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB12"
KERNEL=="ttyCH9344USB21" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB13"
KERNEL=="ttyCH9344USB22" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB14"
KERNEL=="ttyCH9344USB23" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB15"

KERNEL=="ttyCH9344USB24" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB8"
KERNEL=="ttyCH9344USB25" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB9"
KERNEL=="ttyCH9344USB26" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB10"
KERNEL=="ttyCH9344USB27" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB11"
KERNEL=="ttyCH9344USB28" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB12"
KERNEL=="ttyCH9344USB29" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB13"
KERNEL=="ttyCH9344USB30" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB14"
KERNEL=="ttyCH9344USB31" KERNELS=="3-1.2:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB15"

73-ch9344.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d9", MODE="0666"

KERNEL=="ttyCH9344USB0" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB16"
KERNEL=="ttyCH9344USB1" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB17"
KERNEL=="ttyCH9344USB2" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB18"
KERNEL=="ttyCH9344USB3" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB19"
KERNEL=="ttyCH9344USB4" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB20"
KERNEL=="ttyCH9344USB5" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB21"
KERNEL=="ttyCH9344USB6" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB22"
KERNEL=="ttyCH9344USB7" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB23"

KERNEL=="ttyCH9344USB8" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB16"
KERNEL=="ttyCH9344USB9" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB17"
KERNEL=="ttyCH9344USB10" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB18"
KERNEL=="ttyCH9344USB11" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB19"
KERNEL=="ttyCH9344USB12" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB20"
KERNEL=="ttyCH9344USB13" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB21"
KERNEL=="ttyCH9344USB14" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB22"
KERNEL=="ttyCH9344USB15" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB23"

KERNEL=="ttyCH9344USB16" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB16"
KERNEL=="ttyCH9344USB17" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB17"
KERNEL=="ttyCH9344USB18" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB18"
KERNEL=="ttyCH9344USB19" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB19"
KERNEL=="ttyCH9344USB20" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB20"
KERNEL=="ttyCH9344USB21" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB21"
KERNEL=="ttyCH9344USB22" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB22"
KERNEL=="ttyCH9344USB23" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB23"

KERNEL=="ttyCH9344USB24" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB16"
KERNEL=="ttyCH9344USB25" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB17"
KERNEL=="ttyCH9344USB26" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB18"
KERNEL=="ttyCH9344USB27" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB19"
KERNEL=="ttyCH9344USB28" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB20"
KERNEL=="ttyCH9344USB29" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB21"
KERNEL=="ttyCH9344USB30" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB22"
KERNEL=="ttyCH9344USB31" KERNELS=="3-1.3:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB23"

74-ch9344.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d9", MODE="0666"

KERNEL=="ttyCH9344USB0" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB24"
KERNEL=="ttyCH9344USB1" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB25"
KERNEL=="ttyCH9344USB2" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB26"
KERNEL=="ttyCH9344USB3" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB27"
KERNEL=="ttyCH9344USB4" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB28"
KERNEL=="ttyCH9344USB5" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB29"
KERNEL=="ttyCH9344USB6" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB30"
KERNEL=="ttyCH9344USB7" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB31"

KERNEL=="ttyCH9344USB8" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB24"
KERNEL=="ttyCH9344USB9" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB25"
KERNEL=="ttyCH9344USB10" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB26"
KERNEL=="ttyCH9344USB11" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB27"
KERNEL=="ttyCH9344USB12" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB28"
KERNEL=="ttyCH9344USB13" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB29"
KERNEL=="ttyCH9344USB14" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB30"
KERNEL=="ttyCH9344USB15" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB31"

KERNEL=="ttyCH9344USB16" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB24"
KERNEL=="ttyCH9344USB17" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB25"
KERNEL=="ttyCH9344USB18" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB26"
KERNEL=="ttyCH9344USB19" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB27"
KERNEL=="ttyCH9344USB20" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB28"
KERNEL=="ttyCH9344USB21" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB29"
KERNEL=="ttyCH9344USB22" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB30"
KERNEL=="ttyCH9344USB23" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB31"

KERNEL=="ttyCH9344USB24" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB24"
KERNEL=="ttyCH9344USB25" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB25"
KERNEL=="ttyCH9344USB26" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB26"
KERNEL=="ttyCH9344USB27" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB27"
KERNEL=="ttyCH9344USB28" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB28"
KERNEL=="ttyCH9344USB29" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB29"
KERNEL=="ttyCH9344USB30" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB30"
KERNEL=="ttyCH9344USB31" KERNELS=="3-1.4:1.0", SUBSYSTEMS=="usb", MODE:="0666", SYMLINK+="ttyUSB31"

四、参考链接

1.参考链接1: Linux系统固定USB串口设备名称

2.参考链接2: 【官方发布】CH9344 USB转四串口芯片Linux驱动

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 Ubuntu 20.04 系统中编译安装 OpenCV-Python 的步骤: 1. 安装依赖项 ```bash sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev ``` 2. 克隆 OpenCV 仓库 ```bash git clone https://github.com/opencv/opencv.git cd opencv git checkout 4.5.2 ``` 3. 克隆 OpenCV-contrib 仓库(可选) ```bash cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout 4.5.2 ``` 4. 编译 OpenCV ```bash cd ../opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 \ -D PYTHON3_EXECUTABLE=/usr/bin/python3 \ -D PYTHON3_INCLUDE_DIR=/usr/include/python3.8 \ -D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so \ -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \ -D BUILD_opencv_python3=YES \ -D BUILD_opencv_python2=NO \ -D BUILD_EXAMPLES=NO \ -D BUILD_TESTS=NO \ -D BUILD_PERF_TESTS=NO .. make -j8 sudo make install sudo ldconfig ``` 其中,`-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules` 参数是为了编译 OpenCV-contrib 模块,如果不需要可以省略。 5. 测试 OpenCV-Python ```bash python3 >>> import cv2 >>> cv2.__version__ ``` 如果输出的版本号是 4.5.2,则说明安装成功。 以上是在 Ubuntu 20.04 系统中编译安装 OpenCV-Python 的步骤,希望能帮助到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值