ls命令:
ls -l /dev/tty*ubuntu
查看有哪些设备链接在你的电脑上:
lsusb.net
产看串口个数以及对应的tty:
dmesg | grep ttyS*blog
~~~
我使用了一个usb扩展器,这边能够看到,被链接在ttyUSB0上的就是个人usb扩展器,我在上面链接了3个外接设备,都是被链接在ttyUSB0上。接口
如何绑定设备到具体的usb串口get
udev 是经过内核产生设备名增长别名的方式来达到 无论设备链接的顺序而维持一个统一的设备名。内核一般会产生自定义的设备名 如sda1 sdb1等it
,可是udev能够经过设备的其余信息如总线 ,生产商等不一样来区分不一样的硬件设备。在/etc的 目录下。class
例如 :ubuntu内核中,产生sda 设备名,能够经过制定 udev规则,让udev 除了产生/dev/sda/ 设备文件外, 另外建立 一个符号连接叫 /dev/name ,这样在ros串口处理的程序中,就 可使用 产生的新的 设备名。扩展
经过lsusb 命令能够查看到全部外接usb的接口设备的描述列表,能够获得id product和id VENDOR的数值,来进行后续的绑定。 ls /dev 能够查看全部 外接串口设备的名字列表。终端
首先 ,全部制定的udev 规则最终 会在 /etc/ udev /rule.d 这个文件夹下面 。 硬件
经过芯片的特定码,来产生软连接别名
能够一个脚本以下:
echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666", GROUP:="dialout", SYMLINK+="dashgo"' >/etc/udev/rules.d/ch34x.rules
绑定 1a86 7523 的串口设备, 会在/etc/udev/rule.d 下 产生 相应的 规则文件,ttyUSB产生新的别名即 dashgo。
使修改生效
sudo udevadm trigger
察看绑定是否成功
ls -l /dev/
看看里面是否存在一个叫作dashgo的硬件
若是有的话,那么ros中通讯协议的时候硬件名称就能够写上dashgo来代替ttyUSB0等等。
若是想要打开串口时不须要root权限,建立文件/etc/udev/rules.d/70-ttyusb.rules,写入:
KERNEL=="ttyUSB[0-9]*",MODE="0666"