当前位置:   article > 正文

【教程】ubuntu 使用 ArduinoIDE2.x 【 can’t open device “/dev/ttyUSB0”:Permission denied】_can't open device "/dev/ttyusb0": permission denie

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*
  • 1

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

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

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

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

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

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

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

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

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

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

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

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

参考资料

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/211351
推荐阅读
相关标签
  

闽ICP备14008679号