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"