ubuntu 为USB串口绑定固定的设备名

参考文件 

1.ubuntu下为usb绑定固定的设备名

2.建立USB串口别名,创建udev规则

3. UDEV命令中文翻译

查找 usb设备和camera

# 查看 video 设备
ls /dev/video*
#查看usb 设备
ls /dev/ttyUSB*
#查看端口地址
yan@yan-virtual-machine:~$ udevadm info /dev/video0
P: /devices/pci0000:00/0000:00:15.0/0000:03:00.0/usb3/3-2/3-2.1/3-2.1:1.0/video4linux/video0
N: video0
#其中3-2.1:1.0 为端口地址
#查看usb 设备 的端口地址
udevadm info /dev/ttyUSB0

查找设备idVendor ,和id Prodcut 命令

#查看详细信息
udevadm info --attribute-walk --name=/dev/video0 或者 lsusb

创建udev 规则

mkdir ~/arm
cd ~/arm
vim arm.rules

内容如下:

1.绑定USB 端口号

# set the udev rule , make the device_port be fixed by rplidar

ACTION=="add",KERNELS=="1-1.2:1.0",SUBSYSTEMS=="usb",MODE:="0777",SYMLINK+="imu"
ACTION=="add",KERNELS=="3-3:1.0",SUBSYSTEMS=="usb",MODE:="0777",SYMLINK+="lidar"
ACTION=="add",KERNELS=="3-2:1.0",SUBSYSTEMS=="usb",MODE:="0777",SYMLINK+="my_serial3"

ACTION=="add",KERNELS=="2-1:1.0",SUBSYSTEMS=="usb",ATTR{index}=="0",MODE:="0777",SYMLINK+="myvideo2"

缺点:固定好之后usb设备插入的usb端口不能再改变。

2.绑定USB串口号,通过USB ID来识别

KERNEL==”ttyUSB*”, ATTRS{idVendor}==”10c4”, ATTRS{idProduct}==”ea60”, MODE:=”0666”, SYMLINK+=”lidar”
KERNEL==”ttyUSB*”, ATTRS{idVendor}==”1a86”, ATTRS{idProduct}==”7523”, MODE:=”0666”, SYMLINK+=”base”

缺点: 当两个串口芯片相同时会出现ID完全相同的情况, 例如上图的两个串口芯片都为
Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
ID也都为10c4:ea60.

 

新建脚本文件

vim arm.sh
#内容如下

#!/bin/bash

sudo cp arm.rules /etc/udev/rules.d
echo " "
echo "Restarting udev"
echo ""
sudo service udev reload
sudo service udev restart
echo "finish "

 

1.运行脚本文件

sudo chmod -R 777 *
./arm.sh 

2.出现下面的信息则说明OK了
Restarting udev

finish

3.新插拔设备(或重启)就会在/dev目录下生成固定的设备名 ,检查规则是否建立成功

# udevadm test [options] devpath

Simulate a udev event run for the given device, and print debug output.

 

模拟插拔事件命令

#模拟摄像头
udevadm test /sys/class/video4linux/video0

#模拟usb设备
udevadm test /sys/class/tty/ttyUSB0
View Code

 

#查看规则生效没有
ls -l
/dev/rplidar

出现/dev/rplidar,则说明别名成功。

 

posted @ 2021-09-08 16:31  绵绵01  阅读(1501)  评论(0编辑  收藏  举报
levels of contents