原創博文:轉載請標明出處:http://www.cnblogs.com/zxouxuewei
為了不讓我們的usb設備在使用時,由於設備節點注冊的ID不同,設備名稱會不同,設備如何在 Linux 中永久修改 USB 設備權限。
1.創建一個腳本文件
touch create_dashgo_udev.sh
2.在文件中添加如下內容
echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0777", GROUP:="dialout", SYMLINK+="keysi_base"' >/etc/udev/rules.d/keysi_base.rules service udev reload sleep 2 service udev restart
3.查看自己設備的idVendor和idProduct
lsusb -vvv

上面lsusb的輸出中,找出你的 USB 設備,並找出"idVendor"和"idProduct"字段。本例中,我們的結果是idVendor (0x067b)和 idProduct (0x2303)。修改上面的create_dashgo_udev.sh文件
udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0
SUBSYSTEMS=="usb" DRIVERS=="cp210x" ATTRS{bInterfaceClass}=="ff" ATTRS{bInterfaceSubClass}=="00" ATTRS{bInterfaceProtocol}=="00" ATTRS{bNumEndpoints}=="02" ATTRS{supports_autosuspend}=="1" ATTRS{bAlternateSetting}==" 0" ATTRS{bInterfaceNumber}=="00" ATTRS{interface}=="CP2102 USB to UART Bridge Controller" KERNEL=="ttyUSB*", KERNELS=="1-2.1", MODE:="0777",SYMLINK+="slamtec_base_" KERNEL=="ttyUSB*", KERNELS=="1-2.2", MODE:="0777",SYMLINK+="slamtec_laser_"
4.運行腳本
sudo sh create_dashgo_udev.sh
5.查看效果
ls /dev/keysi_base
6.在代碼中使用設備名稱
<param name="usart_port" type="string" value="/dev/keysi_base"/> <param name="baud_data" type="int" value="115200"/>
<param name="robot_frame_id" type="string" value="base_link"/>
