Building RepRap Firmware on Debian Buster
-
Hi,
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.
Build Tools
- 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
Additional Dependencies
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.
-
Thanks for the information. I'll add a link to this post from the BuildInstructions page.
You don't need to build DuetWiFiSocketServer in order to build RepRapFirmware, but you do need to have that project in the workspace because RRF uses one of its include files.
-
Thanks for clarifying on DuetWiFiServer, I decided to cover that just in case someone decided to hack on that as well and isn't blocked on finding prerequisites at that point in time.
-
For Duet 3
git clone https://github.com/dc42/CANlib.git
was also needed but not part of the BuildInstructions page.Thanks for the xtensa legwork as well!