esphome / issues

Issue Tracker for ESPHome
https://esphome.io/
286 stars 34 forks source link

xtensa-lx106-elf-g++: not found #1386

Closed gitolicious closed 1 year ago

gitolicious commented 3 years ago

Operating environment/Installation (Hass.io/Docker/pip/etc.):

Hass.io on Odroid N2

Hass.io Add-on: ESPHome (beta) Beta version of ESPHome Hass.io add-on.

Add-on version: 1.15.0b3 You are running the latest version of this add-on. System: Debian GNU/Linux 9 (stretch) (armv7 / odroid-xu) Home Assistant Core: 0.113.2 Home Assistant Supervisor: 229

ESP (ESP32/ESP8266, Board/Sonoff):

ESP8266, but irrelevant

ESPHome version (latest production, beta, dev branch)

1.15.0b3 - fails for ESP32 and ESP8266 latest dev - fails for ESP32 and ESP8266 1.14.5 - fails for ESP32, works fine for ESP8266

Affected component:

n/a

Description of problem: Compilation is giving me xtensa-lx106-elf-g++: not found

Problem-relevant YAML-configuration entries:

esphome:
  name: test
  platform: ESP8266
  board: esp01_1m

Logs (if applicable):

INFO Reading configuration /config/esphome/test.yaml...
INFO Generating C++ source...
INFO Core config or version changed, cleaning build files...
INFO Deleting /data/test/.pioenvs
INFO Deleting /data/test/.piolibdeps
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/test
Processing test (board: esp01_1m; framework: arduino; platform: espressif8266@2.6.0)
--------------------------------------------------------------------------------
PackageManager: Installing toolchain-xtensa @ ~2.40802.191122
Downloading  [####################################]  100%          
Unpacking  [####################################]  100%          
toolchain-xtensa @ 2.40802.200502 has been successfully installed!
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20702.0 (2.7.2) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
Dependency Graph
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
Compiling /data/test/.pioenvs/test/src/esphome/core/application.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/test/.pioenvs/test/src/esphome/core/component.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/test/.pioenvs/test/src/esphome/core/controller.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/test/.pioenvs/test/src/esphome/core/esphal.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/test/.pioenvs/test/src/esphome/core/helpers.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/test/.pioenvs/test/src/esphome/core/application.cpp.o] Error 127
Compiling /data/test/.pioenvs/test/src/esphome/core/log.cpp.o
*** [/data/test/.pioenvs/test/src/esphome/core/component.cpp.o] Error 127
*** [/data/test/.pioenvs/test/src/esphome/core/controller.cpp.o] Error 127
*** [/data/test/.pioenvs/test/src/esphome/core/esphal.cpp.o] Error 127
*** [/data/test/.pioenvs/test/src/esphome/core/helpers.cpp.o] Error 127
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/test/.pioenvs/test/src/esphome/core/log.cpp.o] Error 127
========================= [FAILED] Took 24.86 seconds =========================

Additional information and things you've tried:

gitolicious commented 3 years ago

594 and #236 might be related

OttoWinter commented 3 years ago

Odroid N2 is an armv7 device, right?

Notable is that it installs an extra toolchain here:

