Manufacture du Son
On this page

Prerequisites

Host packages and Docker option

Edit on GitHub

Prerequisites

Two flavours are supported: building natively on a Linux host, or building inside the provided Docker container.

Native build

Buildroot itself documents the minimum required host packages. The Docker image used by this project mirrors what is needed; on Debian / Ubuntu it boils down to:

sudo apt update
sudo apt install -y \
    build-essential bash bc binutils bzip2 cpio g++ gcc git gzip \
    libncurses5-dev libdevmapper-dev libsystemd-dev libssl-dev libfdt-dev \
    make mercurial whois patch perl python3 python3-setuptools python3-dev \
    rsync sed tar unzip wget bison flex swig file mtools u-boot-tools curl

For flashing you will additionally want:

  • sunxi-tools โ€” provides sunxi-fel, used to push images into RAM over USB FEL.
  • A serial console tool โ€” picocom, minicom, screen or similar.

Containerised build

The Dockerfile provides a reproducible Ubuntu 24.04 environment that already contains every host package needed by Buildroot.

Build the image once:

make container-image

Then prefix any build target with CONTAINER=1:

make build CONTAINER=1
make build-linux-rebuild CONTAINER=1

Internally this runs:

docker run -it --rm \
    --volume="$PWD:$PWD" \
    -v mds-builder-build:$PWD/build \
    --workdir="$PWD" \
    mds_builder_image:latest <command>

A named volume mds-builder-build is mounted at $PWD/build so the long Buildroot output tree survives container restarts without being stored inside the layered filesystem.

Container engine

The default engine is docker. To use Podman or any other compatible engine:

make build CONTAINER=1 CONTAINER_ENGINE=podman

You can also drop into a shell inside the container:

make containter-shell

user.env

If a user.env file exists at the repo root, it is automatically included by the Makefile. Use it to pin your favourite defaults, e.g.:

CONTAINER       = 1
CONTAINER_ENGINE = podman
MACHINE         = network_player