This repository contains scripts used to build a customised EV3 image containing Sling and Sinter.
If you want to know exactly how the build process works, read the GitHub workflow.
In a nutshell:
build_control_panel.sh: Cross-compiles theservice_controlbinary to manage Source-Academy related services and settings directly from the EV3build_sling.sh: Cross-compiles Sling and Sinter for ARM using ev3dev's cross-compilation Docker imageev3dev/debian-stretch-cross, with some additional dependencies added inDockerfile.slingbuild_qrcode.sh: Cross-compiles theshow_qrcodebinary to display the QR code of the device secret on the EV3 screenbuild_uuidtob62.sh: Cross-compiles theuuidtob62CLI utility to represent the device secret in a more compact formatbuild_image.sh: Builds the EV3 root filesystem usingimage/Dockerfileandimage/bootstrap.sh, and then uses Brickstrap to build the final image
To run this locally:
- You must be on Linux.
- You need a static build of QEMU configured for user-mode ARM emulation. It must be registered to handle ARM ELF files using
binfmt_misc. - You need libguestfs tools.
- To satisfy the above dependencies:
- On Ubuntu, install
libguestfs-tools qemu-user-static binfmt-support. - On Arch, install
binfmt-qemu-static qemu-user-static-bin libguestfs. (Note, the first two are AUR packages.)
- On Ubuntu, install
- Download
brickstrap.shto the current directory.
To build the image from the source code, make sure you are the the root of the repository, then run the following commands in order:
wget https://raw.githubusercontent.com/ev3dev/brickstrap/master/src/brickstrap.sh
./build_control_panel.sh
./build_sling.sh
./build_qrcode.sh
./build_uuidtob62.sh
./build_image.sh