====== Cross-compiling for the Raspberry Pi ====== Compiling DUNE directly on the Raspberry Pi is possible, but soon becomes tedious, as it takes a while. Luckily there is an alternative, cross-compiling. The Raspberry Pi has an available toolchain at [[https://github.com/raspberrypi/tools|GitHub]], but it uses a too old version of the gcc compiler, and therefore it will not compile DUNE. The solution to this, is to use the cross-compiler environment that is made for LSTS Glued. ===== Setting up Glued cross-compiler for DUNE ===== * Install required packages sudo apt-get install docker.io * Clone Glued from github git clone https://github.com/LSTS/glued.git * Run docker shell for the build system cd glued/docker && sudo make && sudo make shell * Create build configuration for mariner-01 ​ ./mkconfig.bash mariner-01 * Compile system image for mariner-01 ​./mksystem.bash lctr-rpi/mariner-01.bash * Create cross-compilation toolchain ./pktoolchain.bash lctr-rpi/mariner-01.bash * Leave docker enviroment exit ===== Cross compiling with the Glued toolchain ===== * Make directory for pibuild mkdir dunebuildrpi && cd dunebuildrpi * Create makefiles with cmake, replace ''%%[wherisit]%%'' with path to the glued folder just created and ''%%[dune_source]%%'' with dune folder cmake -DCROSS=[wherisit]/glued/lctr-rpi/toolchain/bin/armv7-lsts-linux-gnueabihf-gcc [dune_source] * Compile with make, add the -j4 for using more threads, add package to make a tar.gz2 archive that can easily be transferred to the Raspberry Pi make -j4