Ubuntu 20.04-无法上传 Arduino 的草图

Ubuntu 20.04-无法上传 Arduino 的草图

全新安装 Ubuntu 后,我尝试使用 Arduino IDE v1.8.16(使用.deb从网络下载的文件安装)上传草图。

An error occurred while uploading the sketch avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy

在新 Linux 机器上首次安装 Arduino IDE 后需要成为成员:sudo usermod -a -G dialout $USER并注销、登录,但这并没有按预期发生改变。

因此我尝试chmod连接端口/dev/ttyUSB0,但这并没有改变错误消息(顺便说一下,在 USB1 和 ACM0 上,当我尝试上传到时也得到了相同的输出Nano)。

现在我收到此错误:

esptool.py v3.0
Serial port /dev/ttyUSB0
Connecting........_____....._____....._____....._____....._____....._____....._____
Traceback (most recent call last):
  File "/home/guy/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/upload.py", line 66, in <module>
    esptool.main(cmdline)
  File "/home/guy/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 3552, in main
    esp.connect(args.before, args.connect_attempts)
  File "/home/guy/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/esptool.py", line 529, in connect
    raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

为了验证这不是 IDE 错误,我尝试使用它esptool.py来擦除闪存,但得到了相同的结果Connecting........_____....._____....._____....._____....._____....._____....._____

答案1

这发生在最新的 ubuntu 上,它有最新的内核和几个版本的 arduino-ide(从 snap、从 apt install,甚至从 arduino 网站安装的最新版本),尝试了几个主板版本,尝试了改装的 esptool,尝试了未改装的 esptool,尝试了多条(不是仅充电)电缆,尝试了几个 esp32 主板和 esp32 供应商(wemos、nodemcu 等)

我认为串行驱动程序可能有问题?所有电路板在 Windows 上运行良好,所有版本的 arduino-ide 均在 Ubuntu 20.04 上测试过,并且使用相同的电缆。我排除了与软件 (ide)、电缆、电路板相关的任何可能问题。

我们将对此进行更深入的研究。

LE:找到问题了!看来 ch340/ch341 的内核驱动程序中有一个错误。我安装了一个旧内核(5.9.x),这个内核可以正常工作。这让我在互联网上进行了一些搜索 :) 因此这里这是

      Bug ID: 214131
     Summary: ch341 communication problem
     Product: Drivers
     Version: 2.5

内核版本:5.14-rc5 硬件:全部 操作系统:Linux 树:主线 状态:新 严重性:正常 优先级:P1 组件:USB

在我看来,从内核 5.10.x 到 5.14-rc5 都存在这个错误。

祝编码愉快,伙计们

答案2

ESP 板的解决方法:

上传草图之前的设置:

  • 主板类型:通用 ESP8266
  • 闪存大小:4MB
  • 重置方法:“dtr(又名nodemcu)”(默认)

然后:

  1. 更改重置方法为:“无 dtr (又名 ck)“(工具 -> 重置方法)
  2. 然后按 Flash 按钮
  3. 短按重置
  4. 然后释放 Flash
  5. 在 Arduino IDE 中上传草图

Arduino

来源:https://forum.manjaro.org/t/manjaro-21-1-0-und-esp8266-sketch-upload-doesnt-work-anymore/79712/2

注意:在 ESP8266 (NodeMCU) 上测试

更新:

最新内核版本已修复该问题,请更新内核后再测试。

答案3

使用内核 linux-image-5.4.0-87-generic @ ubuntu 18.04 我遇到了完全相同的问题(运行最新的 arduino、板定义和 libz),当我重新启动到 5.4.0-86-generic 时它又可以工作了,不知道为什么,但是今天花了一个小时才发现发生了什么变化(因为我在这台电脑上使用 arduino 很长时间了,一切都运行顺利……)

因此尝试启动较旧的内核,也许有帮助

答案4

谢谢,这个解决方法对我有用!!

5.4.0-89-generic #100-Ubuntu SMP 2021 年 9 月 24 日星期五 14:50:10 UTC x86_64 x86_64 x86_64 GNU/Linux

视频编号:1A86 PID:7523

相关内容