PackageManager: Installing toolchain-xtensa @ ~2.40802.191122
Downloading  [####################################]  100%          
Unpacking  [####################################]  100%          
toolchain-xtensa @ 2.40802.200502 has been successfully installed!

Not sure why that's happening as the image is supposed to contain the right toolchain already.

Command not found could also mean a broken symlink, so maybe check with readlink too.

In the docker base image build the xtensa-lx106-elf-g++ command does exist: https://github.com/esphome/esphome-docker-base/runs/925103486?check_suite_focus=true#step:9:133 (ignore the -fail, that's just to create a fake build so the toolchain gets downloaded).

gitolicious commented 3 years ago

Odroid N2 has ARM Cortex-A73 and A53 CPUs which are armv8.

root@15ef4d2f-esphome-dev:/# lscpu 
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              6
On-line CPU(s) list: 0-5
Thread(s) per core:  1
Core(s) per socket:  3
Socket(s):           2
Vendor ID:           ARM
Model:               4
Model name:          Cortex-A53
Stepping:            r0p4
CPU max MHz:         1896.0000
CPU min MHz:         100.0000
BogoMIPS:            48.00
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32

Downloaded image is armv7.

20-08-06 17:31:52 INFO (MainThread) [supervisor.addons] Create Home Assistant add-on data folder /data/addons/data/15ef4d2f_esphome-beta
20-08-06 17:31:52 INFO (SyncWorker_9) [supervisor.docker.interface] Pull image esphome/esphome-hassio-armv7 tag 1.15.0b3.
20-08-06 17:32:00 INFO (MainThread) [supervisor.addons] Add-on '15ef4d2f_esphome-beta' successfully installed
20-08-06 17:32:04 INFO (SyncWorker_0) [supervisor.docker.addon] Start Docker add-on esphome/esphome-hassio-armv7 with version 1.15.0b3
20-08-06 17:32:06 INFO (MainThread) [supervisor.api.security] /host/info access from 15ef4d2f_esphome-beta

Where do you want me set the readlink command?

root@15ef4d2f-esphome-dev:/# readlink ~/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++ 
root@15ef4d2f-esphome-dev:/# 
gitolicious commented 3 years ago

Is https://github.com/esphome/esphome-docker-base/issues/5 related in any way?

gitolicious commented 3 years ago

Investigating further, I saw that builds actually fail for ESP32 boards in the current stable version (1.14.5) as well:

esphome:
  name: test32
  platform: ESP32
  board: esp32dev

There the Download part is not shown in the logs...

INFO Reading configuration /config/esphome/test32.yaml...
INFO Generating C++ source...
INFO Core config or version changed, cleaning build files...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/test32
Processing test32 (board: esp32dev; framework: arduino; platform: espressif32@1.12.1)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
PACKAGES: 
 - framework-arduinoespressif32 3.10004.200129 (1.0.4) 
 - tool-esptoolpy 1.20600.0 (2.6.0) 
 - toolchain-xtensa32 2.50200.80 (5.2.0)
Dependency Graph
|-- <ESPmDNS> 1.0
|   |-- <WiFi> 1.0
Compiling /data/test32/.pioenvs/test32/src/esphome/core/application.cpp.o
sh: 1: xtensa-esp32-elf-g++: not found
Compiling /data/test32/.pioenvs/test32/src/esphome/core/component.cpp.o
sh: 1: xtensa-esp32-elf-g++: not found
Compiling /data/test32/.pioenvs/test32/src/esphome/core/controller.cpp.o
Compiling /data/test32/.pioenvs/test32/src/esphome/core/esphal.cpp.o
sh: 1: xtensa-esp32-elf-g++: not found
sh: 1: xtensa-esp32-elf-g++: not found
Compiling /data/test32/.pioenvs/test32/src/esphome/core/helpers.cpp.o
sh: 1: xtensa-esp32-elf-g++: not found
*** [/data/test32/.pioenvs/test32/src/esphome/core/application.cpp.o] Error 127
Compiling /data/test32/.pioenvs/test32/src/esphome/core/log.cpp.o
*** [/data/test32/.pioenvs/test32/src/esphome/core/component.cpp.o] Error 127
*** [/data/test32/.pioenvs/test32/src/esphome/core/controller.cpp.o] Error 127
*** [/data/test32/.pioenvs/test32/src/esphome/core/esphal.cpp.o] Error 127
*** [/data/test32/.pioenvs/test32/src/esphome/core/helpers.cpp.o] Error 127
sh: 1: xtensa-esp32-elf-g++: not found
*** [/data/test32/.pioenvs/test32/src/esphome/core/log.cpp.o] Error 127
========================== [FAILED] Took 2.35 seconds ==========================
OttoWinter commented 3 years ago

@gitolicious No https://github.com/esphome/esphome-docker-base/issues/5 is not related.

I tried to manually set up a qemu aarch64 VM using the raspi3 machine profile (appears to match your platform the most), and it worked fine there. Don't know what could be the issue here.

gitolicious commented 3 years ago

Thx for looking into it. Any idea how I could investiage further on my end? Tried uninstalling the add-on and deleted everything I found in the data folder other than the config YAMLs. Reinstalled and ended up with the same error. This weekend probably I can boot from a different SD with a fresh HomeAssistant image just to be sure there is no interference from any other component or setting.

motwok commented 3 years ago

I have exactly the same problems with aarch64 on raspi4:

just the name of the executable is different

esphome on some older version (from january): ESP8266 compiles ESP32 compiles

esphome 1.14.5: ESP8266 compiles ESP32 not compiles (did not find the compiler)

esphome 1.15.5: ESP8266 not compiles (did not find the compiler) ESP32 not compiles (did not find the compiler)

after changing to arm71 it works.

Regards Emmo

gitolicious commented 3 years ago

Good to know I am not alone on this... I didn't find the time yet to set up a fresh system on my N2 to reconfirm the issue. @motwok: arm71 is the 32bit version of HomeAssistant for Raspi4?

gitolicious commented 3 years ago

This nasty bugs now sneaked its way into the stable release 1.15.1. Will be interesting to see if this brings in more reports from affected users. Also still happens with 1.16.0-dev.

keteflips commented 3 years ago

Same problem here.

keteflips commented 3 years ago

I have exactly the same problems with aarch64 on raspi4:

just the name of the executable is different

esphome on some older version (from january): ESP8266 compiles ESP32 compiles

esphome 1.14.5: ESP8266 compiles ESP32 not compiles (did not find the compiler)

esphome 1.15.5: ESP8266 not compiles (did not find the compiler) ESP32 not compiles (did not find the compiler)

after changing to arm71 it works.

Regards Emmo

How I can change it in the ESPHome addon for Home Assistant?

Haringstad commented 3 years ago

And I can confirm: Same issue here.

INFO Reading configuration /config/esphome/19_inch_fans.yaml...
INFO Detected timezone 'CET' with UTC offset 1 and daylight savings time from 28 March 02:00:00 to 31 October 03:00:00
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/19_inch_fans
Processing 19_inch_fans (board: esp01_1m; framework: arduino; platform: espressif8266@2.2.3)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 2.20502.0 (2.5.2) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20600.0 (2.6.0) 
 - toolchain-xtensa 2.100100.200706 (10.1.0)
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.2
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncWebServer-esphome> 1.2.6
|   |-- <ESPAsyncTCP-esphome> 1.2.2
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|   |-- <ArduinoJson-esphomelib> 5.13.3
|-- <ArduinoJson-esphomelib> 5.13.3
Compiling /data/19_inch_fans/.pioenvs/19_inch_fans/src/esphome/components/api/api_connection.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/19_inch_fans/.pioenvs/19_inch_fans/src/esphome/components/api/api_pb2.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/19_inch_fans/.pioenvs/19_inch_fans/src/esphome/components/api/api_pb2_service.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/19_inch_fans/.pioenvs/19_inch_fans/src/esphome/components/api/api_connection.cpp.o] Error 127
Compiling /data/19_inch_fans/.pioenvs/19_inch_fans/src/esphome/components/api/api_server.cpp.o
*** [/data/19_inch_fans/.pioenvs/19_inch_fans/src/esphome/components/api/api_pb2.cpp.o] Error 127
*** [/data/19_inch_fans/.pioenvs/19_inch_fans/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/19_inch_fans/.pioenvs/19_inch_fans/src/esphome/components/api/api_server.cpp.o] Error 127
========================== [FAILED] Took 3.26 seconds ==========================
nordscan commented 3 years ago

for me too

rp4 2020-08-20-raspios-buster-arm64-lite.img EspHome 1.15.2

INFO Reading configuration /config/esphome/kotolna.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/kotolna
Processing kotolna (board: nodemcuv2; framework: arduino; platform: espressif8266@2.6.2)

HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20704.0 (2.7.4) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncWebServer-esphome> 1.2.7
|   |-- <ESPAsyncTCP-esphome> 1.2.3
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <DNSServer> 1.1.1
|   |-- <ESP8266WiFi> 1.0
Compiling /data/kotolna/.pioenvs/kotolna/src/esphome/components/api/api_connection.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/kotolna/.pioenvs/kotolna/src/esphome/components/api/api_pb2.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/kotolna/.pioenvs/kotolna/src/esphome/components/api/api_pb2_service.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/kotolna/.pioenvs/kotolna/src/esphome/components/api/api_connection.cpp.o] Error 127
Compiling /data/kotolna/.pioenvs/kotolna/src/esphome/components/api/api_server.cpp.o
*** [/data/kotolna/.pioenvs/kotolna/src/esphome/components/api/api_pb2.cpp.o] Error 127
*** [/data/kotolna/.pioenvs/kotolna/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/kotolna/.pioenvs/kotolna/src/esphome/components/api/api_server.cpp.o] Error 127
========================== [FAILED] Took 2.89 seconds ==========================
gitolicious commented 3 years ago

