参考文件
查找 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
#查看规则生效没有
ls -l /dev/rplidar
出现/dev/rplidar,则说明别名成功。