日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 绑定USB设备端口

發布時間:2023/12/8 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 绑定USB设备端口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux 綁定USB設備端口

  • 1 根據設備ID綁定
  • 2 根據電腦USB硬件端口綁定,只要插入該USB端口即為設定設備名

1 根據設備ID綁定

方法特點:按照ID綁定的話不需要固定USB接口,它是根據設備自身的ID進行綁定,但是如果有多個設備的串口使用同一款串口芯片的話,會出現紊亂

查看需要綁定的設備的idVendor 和idpProduct,例如我要綁定一個rplidar的激光雷達

$ lsusb


新建一個規則文件:

$ sudo gedit /etc/udev/rules.d/com_rplidar.rules

自定義打開文件寫入自定義規則。這里最好新建一個文件,不要覆蓋以前的文件了。如果是相同設備還需要額外的辨別參數也可以添加額外的參數。我們只取前面的數值10c4,ea60,,后面的描述不要。

KERNEL=="ttyUSB*" , ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60",MODE:="0777" ,SYMLINK+="ttyRplidar"

然后使其作用:

$ sudo udevadm trigger

查看是否成功

$ ls -l /dev/ttyRplidar lrwxrwxrwx 1 root root 7 Nov 12 22:22 /dev/ttyRplidar -> ttyUSB0

或者

ls /dev/tty*


如圖,可以看到新增了一個設備,正是我們在規則文件中設置的別名。

如果不行的話先檢測規則文件的格式有沒有錯誤,接著將USB拔了再重插。

還有其他額外的設備需要則加一行,方法一樣。

2 根據電腦USB硬件端口綁定,只要插入該USB端口即為設定設備名

方法特點:按照USB硬件ID綁定的話必須固定接口對應的設備,因為它只根據電腦自身的USB硬件地址確定,但是它可以解決設備使用同一款串口芯片導致ID相同的問題

有時候我們兩個串口設備使用了痛苦的USB芯片,例如激光雷達和機械臂使用了同款的USB芯片,在終端中輸入

$ lsusb

會發現兩者的USB端口的VID和PID是相同的(10c4:ea60),所以開啟了機械臂后,激光雷達啟動時會指向到機械臂的端口。

將USB設備的接入的端口進行名稱綁定,拔出或關閉USB設備后,在端口中輸入

$ ls /dev

再插入或打開USB設備,輸入

$ ls /dev

找到USB設備的名稱(確定當前各個設備的串口名字,如機械臂是ttyUSB1,激光雷達是ttyUSB0),然后輸入

$ udevadm info --attribute-walk --name=/dev/ttyUSB1

可以看到

... looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4:1.0/ttyUSB1/tty/ttyUSB1':KERNEL=="ttyUSB1"SUBSYSTEM=="tty"DRIVER==""looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/ 1-2/1-2.4/1-2.4.4/1-2.4.4:1.0/ttyUSB1':KERNELS=="ttyUSB1"SUBSYSTEMS=="usb-serial"DRIVERS=="cp210x"ATTRS{port_number}=="0"looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/ 1-2/1-2.4/1-2.4.4/1-2.4.4:1.0':KERNELS=="1-2.4.4:1.0"SUBSYSTEMS=="usb"DRIVERS=="cp210x"ATTRS{authorized}=="1"ATTRS{bAlternateSetting}==" 0"ATTRS{bInterfaceClass}=="ff"ATTRS{bInterfaceNumber}=="00"ATTRS{bInterfaceProtocol}=="00"ATTRS{bInterfaceSubClass}=="00"ATTRS{bNumEndpoints}=="02"ATTRS{interface}=="CP2102 USB to UART Bridge Controller"ATTRS{supports_autosuspend}=="1"...

可以得知該設備現在使用的端口號為“1-2.4.4:1.0”,接下來開始編寫綁定規則

$ sudo gedit /etc/udev/rules.d/ttyUSBLink.rules

在文件中添加

ACTION=="add",KERNELS=="1-2.4.4:1.0",SUBSYSTEMS=="usb",MODE:="0777", SYMLINK+="rplidar"

保存文件并重啟PC,在終端中輸入

$ ls -l /dev |grep ttyUSB

查看是否成功修改

注意:因為是綁定固定的端口,所以usb的接口不能隨意更換位置,考慮以后在HUB上標注各個位置插的設備。

總結

以上是生活随笔為你收集整理的Linux 绑定USB设备端口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。