Thanks a lot for the MeToos. @keteflips @Haringstad @nordscan Can you guys please share your environments (hardware, HomeAssistant version and installation method) so we can identify potential root causes?

nordscan commented 3 years ago

rasbian - docker - hassio

RASPBERRY Pi 4 Model B 4GB
2020-08-20-raspios-buster-arm64-lite.img
EspHome 1.15.2
arch | aarch64
-- | --
chassis |  
dev | false
docker | true
docker_version | 19.03.13
hassio | true
host_os | Debian GNU/Linux 10 (buster)
installation_type | Home Assistant Supervised
os_name | Linux
os_version | 5.4.51-v8+
python_version | 3.8.5
supervisor | 245
timezone | UTC
version | 0.115.2
virtualenv | false

edited 2020.09.21_12:04

triphoppingman commented 3 years ago

Hardware: Odroid-N2 Ambian - Docker - hassio Esphome: 1.15.2

Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncWebServer-esphome> 1.2.7
|   |-- <ESPAsyncTCP-esphome> 1.2.3
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <DNSServer> 1.1.1
|   |-- <ESP8266WiFi> 1.0
Compiling /data/bnc60_01/.pioenvs/bnc60_01/src/esphome/components/api/api_connection.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/bnc60_01/.pioenvs/bnc60_01/src/esphome/components/api/api_pb2.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/bnc60_01/.pioenvs/bnc60_01/src/esphome/components/api/api_pb2_service.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/bnc60_01/.pioenvs/bnc60_01/src/esphome/components/api/api_server.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/bnc60_01/.pioenvs/bnc60_01/src/esphome/components/api/list_entities.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found

