$ cd /etv/udev/rules.d
10-kinova-arm.rules 70-snap.gimp.rules 70-snap.snap-store.rules
56-pan-tilt.rules 70-snap.snapd.rules 99-realsense-libusb.rules
这里的文件都是以 .rules 结尾的,因此我们也需要创建一个 .rules 的文件。
2、.rules文件的编写方法
.rules 文件怎么写?不要慌,虽然看不懂这是啥,但是对于本任务来说写起来很简单的!
我们可以根据 udev 规则来编写 rules 文件。udev 是 Linux kernel 2.6 系列的设备管理器,它主要的功能是管理 /dev 目录底下的设备节点。还看不懂?没事,那别看了,直接上手写吧~
首先可以使用 lsusb 命令查看USB 设备信息:
红色框中现实的就是我的云台设备的 USB 信息,如果不知道自己的硬件设备的信息是哪个,可以分别在插拔的状态下使用lsusb命令,然后找不同就好啦~
这里只需要关注一个信息即可,即设备的 ID 信息,这个ID由芯片制造商设置,可以唯一表示该设备,我这里是 ID 0403:6014,其中冒号前的 0403 代表设备生产商,后面的 6014 代表设备号。
因此我们就可以新建一个 .relus 文件,文件名前缀随便取,比如我这个:
$ sudo gedit dynamxel.relus
然后再打开的文件里填入下面的内容:
KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE:="0777", SYMLINK+="dynamixel-pantilt"
- KERNEL代表设备的内核设备名称.常见的比如硬盘的sd*:sda、sdb...,USB 的 ttyUSB*:ttyUSB0、ttyUSB1...;
- ATTRS{idVendor} 代表设备商ID;
- ATTRS{idProduct} 代表设备号;
- MODE 代表权限,777代表赋予可读可写可运行的权限,具体的原理可以参考这里:
Linux权限详解(chmod、600、644、700、711、755、777、4755、6755、7755)_林20的博客-CSDN博客_chmod700什么意思权限简介Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限......
https://blog.csdn.net/u013197629/article/details/73608613
- SYMLINK 代表映射的名称。保存文件,重新拔插USB即可。
以后打开设备是,可以使用 open("/dev/dynamixel-pantilt") 的方式打开了,再也不用担心端口号是多少咯~
3、映射结果查看
可以使用命令 ls -l /dev |grep ttyUSB 查看设备名映射的情况:
$ ls -l /dev |grep ttyUSB
lrwxrwxrwx 1 root root 7 7月 18 15:38 dynamixel-pantilt -> ttyUSB0
crwxrwxrwx 1 root dialout 188, 0 7月 18 15:38 ttyUSB0
usb端口号绑定 - CAM& - 博客园
linux树莓派下绑定USB口,固定USB串口设备号,解决USB转串口ID相同情况,_蒋程扬的博客-CSDN博客
近期调试了一款云台,控制方面需要用到串口通信,调试过程中发现了一个问题,就是Linux分配给外设的USB端口号与端口的上电顺序有关,这就导致如果需要USB端口连接的外设多了之后,每次分配至云台的端口号不一致,因此就需要将云台的USB端口映射为一个固定的名字,这样每次程序调用这个固定的名字即可,就不需要每次根据实际的端口号改代码了。红色框中现实的就是我的云台设备的USB信息,如果不知道自己的硬件设备的信息是哪个,可以分别在插拔的状态下使用lsusb命令,然后找不同就好啦~.........
Linux下usb串口修改名称1 查看自己的串口号2 新建设备信息文件3 刷新串口4 重新查看串口
1 查看自己的串口号
fly@ubuntu:~/Desktop$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 003 Device 003: ID 0e0f:0002 VMware, I
修改rules文件的PID和VID,通过ls
usb命令查看PID和VID以及ls -l info /dev/laser查看是否修改成功。
sudo service reload
sudo service restart
重新加载dev
参考连接:使用udev规则创建
USB设备挂载点
映射 – ROS小课堂 (corvin.cn)
网上方法很多,大多试过但是无效,该方法不完美但是亲测有效。
大致流程为获取对应usb的唯一信息,然后根据该唯一信息编写规则文件,在规则文件中依据唯一信息命名映射至真实usb口。
不完美之处在于唯一信息获取方式死板,无法批量,快速获得。
首先,树莓派usb真实名是树莓派按插入顺序自动命名的,USB串口设备的命名规则是 /dev/ttyUSB0 ,/dev/ttyUSB1,/dev/ttyUSB2。该...
由于ubuntu USB设备号为从零开始依次累加,所以多个设备每次开机后设备号不固定,机器人每次开机都要蛋疼的按顺序插,
在网上找到一种方法:udev的规则
udev的规则说明,可以参考博客说明:http://blog.csdn.net/cokewei/article/details/8281239
将端口重映射到新的固定的名字,并且设置其权限为可读。使用对应的id端口映射到固定的...
由于
usb串口号容易变,给程序的运行带来了些许不便,所以特此学习了一下
固定设备
usb串口号,主要有两种方法,各有利弊.
通过
usb转串口的芯片不同,设串口名。
1.查看串口设备
ls
usb
(拔掉
usb后,发现少了一行:Bus 001 Device 018: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port)
其中的“ID 067b:2303”就是我们需要用的(不同芯片会不一样,我这条是绿联的,最常见的
会报错 ls: 无法访问 ‘/dev/ttyUSB0’。
原因就是:这句命令只有当你的usb端口插上正确的usb转串口的设备后才能运行成功。
/dev/ttyUSB0指的就是USB转串口终端,要接USB转串口类型的设备,比如单片机等。
如上图,第一次没有插设备,报错。
插上设备后在输入命令才有正确输出。
附:各种tty接口型号
1、/dev/tty
关于 GNURadio-OFDM 运行时掉帧问题的解决
ZYHH_: