RK3568驱动指南|第十三篇 输入子系统-第154章 固定usb设备的设备节点实验

news2024/9/20 22:26:20

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。


【公众号】迅为电子

【粉丝群】824412014(加群获取驱动文档+例程)

【视频观看】嵌入式学习之Linux驱动(第十三篇 输入子系统_全新升级)_基于RK3568

【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板


第154章 固定usb设备的设备节点实验

154.1 需求分析

在Linux系统中,当使用多个USB转串口设备时,经常会遇到插拔USB转串口的顺序变化导致设备节点不稳定的情况。为了解决这个问题,我们可以通过使用udev来固定设备节点,以确保设备节点不受USB转串口插拔顺序的影响。

具体的解决思路是,在学习热插拔的过程中,可以学习并使用udev来自动挂载和卸载U盘,同时也可以利用udev的功能来固定设备节点,以保证设备节点的稳定性。

首先我们来复现下上述所说的问题。如下图所示,首先我们将开发板上的拨码开关设置为向上,此时USB3.0可以接USB设备。J6 usb接口也可以连接USB设备。

开发板烧写buildroot镜像,要确保系统支持ch34x驱动,如果系统不支持的话,需要在内核中进行配置,如下图所示。支持ch34x驱动之后,重新烧写系统镜像。

烧写完成之后,我们在usb3.0接口插入usb转串口模块,打印如下所示:

然后再J6 usb接口插入另一个usb转串口模块,打印如下所示:

经过上面的操作,在usb3.0接口插入的USB转串口模块的设备节点是ttyUSB0,在usbJ6接口插入的USB转串口模块的设备节点是ttyUSB1,但是如果我们先插usbJ6接口的USB转串口模块,再插入usb3.0接口插入的USB转串口模块。

J6 usb接口插入另一个usb转串口模块,打印如下所示:

在usb3.0接口插入usb转串口模块,打印如下所示:

以上实验说明了会遇到插拔USB转串口的顺序变化导致设备节点不稳定的情况。

154.2 解决方案

在开发板的usb3.0接口上插上USB转串口模块,然后输入以下命令,节点根据实际情况进行修改。

udevadm info -a -n /dev/ttyUSB0

udevadm info -a -n /dev/ttyUSB0是一个用于获取有关特定设备节点的详细信息的命令,包括设备的属性、驱动程序、设备路径等。这些命令的参数含义如下所示:

-a:显示与指定设备节点相关联的所有属性。

-n:指定设备节点的路径或名称。

在这种情况下,命令被用于获取/dev/ttyUSB0设备节点的信息。udevadm是一个用于管理Linux中的udev(设备管理器)的命令行工具。它提供了与udev相关的信息和操作。

这个命令的输出可能会包含以下信息

1 设备路径(DEVPATH):设备在系统中的路径,例如/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/ttyUSB0/tty/ttyUSB0。

2 设备节点(DEVNAME):设备在文件系统中的节点,即/dev/ttyUSB0。

3 设备的属性(Device Attributes):包括设备的供应商ID、产品ID、序列号等信息。

4 设备的驱动程序(Device Driver):设备所使用的驱动程序的名称和路径。

5 设备类型(SUBSYSTEM):usb

接下来在开发板的etc/udev/rules.d/目录下,创建一个名为001.rules的规则文件,如下图所示:

在该文件中写入以下规则:

KERNELS==”5-1:1.0”,SUBSYSTEMS==”usb”,MODE:=”0777”,SYMLINK+=”myusb”

SYMLINK是创建一个符号链接,当插入一个USB设备时,udev规则可以自动创建一个符号链接,指向USB设备上的系统路径,从而创建设备节点。

修改完毕之后,重新启动开发板。然后我们首先在usb3.0接口插上usb转串口模块,打印的节点为ttyUSB0,如下所示:

然后在usbJ6接口插上usb转串口模块,打印如下所示:

usb3.0连接的usb转串口模块的设备节点设置了软链接到/dev/myusb,如下图所示:

