I would like to document what I needed to do to compile RepRapFirmware and DuetWiFiSocketServer on a Debian Buster system (similar to a previous report on doing the same on Linux Arch).
First off, do not waste time trying to install the build chain from debian packages. They are sorely outdated and will not work.
The Build Instructions are a decent baseline, but to get everything going, I had to close some gaps.
- Eclipse IDE for C++ downloaded from upstream. This requires a JRE to run, but openjdk is sufficient.
- arm GNU toolchain downloaded from upstream. The Debian packages are massively outdated and builds will fail.
- xtensa architecture toolchain from upstream is needed for DuetWifiSocketServer. As with the arm-gcc cross compiler, the Buster packages are outdated and won't build the project.
- ESPtool because the esptool.py included in the xtensa architecture toolchain has different command line switches and the build will fail without the binary
- eboot.elf from the Arduino ESP libraries
In addition to the repositories listed in the build instructions, you need LwipESP8266 and CoreESP8266 as prerequisites to build DuetWiFiSocketServer.
More Project Variables and Paths
- For LwipESP8266, set GccPath to the bin dir of the xtensa-lx106-elf compiler suite
- For CoreESP8266, set GccPath to the bin dir of the xtensa-lx106-elf compiler suite
- For DuetWifiSocketServer, set
- EspBootFile to the path to a valid eboot.bin
- EspToolPath to the esptool binary (NB esptool.py does not work because it has another call signature)
- GCCPath to the bin dir of the xtensa-lx106-compiler suite
From the default settings on the checked out projects it looks like you can find those when you added ESP8266 support to a local arduino installation, but when I set this up I was tired and couldn't remember how to set up board support on Arduino so it was more straightforward for me to download and build everything from source. It also made it possible for me to ensure that I really got the latest versions of everything.
With all this in place, I was able to build CoreNG, FreeRTOS, RRFLibraries, LwipEsp8266, CoreEsp8266, DuetWifiSocketServer and finally RepRapFirmware without a hitch.