USB设备绑定固定端口
电脑每次关机重启,串口号都会变。例如电脑重启之后,USB串口会从/dev/ttyUSB1
变成/dev/ttyUSB0
,但是我的程序又写死了串口路径,这就导致重启或者拔插之后,经常会无法正常获取数据。
这时候,端口绑定就派上用场了。
-
查看USB设备命令:
lsusb
终端会返回一堆设备,可以插拔两次,判断是哪一个。Lin@Lin:~$ lsusb Bus 001 Device 010: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
HFI B9 IMU是这个Bus 001 Device 011: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
重点是10c4:ea60
-
进入驱动设备管理的文件夹命令:
cd /etc/udev/rules.d
-
添加并修改文件
-
有vim的话:
sudo vim usb_imu.rules
-
没有vim的话:
sudo gedit usb_imu.rules
-
将
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="ttyUSB_IMU"
写入文件,保存退出。
同理,我们也可以将其他USB设备绑定串口号,只要注意
ATTRS{idVendor}
、ATTRS{idProduct}
和SYMLINK
的修改即可.例如,我将IMU设备绑定了
ttyUSB_IMU
。 -
-
重启服务:
-
service udev reload
-
service udev restart
-
拔插USB设备。
这样以后无论是插拔还是重启,只要是这个设备,就会绑定
ttyUSB_IMU
这个串口号。 -