ESP32在linux下烧录,提示权限有问题,解决方法

news2025/2/23 23:47:06

执行idf.py  -p /dev/ttyACM0 flash下载时,提示这个错误

serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyACM0: [Errno 13] Permission denied: '/dev/ttyACM0'

解决方法:

1检查串行端口 /dev/ttyUSB0 是否已被其他程序占用,可以使用以下命令查看

lsof /dev/ttyUSB0

如果已被占用,您可以尝试关闭占用端口的程序,或者使用其他可用的串行端口。

2确认您的用户具有访问 /dev/ttyACM0 的权限。您可以使用以下命令检查

ls -l /dev/ttyACM0

您应该能够看到该设备文件的权限设置。如果您的用户没有访问该设备的权限,可以使用以下命令更改权限:

sudo chmod a+rw /dev/ttyACM0

这将授予所有用户对该设备的读写权限。

如果您使用了 sudo chmod a+rw /dev/ttyUSB0 命令将 /dev/ttyUSB0 的权限设置为读写权限,并且仍然只有 root 用户可以访问该设备,这可能是由于您的 Linux 系统中启用了 udev 规则导致的。

udev 是一个在 Linux 系统中用于管理设备的程序,它可以通过设备属性、设备名称等标识符来自动识别设备,并设置相应的权限等参数。如果您的系统中存在 udev 规则,则可能会覆盖手动设置的权限。

您可以尝试在 /etc/udev/rules.d/ 目录中创建一个新的规则文件来授予普通用户对 /dev/ttyACM0 设备的访问权限。例如,可以创建一个名为 50-usb-serial.rules 的规则文件,并添加以下内容:

SUBSYSTEM=="tty", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", MODE="0666", GROUP="dialout"

请将 idVendoridProduct 的值替换为您的 USB 转串口适配器的厂商和产品 ID。MODE="0666" 表示授予所有用户读写权限,GROUP="dialout" 表示将设备授予 dialout 组的访问权限。

添加完毕后,保存并退出规则文件,然后重新加载 udev 规则:

sudo udevadm control --reload-rules
之后,您应该可以通过普通用户访问 /dev/ttyACM0 设备。

我的设备:

 

 

SUBSYSTEM=="tty", ATTRS{idVendor}=="1A86", ATTRS{idProduct}=="55D3", MODE="0666", GROUP="dialout"

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

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

相关文章

神经网络的梯度检查

当编写完一个深层的网络时,可能求导方式过于复杂稍微不小心就会出错,在开始训练使用这个网络模型之前我们可以先进行梯度检查。 梯度检查的步骤如下: 然后反向传播计算loss的导数grad,用以下公式计算误差: 通常来说&…

超星学习通小助手多线程工具Python

话不多说,直接开始,不会安转的直接使用后面两款,下载直接打开exe运行 第一款:网课小助手python,需要自行安装Python环境(支持Windows、Mac、Linux各种环境) https://wwiv.lanzoul.com/ifVrC0vk…

【K8s】控制器

文章目录 一、认识Pod控制器1、控制器介绍2、控制器种类 二、ReplicaSet(RS)1、RS的作用与资源清单2、创建RS3、pod扩缩容4、镜像升级5、删除RS 三、Deployment(Deploy)1、作用与资源清单2、创建deploy3、扩缩容4、镜像更新5、版本…

Vite 是如何站在巨人的肩膀上实现的

所谓的巨人,指的就是 Vite 底层所深度使用的两个构建引擎——Esbuild和Rollup。这两个构建引擎对于 Vite 来说究竟有多重要呢?在 Vite 的架构中,这两者各自扮演了什么样的角色?接下来,我们一起拆解 Vite 的双引擎架构&…

瑞吉外卖项目笔记02——员工管理、设置公共字段自动填充

三、员工信息管理 3.1 添加员工 注意:在设计数据库表字段时,给userName添加了唯一索引(所以员工用户名是无法重复的) 流程: 前端页面发送POST请求,后端接收到请求和数据,将用户数据添加到数…

PyQt5桌面应用开发(14):数据库+ModelView+QCharts

本文目录 PyQt5桌面应用系列下一个玩具报表一:Markdown文档的列表显示Widget的树、表、列报表Qt中的MVC框架模型视图代理 报表二:Markdown文档的长度图形数据:Markdown文档和Sqlite数据库代码总结 PyQt5桌面应用系列 PyQt5桌面应用开发&#…

FE_Vue学习笔记 框架的执行流程详解

