【教程】ubuntu 使用 ArduinoIDE2.x 【 can’t open device “/dev/ttyUSB0”:Permission denied】

说明

  • 本教程目的是解决在 ubuntu 中使用 ArduinoIDE2.x 版本上传程序时,出现如下错误:

can’t open device “/dev/ttyUSB0”:Permission denied

  • 从报错得知,程序上传失败的原因主要是没有设备权限

教程测试环境

  • Arduino IDE 2.1.0
  • ubuntu-20.04-amd64
  • 连接的开发版:Arduino UNO R3

解决方法

  • 使用下面的指令,查看可以使用该设备的用户组(注意,这个命令意思是列出/dev目录下所有名字类似于ttyUSB的设备文件,并显示它们的详细信息,包括文件权限、所有者、大小等等。其中,/dev/ttyUSB是Linux系统中用于连接USB串口设备的设备文件名的通用前缀。)
ls -l /dev/ttyUSB*

如果你使用虚拟机运行 ubuntu,且 usb 设备只有接入的 Arduino 开发板,那么输出的信息就是你 Arduino 板子的端口信息,可能的输出信息如下:

crw-rw---- 1 root dialout 188, 0 430 01:27 /dev/ttyUSB0

从输出信息可以看到,只有 root 和 dialout 用户组拥有对该设备的访问权限,所以可能的解决方式是,把自己的登录的用户加入 dialout 用户组。具体做法是:

  • 将当前用户添加到 dialout 组中,该组具有访问串口设备的权限。打开终端,输入以下命令:
sudo usermod -a -G dialout $USER

请确保将 $USER 替换为您当前使用的用户名。然后,关机并重新开机(只是注销后重新登录亲测无效)以使更改生效。

  • 重启后打开终端,输入
groups

如果输出的信息中有 dialout 用户组,那么用户组添加成功。
现在打开 ArduinoIDE,试试看能否正常上传程序,如果还是不行,请继续跟着做:

  • 打开终端并输入以下命令以创建 /etc/udev/rules.d/ 目录:
sudo mkdir -p /etc/udev/rules.d/
  • 输入以下命令创建一个新的 99-arduino.rules 文件并打开它:
sudo nano /etc/udev/rules.d/99-arduino.rules
  • 在文件中输入以下内容:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", GROUP="dialout", MODE="0666"

这将允许所有用户对Arduino开发板的串口进行访问和上传代码。

按 Ctrl + X 键退出文件,输入 Y 键后再按 Enter 保存更改。

  • 重启udev服务以应用新的规则,输入以下命令:
sudo service udev restart

现在,您可以尝试启动Arduino IDE并上传代码到您的开发板。如果遇到任何问题,请确保您的开发板已正确连接到计算机并处于运行状态。

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

__Witheart__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值