UPDATE1: I docker exec onto the esphome image:

and try to run the docker manually.

root@15ef4d2f-esphome:/config/esphome$ esphome bnc60_01.yaml compile
INFO Reading configuration bnc60_01.yaml...
INFO Detected timezone 'EST' with UTC offset -5 and daylight savings time from 14 March 02:00:00 to 07 November 02:00:00
INFO Generating C++ source...
INFO Core config or version changed, cleaning build files...
INFO Compiling app...
INFO Running:  platformio run -d bnc60_01
Processing bnc60_01 (board: esp01_1m; framework: arduino; platform: espressif8266@2.6.2)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20704.0 (2.7.4) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
...
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncWebServer-esphome> 1.2.7
|   |-- <ESPAsyncTCP-esphome> 1.2.3
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <DNSServer> 1.1.1
|   |-- <ESP8266WiFi> 1.0
Compiling .pioenvs/bnc60_01/src/esphome/components/api/api_connection.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling .pioenvs/bnc60_01/src/esphome/components/api/api_pb2.cpp.o
Haringstad commented 3 years ago

Raspberry Pi 4, 5.4.51-v8+ #1333 SMP PREEMPT Mon Aug 10 16:58:35 BST 2020 aarch64 GNU/Linux

arch aarch64
chassis  
dev false
docker true
docker_version 19.03.13
hassio true
host_os Debian GNU/Linux 10 (buster)
installation_type Home Assistant Supervised
os_name Linux
os_version 5.4.51-v8+
python_version 3.8.5
supervisor 245
timezone Europe/Amsterdam
version 0.115.2
virtualenv false
gitolicious commented 3 years ago

So up to now we only have Odroid N2 and RPi 4 affected. @OttoWinter, any idea what could be different for these devices compared to others? Or is it just these devices being the most popular ones in the community?

triphoppingman commented 3 years ago

It appears we are dealing with a problem with aarch64 platforms (64bit ARM). https://en.wikipedia.org/wiki/AArch64. If you run a 32bit operating system on rpi 4, I bet you don't get this issue.

triphoppingman commented 3 years ago

More information:

So I did find where platformio (which esphome uses) stores the compilers:

root@15ef4d2f-esphome:/root/.platformio$ find . -name '*g++*' -print                                                  
./packages/toolchain-xtensa@2.40802.200502/xtensa-lx106-elf/bin/g++
./packages/toolchain-xtensa@2.40802.200502/bin/xtensa-lx106-elf-g++
./packages/toolchain-xtensa@2.40802.200502/share/man/man1/xtensa-lx106-elf-g++.1
./packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++
./packages/toolchain-xtensa/share/man/man1/xtensa-lx106-elf-g++.1
./packages/toolchain-xtensa32/bin/xtensa-esp32-elf-g++
./packages/tool-scons/engine/SCons/Tool/g++.py

root@15ef4d2f-esphome:/root/.platformio$ ./packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++
xtensa-lx106-elf-g++: fatal error: no input files
compilation terminated.

It looks like an issue with platformio / esphome.

triphoppingman commented 3 years ago

I was able to get this working by adding the following to the core block:

arduino_version: 2.5.1

These seems to be the last version of the arduino framework that provides the correct compiler. Sigh. This is not a great solution as we are missing out on all the fixes that come with the Arduino code.

gitolicious commented 3 years ago

Hooray, at least we have a workaround! Thanks for the info. For now, a little outdated version is better than no version. Also we have a starting point for investigations.

gitolicious commented 3 years ago

Unfortunately for ESP32 I didn't find any version that works. Tried all listed in the docs.

keteflips commented 3 years ago

I have a custom Home Assistant instalation in a TVBOX with Armbian Linux (arm64).