如果我们先插入usbJ6接口对应节点为ttyUSB0,再插入usb3.0接口对应节点为ttyUSB1,再次查看usb3.0连接的usb转串口模块的设备节点,如下图所示:

由此可见,不管是先插入哪个usb设备,应用程序打开/dev/myusb,就会链接到对应的usb设备上。

至此,固定USB设备的设备节点实验完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1543976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux调试器-gdb

一、背景 程序的发布方式有两种,debug模式和release模式 debug模式:编译器形成可执行程序的时候会给可执行程序添加调试信息 程序员调试时使用debug模式,而release模式用于测试 而gcc/g默认编译,采用release模式 用gcc/g使用…

windows11 openssh服务开启;第三方ping不通局域网windows电脑;ssh连接内部ubuntu系统

参考:https://blog.csdn.net/2301_77554343/article/details/134328867 1、windows11 openssh开启 1)我这边可选功能在设置-系统里面;其他网上看在应用下;添加可选openssh服务器安装 2)安装后打开,管理员…

Python对文件的常见操作用法

在 Python 中,操作文件通常涉及打开文件、读取内容、写入内容以及关闭文件等步骤。下面是一些常见的文件操作及其示例: 1. 打开文件 使用内置的 open() 函数来打开文件。这个函数接受两个主要参数:文件名和模式。模式指定了文件应如何打开&a…

前端-html-01

1.HTML的标签分类 1.1常用排版标签 标签名语义和功能属性单标签还是双标签h1 ~ h6一级标题~六级标题无双标签p段落无双标签hr分隔线无单标签br换行无单标签pre原格式显示无双标签div无语义&#xff0c;用于页面布局无双标签 1.1.1h标题标签 <!DOCTYPE html> <htm…

nav仿真(2)

开启仿真和建图 打开第一个窗口启动仿真&#xff1a; source devel/setup.bash export TURTLEBOT3_MODELburger roslaunch turtlebot3_gazebo turtlebot3_world.launch # 启动仿真打开第二个窗口&#xff0c;开始建图&#xff1a; source devel/setup.bash export TURTLEBOT3_…

Nginx 内存池

目录 零、基本框架 一、基础结构 二、对外接口 三、函数实现 1、ngx_create_pool 2、ngx_destroy_pool 3、ngx_reset_pool 4、ngx_palloc 5、ngx_pnalloc 6、ngx_pmemalign 7、ngx_pfree 8、ngx_pcalloc 9、ngx_pool_cleanup_add 10、ngx_pool_run_cleanup_file…

【spring】@Component注解学习

Component介绍 Component 是 Spring 框架中的一个注解&#xff0c;用于将一个类标记为 Spring 上下文中的一个组件。当一个类被标记为 Component 时&#xff0c;Spring 容器会在启动时自动扫描并实例化这个类&#xff0c;并将其注册到 Spring 上下文中。 Component 注解可以用…

Gorm连接Mysql数据库及其语法

Gorm连接Mysql数据库及其语法 文章目录 Gorm连接Mysql数据库及其语法前期工作找到Gorm的github项目简单了解相关MySQL语法 启动数据库定义数据库模型注意点Gorm Model定义结构体标签(tag)支持的结构体标记&#xff08;Struct tags&#xff09;关联相关标记&#xff08;tags&…

Facebook如何使用增强技术提升广告效果?

AR in AD - case study 脸书2021年宣布了引入AR的新方法&#xff0c;以推动其应用套件中的产品发现和购买。但他们首先考虑是技术。据脸书称&#xff0c;技术一直是增强现实在其应用程序中更广泛使用的主要障碍。这就是为什么它现在正在做出改变&#xff0c;使企业主和广告商更…

DFS进阶——全排列

通过后续的题目希望大家明白&#xff0c;dfs不仅仅是对图的遍历&#xff0c;他还有很多用法。 DFS进阶1——回溯 先说一下回溯的板子 dfs(){ for(......){标记信息dfs()撤销标记 } }回溯模板——递归实现排列型枚举 题目分析 其实就是对1~n的数字全排列&#xff0c;这里就…

