嵌入式Linux设备中串口设备文件名不固定问题

news/2024/12/29 21:32:56/

在嵌入式Linux下,USB设备节点的名称ttyUSB是根据设备的插拔顺序而动态分配的,因此可能会导致设备节点名称不固定的问题。解决这个问题的方法有以下几种:

使用udev规则创建符号链接到固定路径:

如果USB设备是一个串口设备,可以使用udev规则创建一个符号链接到固定路径。

可以通过编写udev规则来为USB设备创建一个固定的符号链接。

首先,使用lsusb命令获取设备的Vendor ID和Product ID。

我这里是 1a96:7123, 当然你可以不连接USB设备输入lsusb,连接上后再输一次lsusb,多加出现的那一行就是对应的ID啦。

然后,创建一个udev规则文件,例如/etc/udev/rules.d/99-usb-serial.rules,并添加以下内容:

# 添加如下规则,根据设备的ACTION、KERNEL、idVendor和idProduct属性来匹配USB串口设备,并创建一个名为my_device的符号链接。
ACTION=="add", KERNEL=="ttyUSB*", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", SYMLINK+="my_device"# 或者
KERNEL=="ttyUSB*", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", MODE:="0777", SYMLINK+="my_device"# 或者
SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", MODE="0777"

将xxxx和yyyy替换为实际的Vendor ID和Product ID。

最后,执行如下命令使规则生效

# 重启udev服务
service udev reload
service udev restart# 或者执行
sudo udevadm control --reload-rules

现在,USB设备将在插入时创建一个名为my_device的符号链接,可以通过该链接访问设备。



使用USB串口设备的固定路径:


如果USB设备是一个串口设备,可以通过修改内核参数来分配一个固定的设备路径。在启动时,可以通过内核命令行参数console=ttyUSB0来指定设备路径为ttyUSB0。这样,每次启动时,USB设备都将被分配到相同的设备节点。


 


http://www.ppmy.cn/news/1186953.html

相关文章

入对IT行业无疑是阶层跨越的一次弯道超车!

如今赚钱最多的行业还是金融和IT行业,可是金融是出了名的挑家庭背景,只有IT行业成了一个个普通人家孩子创造奇迹脱离原来阶级的温床。 IT行业的整体薪酬水平也比较可观,在IT公司里见到许多出身普通最后晋升中产的例子给了很大的鼓舞。 IT行业…

基于人工智能的结直肠癌分类识别研究

基于人工智能的结直肠癌分类识别研究 摘要:随着我国人口老龄化和人工智能系统的发展,目前行业内相对比较传统的结直肠癌分类方法无法满足客户的需求。为了改进传统结直肠癌分类方法在结直肠癌分类上得短板问题,同时结直肠癌的分类识别方法目前…

六、【图像去水印】

文章目录 裁剪法移动复制法内容识别去水印色阶法去水印消失点法去水印反相混合法 裁剪法 处于边缘的水印,通过裁剪去除,如下图: 移动复制法 移动复制法适用于水印的背景这部分区域比较相似的情况下使用,如下图先使用矩形选区选中…

vue2 + element + Nuxt 双向邦定弹框

文章目录 1:子组件2:通知父组件更新属性3:父组件使用4:案例: 使用::visible.sync双向绑定 :visible 属性绑定 .sync vue双向绑定 1:子组件 :visible"dialogVisible"2:通…

vue点击图片放大?

在Vue中实现点击图片放大功能,可以通过以下步骤实现: 安装vue-image-lightbox库(如果已有该库,则无需安装)1: 通过npm进行安装:npm install vue-image-lightbox1。 在Vue组件中引入vue-image…

Nginx中reload重载配置文件的真相

Nginx reload重载配置文件的过程: 1.当修改好nginx.conf之后,向master进程发送HUP信号,或者使用nginx -s reload命令。 2.master进程校验配置语法是否正确。 3.master进程打开新的监听端口。 4.master进程用新配置文件启动新的worker进程。 5…

【0基础学Java第四课】-- 逻辑控制

4. 逻辑控制 4.1 顺序结构4.2 分支结构4.2.1 if语句判断一个数字是奇数还是偶数判断一个数字是正数,负数,还是零判断一个年份是否为闰年 4.2.2 switch 语句 4.3 while循环打印 1 - 10 的数字计算 1 - 100 的和计算 5 的阶乘计算1!2&#xff0…

单页面路由跳转之hash模式

hash模式 hash模式主要通过监听URL地址的哈希值的变化来实现页面更新 function routeHandle() {let appElm document.querySelector(#app)let hash window.location.hash.slice(1)switch (hash) {case :case /:case /home:appElm.innerHTML <h1>Home</h1><bu…