Cross compile mysensors gateway
-
Hi!
I'm about to attempt to cross compile a gateway for Arm (raspi 1 b+) on Ubuntu. Has anymore tried that before (I could't find any posts related)? Would it be interesting to document this here as well?
-
@Jasper-van-Zuijlen well, it took 6 minutes to compile on my Raspberry 1 B+, so no big deal, but if you will achieve cross compiling, I think documenting it here will be much appreciated
-
maybe a good knowledge resource for cross-compilation against rpi targets:
https://tttapa.github.io/Pages/Raspberry-Pi/C++-Development/Building-The-Toolchain.html
-
I use ccache, so recompiling (which I do occasionally when I try to help forum members troubleshooting) doesn't take much time.
-
@monte yeah, it does only take that long. I think I got sidetracked a bit I usually set up my pi by Ansible, but it's very slow. I was thinking about ways to speed that up.
Maybe get my project working first before I dive into this. I'll post what I have so far shortly should anyone be interesed.
Thanks for screwing my head on straight again
-
As promised, what I found so far: the following dockerfile yeilds a usable cross-compile environment, provided you use it with a Makefile.
FROM ubuntu:xenial RUN apt-get update \ && apt-get install --yes \ vim \ build-essential \ git RUN git clone https://github.com/raspberrypi/tools RUN git clone https://gist.github.com/3873805.git /build WORKDIR "/build" CMD ["/usr/bin/make", "CC=/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc" , "HelloWorld"] # Seems I need a real makefile for the above to work.
For cross compiling mysensors to work, hoever, you also need to properly seed the variable in configure, for it to work correctly. This is where I left off.
Sources:
https://stackoverflow.com/questions/18007326/how-to-change-default-values-of-variables-like-cc-in-makefile
https://bitbucket.org/mitchallen/pi-hello-cross-compile/src/master/
https://desertbot.io/blog/how-to-cross-compile-for-raspberry-pi
https://github.com/mitchallen/pi-cross-compile/blob/master/Dockerfile
https://github.com/mysensors/MySensors/blob/development/configure
https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin
https://www.raspberrypi.org/documentation/linux/kernel/building.md
https://www.mysensors.org/build/raspberry