【JavaScript】JavaScript 程序流程控制 ⑥ ( while 循环概念 | while 循环语法结构 )

文章目录 一、while 循环1、while 循环概念2、while 循环语法结构 二、while 循环 - 代码示例1、打印数字2、计算 1 - 10 之和 一、while 循环 1、while 循环概念 在 JavaScript 中 , while 循环 是一种 " 循环控制语句 " , 使用该语句就可以 重复执行一段代码块 , …

Java项目:75 springboot房产销售系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 使用房产销售系统分为管理员和用户、销售经理三个角色的权限子模块。 管理员所能使用的功能主要有&#xff1a;首页、个人中心、用户管理、销售经理管…

MRC是谁?- 媒体评级委员会 Media Rating Council

在在线广告的世界里&#xff0c;有许多不同的技术和实践用于提供和衡量广告。对于广告商、出版商和营销人员来说&#xff0c;了解这些技术是如何工作的以及如何有效使用这些技术很重要。在这方面发挥关键作用的一个组织是媒体评级委员会&#xff08;MRC&#xff09;。 1. 了解…

OpenCV 形态学处理函数

四、形态学处理&#xff08;膨胀&#xff0c;腐蚀&#xff0c;开闭运算&#xff09;_getstructuringelement()函数作用-CSDN博客 数字图像处理(c opencv)&#xff1a;形态学图像处理-morphologyEx函数实现腐蚀膨胀、开闭运算、击中-击不中变换、形态学梯度、顶帽黑帽变换 - 知乎…

Java代码基础算法练习-搬砖问题-2024.03.25

任务描述&#xff1a; m块砖&#xff0c;n人搬&#xff0c;男搬4&#xff0c;女搬3&#xff0c;两个小孩抬一砖&#xff0c;要求一次全搬完&#xff0c;问男、 女、小孩各若干&#xff1f; 任务要求&#xff1a; 代码示例&#xff1a; package M0317_0331;import java.util.S…

leetcode刷题日记-外观数组

题目描述 解题思路 初始化字符串 init 为 “1”&#xff0c;作为外观数列的第一项。 通过循环迭代生成外观数列的下一项&#xff0c;循环次数为 n-1&#xff0c;因为已经初始化了第一项。 在每次迭代中&#xff0c;通过两个指针 pos 和 start 来遍历当前项 init&#xff0c;po…

联合体/共用体

一、联合体类型的声明 联合体是由一个或多个成员构成&#xff0c;这些成员可以是不同的类型。 编译器只会为最大的成员分配足够的内存空间。 联合体的特点是全体成员共用一块内存空间&#xff0c;故联合体也叫共用体。 联合体中&#xff0c;给一个成员赋值&#xff0c;那么其他…

Spring Boot + MyBatis

一、配置依赖 <!-- MyBatis --> <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.5.3</version> </dependency> <!-- junit测试依赖 --&g…

套娃式大小AI群体导致AI觉醒吗?

一、“套娃式”AI训练 目前&#xff0c;我们所讨论的人工智能&#xff08;AI&#xff09;主要是基于机器学习和深度学习技术的算法系统。它们通过不断学习、优化和改进以完成特定任务&#xff0c;但并不具备自我意识或者独立的创造性思考能力&#xff0c;即“觉醒”。 “套娃式…

代码随想录算法训练营第33天|1005.K次取反后最大化的数组和|134. 加油站|135. 分发糖果

代码随想录算法训练营第33天|1005.K次取反后最大化的数组和|134. 加油站|135. 分发糖果 1005.K次取反后最大化的数组和 本题简单一些&#xff0c;估计大家不用想着贪心 &#xff0c;用自己直觉也会有思路。 https://programmercarl.com/1005.K%E6%AC%A1%E5%8F%96%E5%8F%8D%E5%…