<Raspberry:udev> linux下给特定USB端口特定设备绑定自定义设备符

来源:互联网 发布:四方数据保密协议范本 编辑:程序博客网 时间:2024/05/21 07:13

最近项目在使用树莓派,需要在树莓派上挂载多个USB转串口模块,但是linux下识别USB设备通常是按照插入顺序命名的,比如第一个插入就是USB0第二个USB1如此类推。。。这样就给我们写脚本或者写程序上添加不少难度,因为存在开机时设备名不稳定随时改变的可能。
这时候我们就可以用到udev规则,就可以实现给在特定的USB端口上的特定设备一个自定义的设备文件链接。
参考:
http://lnmcc.net/2014/03/14/%E4%BD%BF%E7%94%A8udev%E8%A7%84%E5%88%99%E5%9B%BA%E5%AE%9A%E8%AE%BE%E5%A4%87%E5%90%8D/
实现:
终端输入udevadm info --attribute-walk --name=/dev/video0
然后会有一大堆东西打出来

KERNELS=="1-1.3:1.0"    SUBSYSTEMS=="usb"    DRIVERS=="cp210x"    ATTRS{bInterfaceClass}=="ff"    ATTRS{bInterfaceSubClass}=="00"    ATTRS{bInterfaceProtocol}=="00"    ATTRS{bNumEndpoints}=="02"    ATTRS{authorized}=="1"    ATTRS{supports_autosuspend}=="1"    ATTRS{bAlternateSetting}==" 0"    ATTRS{bInterfaceNumber}=="00"    ATTRS{interface}=="CP2102 USB to UART Bridge Controller"

我们需要的是这一段
接着在/etc/udev/rules.d下建立一个60-USBSerial.rules的文件,内容:

ACTION=="add",KERNELS=="1-1.x:1.0(物理端口)",SUBSYSTEMS=="usb",DRIVERS=="cp210x",SYMLINK+="MY_Serial"

重启udev服务:

/etc/init.d/udev restart

到这里就可以实现上述功能。

1 0
原创粉丝点击