JNSwanson / ESP-Home-iBoost

ESPHOME Marlec iboost integration
MIT License
17 stars 2 forks source link

Undefined reference errors while compiling cc1011/firmware.elf (.esphome folder has been removed and replaced with /data) #10

Open JimboJ opened 6 months ago

JimboJ commented 6 months ago

When using ESPhome on Hassio

Now .esphome has been moved to /data inside the docker container do you know the replacement for the command; cp CC1101_RFx.* .esphome/build/cc1101/src/

For Reference

https://esphome.io/changelog/2023.9.0.html#

Breaking Changes Home Assistant Add-on The /config/esphome/.esphome folder has been removed and replaced with /data when running ESPHome as a Home Assistant add-on. This was done because it is exactly what the add-on /data folder was made for and there were many files in the .esphome

JimboJ commented 6 months ago

I think I've made some progress on this...

First ensure you have the following addon;

Install and configure Advanced SSH & Web Terminal

Disable protected mode

Find the ESPhome docker container using "docker container ls"

Then

docker cp CC1101_RFx.cpp {container}:new path docker cp CC1101_RFx.h {container}:new path

Truth told i've now messed around a lot, I need to clean up and validate my results.

In short I got it working,

I think the command that worked was

cp CC1101_RFx.cpp /data/addons/data/15ef4d2f_esphome/build/wemosd1mini3/CC1101_RFx.cpp

In the amd64-hassio-supervisor:latest container

Obviously, my container name, and esp8266 name is specific to me, but this might help some one else

srchild commented 5 months ago

I hit the same problem today. After thrashing around for a bit I found a slightly simpler way to overcome this, using terminal with protected mode off.

  1. identify the esphome container as per above: docker container ls (or docker ps)
  2. enter the container: docker exec -it [containername] bash
  3. (or do both 1 and 2 as a one-liner: docker exec -it $(docker ps|sed -rne 's/(.+)(addon_.{8}_esphome)/\2/p') bash )
  4. create directories below data as build/iboost/src (they may already be there if you have already tried compiling, and one of the CC1101 files may already be there too)
  5. still within the container: cp /config/esphome/CC1101* /data/build/iboost/src/

I think the above is what fixed it for me, though as I said I did thrash about a bit along the way so something else may have contributed...

I've managed to build it and get it booting and connecting to wifi. Next: take it near to my iBoost and see if it connects...

I assume that this fix will be overwritten by the next ESPhome update, so I will need to remember that if I want to rebuild in future.

srchild commented 5 months ago

For the benefit of anyone else ending up here, what I said above applied when I was building from within the ESPhome web ui i.e.

within the container: cp /config/esphome/CC1101* /data/build/iboost/src/

But for compiling on the command line within the container this was required:

cp /config/esphome/CC1101* /config/esphome/.esphome/build/iboost/src/

no1knows commented 2 months ago

I hit the same problem today. After thrashing around for a bit I found a slightly simpler way to overcome this, using terminal with protected mode off.

  1. identify the esphome container as per above: docker container ls (or docker ps)
  2. enter the container: docker exec -it [containername] bash
  3. (or do both 1 and 2 as a one-liner: docker exec -it $(docker ps|sed -rne 's/(.+)(addon_.{8}_esphome)/\2/p') bash )
  4. create directories below data as build/iboost/src (they may already be there if you have already tried compiling, and one of the CC1101 files may already be there too)
  5. still within the container: cp /config/esphome/CC1101* /data/build/iboost/src/

I think the above is what fixed it for me, though as I said I did thrash about a bit along the way so something else may have contributed...

I've managed to build it and get it booting and connecting to wifi. Next: take it near to my iBoost and see if it connects...

I assume that this fix will be overwritten by the next ESPhome update, so I will need to remember that if I want to rebuild in future.

Thank you for this, worked well for me! For anyone else struggling to find a terminal with protection mode disabled, I had to install the "Advanced SSH & Web Terminal" add-on. The "Terminal & SSH" add-on didn't offer the ability to disable protection mode.