Hi Michael,
Hi list,

Thanks Michael for having taken the time to reproduce the build, and thus making this branch go from the state of "urban legend" to "has been confirmed at least once" :-)

I hope more of you will be able to follow the instructions of Michael, that are very clear and should ease your work when wanting to test this branch.

Ideally, I wanted that some of you having both the time (...) and a vehicle to test would be able to use this build as a daily driver, hoping that the known missing parts would not be a showstopper. Let me know, and also if you have some spare cycles you can check https://github.com/wolfSSL/wolfssl/issues/6028 in order to help fix some remaining issues on this library we depend on.

In the meantime, I believe we can try to integrate (part of) this branch in master. I already started to distillate some parts of this in multiples MRs here https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/pulls?q=is%3Aopen+is%3Apr+author%3Allange+draft%3Afalse ; which could be merged without -I hope, but the review will confirm- any impact nor regression to the current master branch.

Let me know if I should continue in that direction, and sorry for sounding impatient about it :-)

Regards,


Le 18/02/2023 à 10:12, Michael Balzer a écrit :
Ludovic,

the issue is bound to the docker image version, I was using "espressif/idf", which is "latest".

The build works using the same sdkconfig with "espressif/idf:release-v5.0" (and again fails at that mbedtls module when switching back to the "latest" image).

So to build the current experimental state, I recommend using the docker image and basically doing the steps Ludovic formalized in the github action:

### SETUP ###

cd ~/esp/Open-Vehicle-Monitoring-System-3

# setup branch:
git remote add llange    git@github.com:llange/Open-Vehicle-Monitoring-System-3.git
git branch -t experimental-esp-idf-build-workflow llange/experimental-esp-idf-build-workflow

# switch to branch:
git checkout experimental-esp-idf-build-workflow
git submodule update --init --recursive

# apply mongoose patch:
git apply --directory=vehicle/OVMS.V3/components/mongoose/mongoose vehicle/OVMS.V3/support/mongoose-espv5.patch

# install v5 sdkconfig defaults:
cp vehicle/OVMS.V3/support/sdkconfig.defaults.esp5 vehicle/OVMS.V3/sdkconfig.defaults

# install v5 idf components:
cp vehicle/OVMS.V3/support/idf_component.yml.esp5 vehicle/OVMS.V3/main/idf_component.yml


### BUILD ###

cd ~/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3

# launch docker shell:
docker run --rm -v $PWD:/project -w /project -it espressif/idf:release-v5.0
# init docker image (needs to be done on every start):
apt-get update && apt-get install -y dos2unix

# OPTION 1: start with default config:
rm vehicle/OVMS.V3/sdkconfig
# NOTE: this will build for ESP32 >= rev3, excluding the SPIRAM bug workarounds

# OPTION 2: update your existing sdkconfig:
idf.py menuconfig
# → press '/'
#   … enable FREERTOS_ENABLE_BACKWARD_COMPATIBILITY
#   … disable FREERTOS_ASSERT_ON_UNTESTED_FUNCTION
#   … disable MG_ENABLE_SSL

# build:
idf.py build

# flash & start USB monitor:
idf.py app-flash && idf.py monitor


The build boots & works, issues you described excluded.

An issue I didn't expect:

I (0) cpu_start: Starting scheduler on APP CPU.
E (0) task_wdt: esp_task_wdt_add(747): TWDT was never initialized

E (10) task_wdt: esp_task_wdt_add(747): TWDT was never initialized

…and then repeated 4x per second:
E (3130) task_wdt: esp_task_wdt_reset(783): task not found


I'll try to find the cause, as we cannot silent these ("early" logging) they make using the shell challenging.

But, besides that, it has Wifi & cellular connectivity, so looks very promising -- nice work, Ludovic!

Regards,
Michael