ubuntu 下 串口、USB设备绑定固定名称

博客讲述了Linux系统中udev设备管理工具如何解决串口和USB设备命名不固定的问题。udev允许用户定制设备名称,例如通过规则文件设置USB转串口设备如 ttyUSB* 的权限和符号链接,以实现固定命名。当遇到无法打开/dev/ttyUSB0或/dev/ttyS0的错误时,可能是因为用户不属于dialout组,需要将其添加到该组。
摘要由CSDN通过智能技术生成

目录[-]


1、为什么串口设备、USB设备有绑定固定名称的需求

• /dev 目录下原有挂在静态设备太多

在/dev目录下存在的静态设备关联文件过于多,并且在系统启动时无法得知哪些设备是真实存在的。

• Linux下设备文件与实际硬件设备的映射关系不是确定的

比如系统中有两个USB转串口设备,每次开机启动时,由于加载顺序存在一定的不确定性,此时则系统中存在的设备文件 /dev/ttyUSB0 与 /dev/ttyUSB1 对应的硬件设备可能是不同的。


2、udev的使用

udev是Linux2.6内核之后默认的设备管理工具,其目标就是解决上面的两个问题,并且以守护进程的形式运行。udev和文件系统是独立的,可以让用户定制自己的系统,比如创建设备连接符,修改设备名称,更改设备属组,权限等。udev的配置文件处于 /etc/udev/udev.conf 目录下,按照配置文件在 /etc/udev/rules.d 目录下添加对应的rule文件即可。


3、设置 usb转串口设备 的例子

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

• KERNEL 内核设备的名称,例如 ttyUSB* ,sda,等,是处于/dev 目录下的设备名称

每台设备都有一个idVendor:厂家标示 和 idProduct:产品标示。其中厂家标示是供应商ID,是唯一的,产品标示则是厂家自定义的ID。

通过 lsusb 可以查看USB的设备信息。

• MODE 

赋予设备权限。采用 0777 读写权限即可。

• SYMLINK

SYMLINK为 /dev/下的设备文件产生符号链接。因为 udev 只能为某个设备产生一个设备文件,所以为了不覆盖系统默认的 udev 规则产生的设备文件,推荐使用符号链接。


4、cannot open /dev/ttyUSB0 或 cannot open /dev/ttyS0

原因是因为 tty 属于 dialout 组别,可以先查看下当前用户所属的组别。比图用户名是ubuntu,则可以按下以下指令查看:

groups ubuntu

如果当前用户没有隶属于dialout,则将该用户加进去dialout组别。

sudo gpasswd --add ubuntu dialout

参考链接: www.aikejiao.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shawn.zhang.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值