您的位置:首页 > 运维架构 > Linux

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

2016-11-26 11:28 543 查看
最近项目在使用树莓派,需要在树莓派上挂载多个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


到这里就可以实现上述功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: