環境:
Windows 10、Arduino IDE 2.3.7
問題:
要將 ESP32 開發板從 3.5.2 更到 3.5.5 時,
出現「Error: 4 DEADLINE_EXCEEDED: context deadline exceeded (Client.Timeout or context cancellation while reading body)」錯誤。
解決方式:
因為 Arduino IDE 網路連接逾時時間(connection_timeout)預設為60秒,下載 ESP32 安裝檔案時間超過60秒,便會發生逾時錯誤。
所以將逾時時間(connection_timeout)設定適當延長即可。
設定檔在
C:\Users\<使用者名稱>\.arduinoIDE\arduino-cli.yaml
在檔案總管路徑輸入
C:\Users\%UserName%\.arduinoIDE\
到達該目錄後,編輯 arduino-cli.yaml
在 arduino-cli.yaml 設定檔,新增逾時時間設定如下(若已有該設定,則將逾時時間改大)
我這邊設為600秒,若設為0表示無限期等待。
【 connection_timeout - network inactivity timeout, the value format must be a valid input for time.ParseDuration(), defaults to 60s (60 seconds). 0 means it will wait indefinitely.】
network: connection_timeout: 600s
修改後,重啟 Arduino IDE,再安裝 ESP32 即可。
參考:
- https://forum.arduino.cc/t/ide-2-3-7-now-gives-error-4-deadline-exceeded/1422321/2
IDE 2.3.7 now gives Error: 4 DEADLINE_EXCEEDED: - Nesso N1 - Arduino Forum - https://github.com/arduino/arduino-cli/issues/3013
Default value for `network.connection_timeout` causes spurious failures · Issue #3013 · arduino/arduino-cli · GitHub - https://arduino.github.io/arduino-cli/dev/configuration/#configuration-keys
Configuration - Arduino CLI


沒有留言:
張貼留言