Public | Automated Build

Last pushed: 2 years ago
Short Description
Short description is empty for this repo.
Full Description

Docker container to cross-compile for the raspberry pi 2

docker pull danielfrg/rpi2xc

Example

Inside the workspace directory create hello.c:

#include <stdio.h>

int main() {
    printf("Hello, world!\n");
    return 0;
}

Run (replacing the volume parameter to a valid location on your computer)

docker run -v /Users/drodriguez/code/raspberrypi/rpi2xc/workspace:/workspace rpi2xc arm-linux-gnueabihf-gcc -o hello hello.c

And it will create a hello binary, if you execute it locally it will not work so move it to the pi with scp workspace/hello pi@raspberry:. and run it from there:

pi@raspberrypi ~ $ ./hello
Hello, world!

Advanced

For more advanced stuff you might need to get the /lib and /usr from your raspberry pi.

Start up the pi and run in your laptop (where raspberry is the ip of the raspberry pi):

  1. rsync -rl --delete-after --safe-links pi@raspberry:/usr ./rootfs
  2. rsync -rl --delete-after --safe-links pi@raspberry:/lib ./rootfs
  3. rsync -rl --delete-after --safe-links pi@raspberry:/opt/vc ./rootfs/opt

Share it to the container by adding

-v /Users/drodriguez/code/raspberrypi/rpi2xc/rootfs:/rootfs

cmake

A CMAKE_TOOLCHAIN_FILE is provided at /root/pi.cmake:

git clone https://github.com/jameskbride/cmake-hello-world.git
cd cmake-hello-world
mkdir build
cd build
cmake -D CMAKE_TOOLCHAIN_FILE=/root/pi.cmake ../
make
scp CMakeHelloWorld pi@raspberry:.
ssh pi@raspberry ./CMakeHelloWorld

Building

docker build -t rpi2xc .

Docker Pull Command
Owner
danielfrg
Source Repository