System: Armbian 20.08 Bullseye (armv7 / raspberrypi3) Home Assistant Core: 0.115.4 Home Assistant Supervisor: 245

I was able to get this working by adding the following to the core block:

arduino_version: 2.5.1

These seems to be the last version of the arduino framework that provides the correct compiler. Sigh. This is not a great solution as we are missing out on all the fixes that come with the Arduino code.

This workarround didnt work for me.

motwok commented 3 years ago

How I can change it in the ESPHome addon for Home Assistant?

the arch can be changed in boot/config.txt

In my installation i changed the line arm_64bit=1 to arm_64bit=0

Please check documentation for your installation first, i take no responsibility for you installation!

Emmo

triphoppingman commented 3 years ago

How I can change it in the ESPHome addon for Home Assistant?

the arch can be changed in boot/config.txt

In my installation i changed the line arm_64bit=1 to arm_64bit=0

Please check documentation for your installation first, i take no responsibility for you installation!

Emmo

This only applies for Raspberry Pi 4.0.

motwok commented 3 years ago

This only applies for Raspberry Pi 4.0. You are right... had overread that a pi3 was mentioned... then it might be just running the "original armv7 kernel"!?

buettnc commented 3 years ago

Wondering if there was any progress on this issue. I am seeing this missing compiler error in container image 1.27.4. I have tried changing the RASPBERRY Pi 4 Model B 4GB (Linux raspberrypi 5.4.72-v8+ #1356 SMP PREEMPT Thu Oct 22 13:58:52 BST 2020 aarch64 GNU/Linux) from arm_64bit=1 to 0 with no success. I have also confirmed that the compiler is in the container. I updated that PATH variable in the container to include /root/.platformio/packages/toolchain-xtensa32/bin but that resulted in a different error.

INFO Reading configuration config/home_esp32_bluetooth_hub_1.yaml... INFO Generating C++ source... INFO Compiling app... INFO Running: platformio run -d config/home_esp32_bluetooth_hub_1 Processing home_esp32_bluetooth_hub_1 (board: esp-wrover-kit; framework: arduino; platform: espressif32@1.12.4)

HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash PACKAGES:

gitolicious commented 3 years ago

Unfortunate no progress and no ideas or hints how to fix this. For now I am stranded with the arduino_version: 2.5.1 workaround for ESP8266. ESP32 I have to compile elsewhere.

buettnc commented 3 years ago

Here is some additional information: I updated the container path to include the path to the compiler and tried to compile, received the following: Compiling .pioenvs/bhive_esp32_bluetooth_hub_1/src/esphome/components/api/api_connection.cpp.o xtensa-esp32-elf-g++: error trying to exec '/config/config/bhive_esp32_bluetooth_hub_1/ "/"/. platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/cc1plus': execv: No such file or directory Compiling .pioenvs/bhive_esp32_bluetooth_hub_1/src/esphome/components/api/api_pb2.cpp.o xtensa-esp32-elf-g++: error trying to exec '/config/config/bhive_esp32_bluetooth_hub_1/ "/"/.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/cc1plus': execv: No such file or directory Compiling .pioenvs/bhive_esp32_bluetooth_hub_1/src/esphome/components/api/api_pb2_service.cpp.o xtensa-esp32-elf-g++: error trying to exec '/config/config/bhive_esp32_bluetooth_hub_1/ "/"/.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/cc1plus': execv: No such file or directory [.pioenvs/bhive_esp32_bluetooth_hub_1/src/esphome/components/api/api_connection.cpp.o] Error 1 Compiling .pioenvs/bhive_esp32_bluetooth_hub_1/src/esphome/components/api/api_server.cpp.o [.pioenvs/bhive_esp32_bluetooth_hub_1/src/esphome/components/api/api_pb2.cpp.o] Error 1 [.pioenvs/bhive_esp32_bluetooth_hub_1/src/esphome/components/api/api_pb2_service.cpp.o] Error 1 xtensa-esp32-elf-g++: error trying to exec '/config/config/bhive_esp32_bluetooth_hub_1/ "/"/.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/cc1plus': execv: No such file or directory [.pioenvs/bhive_esp32_bluetooth_hub_1/src/esphome/components/api/api_server.cpp.o] Error 1

Checked the cc1plus compiler at that path to see if all .so files were available root@18986ad250c6:/root/.platformio/packages/toolchain-xtensa32/libexec/gcc/xtensa-esp32-elf/5.2.0# ldd cc1plus libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xf7733000) libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xf7720000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xf769f000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xf75a7000) /lib/ld-linux-armhf.so.3 (0xf7846000) libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xf757e000)

All good, attempt to ls the file referenced by the path root@18986ad250c6:/# ls -l /config/config/bhive_esp32_bluetooth_hub_1/ "/"/.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0 ls: cannot access '//.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0': No such file or directory

Seems to collapse the "/" into a // instead of the /\"/\"/, any thoughts on why this may be happening?

Vartkat commented 3 years ago

I was able to get this working by adding the following to the core block:

arduino_version: 2.5.1

I'd love to test this solution but in which file do you modify the "core block" ?

gitolicious commented 3 years ago

Just put the following in your device config:

esphome:
  arduino_version: 2.5.1
Vartkat commented 3 years ago

Just put the following in your device config:

esphome:
  arduino_version: 2.5.1

Wonderfull ! Thanks very much, that one did the trick.

netweaver1970 commented 3 years ago

any update on this? the workaround above doesn't work for me, similar errors (after install of the pinned arduino version. I'm running 64 bit kernel on raspi 3B, in a managed hassio install on Buster. 1st time tying to compile after going to the 64 bit kernel, most likely due to that change.

`Processing bedleft (board: esp01_1m; framework: arduino; platform: espressif8266@2.1.1)

HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash PACKAGES:

Tryfos commented 3 years ago

Has this ever been solved? I'm also running Raspbian 64 (Debian) on a Pi4 Buster with a supervised install of HA. All compiles, ESP32 and ESP8266, fail with the same error. I don't know what are the consequences of using the older Arduino framework. It solves the problem, but is just a workaround, not the solution.

motwok commented 3 years ago

Has this ever been solved? I'm also running Raspbian 64 (Debian) on a Pi4 Buster with a supervised install of HA. All compiles, ESP32 and ESP8266, fail with the same error. Not that i know...

I don't know what are the consequences of using the older Arduino framework. It solves the problem, but is just a workaround, not the solution. The "Optimal Workaround" is switching to 32 bit...

Emmo

Bobbik1 commented 3 years ago

Exactly same issue here, debian-docker-HA Rpi3

grizzlylife commented 2 years ago

raspberry pi 3b+ same issue, RaspberryOS-docker-HA. get when i changed boot/config.txt the line arm_64bit=1 to arm_64bit=0 but i need that else traccar dosn't work =( Anything else that helps besides arduino_version: 2.5.1? cause I get RA freeze --finally, I flashed esp, I think that I was getting a freeze ra, because there was no free RAM or upgrade system helped me

triphoppingman commented 2 years ago

Speaking for myself, I moved off the ARM64 platform.

On Wed, Jul 7, 2021 at 4:34 AM grizzlylife @.***> wrote:

raspberry pi 3b+ same issue, RaspberryOS-docker-HA. get when i changed boot/config.txt the line arm_64bit=1 to arm_64bit=0 but i need that else traccar dosn't work =( Anything else that helps besides arduino_version: 2.5.1?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/esphome/issues/issues/1386#issuecomment-875407106, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA65QIOJY6QWZ5O5FEQJLRLTWQGS7ANCNFSM4POLG6PA .

gitolicious commented 2 years ago

After quite some time I retried today and now everything works fine when removing the arduino_version: 2.5.1 workaround with both dev and latest stable version.

 Add-on version: 1.19.4
 You are running the latest version of this add-on.
 System: Debian GNU/Linux 10 (buster)  (aarch64 / odroid-n2)
 Home Assistant Core: 2021.6.6
 Home Assistant Supervisor: 2021.06.8

How about the others?

motwok commented 2 years ago

... removing the arduino_version: 2.5.1 workaround ... How to do i do this?

How about the others? sounds good... will try on Weekend.

Emmo

gitolicious commented 2 years ago

... removing the arduino_version: 2.5.1 workaround ... How to do i do this?

Undo this:

Just put the following in your device config:

esphome:
  arduino_version: 2.5.1

If you haven't done it before, you didn't implement the workaround.

grizzlylife commented 2 years ago

Add-on version: 1.19.4 aarch64 core-2021.6.6 supervisor-2021.06.8

..it hasn't been worked yet :(

Lipown commented 2 years ago

Workaround flashes the board however the board keeps restarting with this error:

Connected and then restart ..

[13:46:38] [13:46:38] ets Jan 8 2013,rst cause:4, boot mode:(3,6) [13:46:38] [13:46:38]wdt reset [13:46:38]load 0x4010f000, len 1384, room 16 [13:46:38]tail 8 [13:46:38]chksum 0x2d [13:46:38]csum 0x2d [13:46:38]vac02aff5 [13:46:38]~ld [13:46:38][I][logger:170]: Log initialized [13:46:39][C][ota:378]: There have been 9 suspected unsuccessful boot attempts. [13:46:39][I][app:029]: Running through setup()... [13:46:39][C][wifi:037]: Setting up WiFi...

eisengrau commented 2 years ago

Can confirm the issue under Alpine Linux current edge/testing brach. Esphome installed via pip3 install tornado esptool esphome, nothning else really, there is no HASS installed, it is basically a stand alone Esphome. This is not an Alpine docker container, instead it is running under LXC... The workaround posted above would not work in my case as I get the below when validating:

Unfortunately the arduino framework version '2.5.1' is unsupported at this time. You can override this by manually using espressif32@.

Esphome version is v1.20.4. I should mention that I have tried the same within an LXC Debian and Ubuntu containers as well, the error is the same:

Compiling .pioenvs/test/src/esphome/components/api/api_connection.cpp.o sh: xtensa-esp32-elf-g++: not found [.pioenvs/test/src/esphome/components/api/api_connection.cpp.o] Error 127 Compiling .pioenvs/test/src/esphome/components/api/api_pb2.cpp.o sh: xtensa-esp32-elf-g++: not found [.pioenvs/test/src/esphome/components/api/api_pb2.cpp.o] Error 127 ========================== [FAILED] Took 2.60 seconds ==========================

So this is not really something distribution specific, however in case of Alpine linux, that might be the case, as there is no "sh".

yannpub commented 2 years ago

I tried to compile for a Sonoff TH16.

My setup is a supervised HA, VM running Debian Bullseye on an ARM64 box. Add-On Version is 2021.8.2

INFO Reading configuration /config/esphome/sonoff.yaml...

INFO Generating C++ source... INFO Compiling app... INFO Running: platformio run -d /config/esphome/sonoff Processing sonoff (board: esp01_1m; framework: arduino; platform: platformio/espressif8266@2.6.2)

Tool Manager: Installing toolchain-xtensa @ ~2.40802.191122 Tool Manager: Warning! More than one package has been found by toolchain-xtensa @ ~2.40802.191122 requirements:

  • platformio/toolchain-xtensa @ 2.100300.210717
  • mcspr/toolchain-xtensa @ 5.100300.210830
  • tasmota/toolchain-xtensa @ 5.100200.210303 Tool Manager: Please specify detailed REQUIREMENTS using package owner and version (showed above) to avoid name conflicts Downloading [####################################] 100%
    Unpacking [####################################] 100%
    Tool Manager: toolchain-xtensa @ 2.40802.200502 has been installed! HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash PACKAGES:
  • framework-arduinoespressif8266 3.20704.0 (2.7.4)
  • tool-esptool 1.413.0 (4.13)
  • tool-esptoolpy 1.20800.0 (2.8.0)
  • toolchain-xtensa 2.40802.200502 (4.8.2) Library Manager: Installing Update Library Manager: Already installed, built-in library Dependency Graph |-- 1.2.3 | |-- 1.0 |-- 1.3.0 | |-- 1.2.3 | | |-- 1.0 | |-- 1.0 | |-- 1.0 |-- 1.0 |-- 1.2 | |-- 1.0 |-- 1.1.1 | |-- 1.0 Compiling /data/sonoff/.pioenvs/sonoff/src/esphome/components/api/api_connection.cpp.o sh: 1: xtensa-lx106-elf-g++: not found *** [/data/sonoff/.pioenvs/sonoff/src/esphome/components/api/api_connection.cpp.o] Error 127 ========================= [FAILED] Took 158.41 seconds =========================
mburwell80 commented 2 years ago

I am on Win 10 64 machine and I also have this same error trying to flash an esp D1

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\mike\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\mike\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\mike\Documents\Arduino\libraries -fqbn=esp8266:esp8266:generic:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,ResetMethod=nodemcu,CrystalFreq=26,FlashFreq=40,FlashMode=dout,eesz=4M2M,led=1,sdk=nonosdk_190703,ip=hb2f,dbg=Disabled,lvl=None,wipe=none,baud=115200 -vid-pid=1A86_7523 -ide-version=10815 -build-path C:\Users\mike\AppData\Local\Temp\arduino_build_998064 -warnings=none -build-cache C:\Users\mike\AppData\Local\Temp\arduino_cache_228381 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.mkspiffs.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\mkspiffs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mkspiffs-3.0.4-gcc10.3-1757bed.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\mkspiffs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.xtensa-lx106-elf-gcc-3.0.4-gcc10.3-1757bed.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mklittlefs.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\mklittlefs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mklittlefs-3.0.4-gcc10.3-1757bed.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\mklittlefs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.python3.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1 -prefs=runtime.tools.python3-3.7.2-post1.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1 -verbose C:\Users\mike\Documents\Arduino\sketch_sep27a\sketch_sep27a.ino C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\mike\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\mike\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\mike\Documents\Arduino\libraries -fqbn=esp8266:esp8266:generic:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,ResetMethod=nodemcu,CrystalFreq=26,FlashFreq=40,FlashMode=dout,eesz=4M2M,led=1,sdk=nonosdk_190703,ip=hb2f,dbg=Disabled,lvl=None,wipe=none,baud=115200 -vid-pid=1A86_7523 -ide-version=10815 -build-path C:\Users\mike\AppData\Local\Temp\arduino_build_998064 -warnings=none -build-cache C:\Users\mike\AppData\Local\Temp\arduino_cache_228381 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.mkspiffs.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\mkspiffs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mkspiffs-3.0.4-gcc10.3-1757bed.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\mkspiffs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.xtensa-lx106-elf-gcc-3.0.4-gcc10.3-1757bed.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mklittlefs.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\mklittlefs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mklittlefs-3.0.4-gcc10.3-1757bed.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\mklittlefs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.python3.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1 -prefs=runtime.tools.python3-3.7.2-post1.path=C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1 -verbose C:\Users\mike\Documents\Arduino\sketch_sep27a\sketch_sep27a.ino Using board 'generic' from platform in folder: C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2 Using core 'esp8266' from platform in folder: C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2 Detecting libraries used... "C:\Users\mike\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++" -Dets -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE "-IC:\Users\mike\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/sdk/include" "-IC:\Users\mike\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/sdk/lwip2/include" "-IC:\Users\mike\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\Users\mike\AppData\Local\Temp\arduino_build_998064/core" -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=1460 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10815 -DARDUINO_ESP8266_GENERIC -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_GENERIC\"" -DLED_BUILTIN=1 -DFLASHMODE_DOUT -DESP8266 "-IC:\Users\mike\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266" "-IC:\Users\mike\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\variants\generic" "C:\Users\mike\AppData\Local\Temp\arduino_build_998064\sketch\sketch_sep27a.ino.cpp" -o nul Alternatives for cannot execute 'cc1plus': [] ResolveLibrary(cannot execute 'cc1plus') xtensa-lx106-elf-g++: fatal error: cannot execute 'cc1plus': CreateProcess: No such file or directory -> candidates: [] compilation terminated.

exit status 1 Error compiling for board Generic ESP8266 Module.

yannpub commented 2 years ago

Follow-up from before...

I tried to compile for a Sonoff TH16.

My setup is a supervised HA, VM running Debian Bullseye on an ARM64 box. Add-On Version is 2021.8.2

I managed to compile with the 2.5.1 workaround. I also recompiled to update to 2021.9.2. Yeah!!

BUT since I have upgraded to 2021.10 (and now to 2021.10.2) the error is back EVEN with the 2.5.1 workaround.

I tried also with the old and new platform config:

esphome: name: plug02 platform: ESP8266 board: esp01_1m arduino_version: 2.5.1

And now:

esphome: name: plug01 esp8266:
board: esp01_1m framework: version: 2.5.1

But both fail into the xtensa-lx106-elf-g++: not found error.

Any idea?

Compiling /data/plug01/.pioenvs/plug01/src/esphome/components/api/api_connection.cpp.o sh: 1: xtensa-lx106-elf-g++: not found *** [/data/plug01/.pioenvs/plug01/src/esphome/components/api/api_connection.cpp.o] Error 127 ========================= [FAILED] Took 16.05 seconds =========================

J0nnyBr4v0 commented 2 years ago

Follow-up from before...

I tried to compile for a Sonoff TH16. My setup is a supervised HA, VM running Debian Bullseye on an ARM64 box. Add-On Version is 2021.8.2

I managed to compile with the 2.5.1 workaround. I also recompiled to update to 2021.9.2. Yeah!!

BUT since I have upgraded to 2021.10 (and now to 2021.10.2) the error is back EVEN with the 2.5.1 workaround.

I tried also with the old and new platform config:

esphome: name: plug02 platform: ESP8266 board: esp01_1m arduino_version: 2.5.1

And now:

esphome: name: plug01 esp8266: board: esp01_1m framework: version: 2.5.1

But both fail into the xtensa-lx106-elf-g++: not found error.

Any idea?

Compiling /data/plug01/.pioenvs/plug01/src/esphome/components/api/api_connection.cpp.o sh: 1: xtensa-lx106-elf-g++: not found *** [/data/plug01/.pioenvs/plug01/src/esphome/components/api/api_connection.cpp.o] Error 127 ========================= [FAILED] Took 16.05 seconds =========================

Exactly the same for me...