【问题记录】当机器人存在多个串口需要绑定时udevadm的作用

一、正常绑定

输入sudo udevadm info -a /dev/ttyUSBx | grep KERNELS 命令

会出现KERNELS的编号,记录编号。

修改规则文件/etc/udev/rules.d/99-usb.rules

添加以下命令

KERNEL=="ttyUSB*", KERNELS=="2-1.2:1.0", MODE:="0666", GROUP:="dialout", SYMLINK+="base"

  • 详细解释如下:
  • KERNEL=="ttyUSB": 这个条件匹配设备名称以 ttyUSB 开头的设备(例如 ttyUSB0, ttyUSB1 等)。
  • KERNELS=="2-1.2:1.0": 这个条件用于匹配特定的设备路径或总线 ID。2-1.2:1.0 是设备的唯一标识符,表示从 USB 总线上的特定端口连接的设备。
  • MODE:="0666": 这个动作设置设备文件的权限。0666 表示所有用户都可以读取和写入该设备文件。
  • GROUP:="dialout": 这个动作将设备文件的所属组设置为 dialout,这样只有属于该组的用户才能访问该设备。
  • SYMLINK+="base": 这个动作创建一个名为 base 的符号链接,指向匹配的设备文件。这使得访问该设备更加方便,因为可以使用 base 而不是完整的设备路径。

修改完规则后,使用以下命令重新加载 udev 规则:

sudo udevadm control --reload-rulessudo udevadm trigger

输入ls -l /dev |grep -E ‘ttyUSB’查看有无配置成功

二、需要添加权限

如果遇到特殊设备需要添加某些权限,例如可以加入以下规则:

ACTION=="add",SUBSYSTEMS=="usb",ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="0053", GROUP="users", MODE="0777"

这条规则的目的是为特定的 USB 设备(具有指定的厂商和产品 ID)设置开放的访问权限。

详细解释:

ACTION=="add": 这个条件表示规则适用于添加新设备时的操作。当有设备被连接到系统时,此规则会被触发。

SUBSYSTEMS=="usb": 这个条件指定该规则仅适用于 USB 设备。它确保只有当设备属于 USB 子系统时,规则才会生效。

ATTRS{idVendor}=="04d8": 这个条件匹配 USB 设备的厂商 ID。04d8 是特定厂商的标识符,只有匹配该 ID 的设备才会执行此规则。

ATTRS{idProduct}=="0053": 这个条件匹配 USB 设备的产品 ID。0053 是特定产品的标识符,结合厂商 ID,确保只对特定的设备生效。

GROUP="users": 这个动作将设备文件的所属组设置为 users,使得该组的用户能够访问该设备。

MODE="0777": 这个动作设置设备文件的权限为 0777,表示所有用户(拥有者、组用户和其他用户)都可以读取、写入和执行该设备文件。

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

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

相关文章

快消品行业数字化转型:定制开发 S2B2C 商城小程序的主战场选择与突破

摘要:在快消品行业数字化转型的背景下,企业内部各部门虽积极尝试数字化但效果欠佳,核心问题在于数字化规模小难以实现企业整体转型,快消品龙头企业更为突出。定制开发 21 链动模式 S2B2C 商城小程序为解决这一问题提供了新途径。该…

Windows、Linux系统上进行CPU和内存压力测试

CPU和内存压力测试 1. Linux环境 Linux环境下,我们可以用 stress 工具进行内存、CPU等的压力测试。 【1】. stress工具说明 [kalamikysrv1 ~]$ stress --help stress imposes certain types of compute stress on your systemUsage: stress [OPTION [ARG]] ...-…

STM32使用串口下载程序

STM32使用串口下载程序 FluMcu软件下载地址 单片机在线编程网 STM32 MCU启动模式配置(Boot Configuration) 单片机复位后,SYSCLK的第4个上升沿,BOOT引脚上的值将锁存,用户可以通过设置BOOT0和BOOT1引脚的值,来选择复位后的启动…

每天五分钟深度学习pytoroch:基于pytorch搭建逻辑回归算法模型