1 分析脚手架结构 (1)CLI就是 command line interface 的缩写。Vue CLI官网:Vue CLI (2)安装过程: (PS: 提前安装过node.js了,没有安装的可以打开这个:Downl…

Flutter - 搭建引擎调试环境(iOS)

文章目录 前言开发环境安装依赖环境1. python32. depot_tools 获取引擎项目1. 创建engine空目录2. 创建.gclient文件并配置3. 指定引擎版本4. 同步引擎源码 搭建调试环境1. 构建编译1.1 生成构建所需文件1.1.1 主机端1.1.2 iOS端 1.2 完成构建编译 2. Xcode调试2.1 设置本地引擎…

Qt扫盲-QAreaSeries理论总结

QAreaSeries理论总结 一、概述二、使用1. 创建QAreaSeries 对象2. 填充数据3. 设置区域4. 将面积图 与绘图设备关联5. 将绘图设备与 GUI窗口关联 一、概述 QAreaSeries类以面积图的形式显示数据。QAreaSeries用于显示定量数据。它基于QLineSeries 类,边界线条之间的…

二、Docker在Linux下的安装

文章目录 Docker在Linux下的安装Docker安装的前提环境安装1. 卸载旧的版本2. 安装yum-utils包3. 设置镜像的仓库4. 安装Docker相关的内容 启动Docker运行hello-world查看下载的hello-world镜像 了解卸载Docker Docker在Linux下的安装 Docker安装的前提环境 CentOS Docker 安装…

【LLM系列之PaLM】PaLM: Scaling Language Modeling with Pathways

论文题目:《Scaling Instruction-Finetuned Language Models》 论文链接:https://arxiv.org/abs/2204.02311 github链接1:https://github.com/lucidrains/PaLM-pytorch/tree/main; github链接2:https://github.com/conceptofmind/PaLM huggin…

每天一个提高效率的Matlab编程小技巧(1)-dbstop if error

相信在matlab调试程序的时候都遇到过这种情况:运行程序时命令行报错,而且出错的位置在我们自己定义的函数里,比如下面这个例子: 主函数main.m: a[1 2 3]; b[4 5]; csum_squares(a,b); 子函数sum_squares.m function csum_squa…

AI孙燕姿 ?AI东雪莲 !—— 本地部署DDSP-SVC一键包,智能音频切片,本地训练,模型推理,为你喜欢的角色训练AI语音模型小教程

目录 感谢B站UP羽毛布团 演示视频 稻香——东雪莲 虚拟——东雪莲 反方向的钟——东雪莲 晴天龙卷风——东雪莲 DDSP-SVC 3.0 (D3SP) 是什么? 下载资源: 解压整合包 准备数据集 智能音频切片 数据集准备 填写训练设置和超参数 开始训练 推…

这个抓包工具太强了,科来网络分析系统强烈推荐

一直以来抓包工具,都推荐和使用wireshark,简单好用。最近发现一款更强大好用的网络分析工具,科来网络分析系统。且技术交流版是完全免费的,无需注册激活。这里强烈推荐和分享给大家。这可是个网络报文分析和监控神器。有多强大&am…

【CSS系列】第七章 · CSS盒子模型,看这一篇就够了

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

Protobuf-net3.2.8中的protogen.exe之使用

目录 protobuf是个好东西 遇到问题 顺便研究一下命令行程序如何调试 protobuf是个好东西 protobuf是一个轻量级的数据格式,相比json,它的数据量为json的1/3,且存储方式为2进制,并进行了压缩,序列化和反序列化更快&…

效率与性能并存——离不开 Visual Studio Code 的前端开发与我

文章目录 📋前言🎯题外话:我与 VSCode 的那些事🎯VSCode 的强大之处🧩VSCode 的诞生🧩VSCode 的一些功能 🎯优与劣(简单小结)📝最后 📋前言 许久…

JVM 原理简介

JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的口号是:一次编…

股票K线基础知识1

K线图 K线图是反映价格在某一时间周期内波动情况的图表,它由开盘价、收盘价、最高价、最低价四个要素构成,若当日收盘价高于开盘价,这表明价格处于上涨状态,此时K线图多用红色表示;若当日收盘价低于开盘价&#xff0c…

(转载)从0开始学matlab(第1天)—变量和数组

MATLAB 程序的基本数据单元是数组。一个数组是以行和列组织起来的数据集合,并且拥有一个数组名。数组中的单个数据是可以被访问的,访问的方法是数组名后带一个括号,括号内是这个数据所对应行标和列标。标量在 MATLAB 中也被当作数组来处理——…