本文重点 前面我们学习了线性回归模型的搭建,无论是基于pytorch还是不基于pytorch,以上的模型都是回归模型,本文我们将使用pytorch搭建逻辑回归模型,逻辑回归模型是一个经典的分类问题。 模型搭建 class LogisticRegression(nn.Module) : def __init__(self) :super (Lo…

Mybatis-18.动态SQL-sqlinclude

一.sql&include 为什么需要<sql>和<include>标签&#xff1f; 这是因为这些代码是重复的&#xff0c;能够消除重复会提高代码的可读性和效率。 那我们就可以使用<sql>标签对这些片段进行一个抽取。然后在原来抽取的地方再将这个<sql>片段引用进来。…

探索开源MiniMind项目:让大语言模型不再神秘(1)

简介&#xff1a; 声明&#xff1a;本人非此项目作者&#xff0c;仅仅是探索项目&#xff0c;分享项目。如有不妥&#xff0c;请联系我删除&#xff01; 原项目地址&#xff1a;GitHub - jingyaogong/minimind: 「大模型」3小时完全从0训练26M的小参数GPT&#xff0c;个人显卡即…

HTML 基础标签——文本内容标签 <ul>、<ol>、<blockquote> 、<code> 等标签的用法详解

文章目录 1. 标题标签2. 段落标签3. 文本格式化标签4. 列表标签4.1 无序列表 `<ul>`4.2 有序列表 `<ol>`5. 引用标签5.1 块引用 `<blockquote>`5.2 行内引用 `<q>`5.3 作品引用 `<cite>`6. 代码和预格式文本标签6.1 代码标签 `<code>`6.2 …

qt QMenuBar详解

1、概述 QMenuBar是Qt框架中用于创建菜单栏的类&#xff0c;它继承自QWidget。QMenuBar通常位于QMainWindow对象的标题栏下方&#xff0c;用于组织和管理多个QMenu&#xff08;菜单&#xff09;和QAction&#xff08;动作&#xff09;。菜单栏提供了一个水平排列的容器&#x…

GenAI 生态系统现状:不止大语言模型和向量数据库

自 20 个月前 ChatGPT 革命性的推出以来&#xff0c;生成式人工智能&#xff08;GenAI&#xff09;领域经历了显著的发展和创新。最初&#xff0c;大语言模型&#xff08;LLMs&#xff09;和向量数据库吸引了最多的关注。然而&#xff0c;GenAI 生态系统远不止这两个部分&#…

聪明的你能从千门八将108局学到什么,对你的未来人生有哪些深远的影响?

千门八将108局&#xff1a;智慧的启迪与人生指引 在古老智慧的宝库中&#xff0c;千门八将108局犹如璀璨星辰&#xff0c;闪耀着神秘而深邃的光芒。那些认真钻研过这些局的人&#xff0c;仿佛经历了一场穿越时空的智慧洗礼&#xff0c;从中收获了无价的人生财富。 一、从千门八…

GraphQL 与 Elasticsearch 相遇:使用 Hasura DDN 构建可扩展、支持 AI 的应用程序

作者&#xff1a;来自 Elastic Praveen Durairaju GraphQL 提供了一种高效且灵活的数据查询方式。本博客将解释 Hasura DDN 如何与 Elasticsearch 配合使用&#xff0c;以实现高性能和元数据驱动的数据访问。 此示例的代码和设置可在此 GitHub 存储库 - elasticsearch-subgraph…

根据问题现象、用户操作场景及日志打印去排查C++软件问题,必要时尝试去复现问题

目录 1、概述 2、通过现有信息无法定位问题时&#xff0c;则需要尝试去复现问题 3、非崩溃问题与崩溃问题的一般排查思路 3.1、非崩溃问题的排查思路 3.2、崩溃问题的排查思路 4、难以复现问题的可能原因总结 4.1、问题难以复现&#xff0c;可能和某种特殊的业务场景或操…

11-Dockerfile

11-Dockerfile Dockerfile Dockerfile是用来构建Docker镜像的文本文件&#xff0c;是由一条条构建镜像所需的指令和参数构成的脚本。 构建步骤&#xff1a; 编写Dockerfile文件docker build命令构建镜像docker run依据镜像运行容器实例 构建过程 Dockerfile编写&#xff1a…

CMS getshell

进入前台 漏洞为前台任意用户密码修改和前台用户文件上传然后getshell 1. 弱口令进入前台用户admin123/admin123 2. 进入会员用户后点击内容中心 点击发布文章 存在文件上传&#xff0c;发现后缀和MIME类型都是白名单 但是在原文件的基础上继续添加随意后缀&#xff0c;发现成功…

Java使用apache.commons.io框架下的FileUtils类实现文件的写入、读取、复制、删除

Apache Commons IO 是 Apache 开源基金组织提供的一组有关IO&#xff08;Input/Output&#xff09;操作的小框架&#xff0c;它是 Apache Commons 项目的一部分&#xff0c;专注于提供简单易用的 API&#xff0c;用于处理输入和输出操作。Apache Commons IO 是一个功能强大的 J…

CRON组件一个复杂的一个简单的

CRON组件一个复杂的一个简单的 一个是复杂点的一个是简单点。 1.以简单的为例使用&#xff1a; 父组件 import CronSimple from "/views/xxx/components/cron-simple/index.vue";components: {CronSimple}<el-dialog title"调度CRON"v-if"cronV…

Kubernetes容器日志处理方案

Kubernetes容器日志处理方案 50-Kubernetes容器日志处理方案 0 前言 k8s里面对容器日志的处理都叫cluster-level-logging&#xff0c;即该日志处理系统&#xff0c;与容器、Pod及Node的生命周期完全无关。这种设计当然为保证&#xff0c;无论容器挂、Pod被删&#xff0c;甚至节…

【青牛科技】GC4921替代BD6921/罗姆在水泵、筋膜枪、吸尘器和电动工具中的应用

在现代电动设备中&#xff0c;电机驱动控制器的选择对设备的性能和效率至关重要。GC4921作为一种新型的电机驱动控制器&#xff0c;逐渐被视为BD6921/罗姆的替代品。本文将对GC4921与BD6921进行对比&#xff0c;探讨其在水泵、筋膜枪、吸尘器和电动工具等设备中的应用优势。 1…

Android OpenGL ES详解——裁剪Scissor

目录 一、概念 二、如何使用 1、开启裁剪测试 2、关闭裁剪测试 3、指定裁剪窗口&#xff08;位置和大小&#xff09; 4、裁剪应用举例 三、窗口、视⼝和裁剪区域三者区别 四、源码下载 一、概念 定义1&#xff1a; 裁剪是OpenGL中提⾼渲染的⼀种方式&#xff0c;只刷新…