This repository contains recipes to prepare Debian images adapted for Acmesystems's embedded boards. We leverage Debos, a tool that integrates debootstrap and offers a very readable configuration via .yaml files.
The following recipes have been tested on Debian Stretch: on other Debian versions your mileage might vary. Debos is a very promising but still young project; its support for Ubuntu is in the works but not yet ready.
Since Debos uses a virtualization technology (via fakemachine) to isolate itself from the underlying OS, running these recipes inside a VM requires special care.
Basically you have two choices:
- enabling nested VM support in your virtualizer;
- launching the debos commands as root with sudo.
Nested virtualization support will be slower, but maintains the build process well isolated from your system. The sudo way, on the other hand, while being faster might expose you to potentially dangerous bugs. If you follow that route, you'd better make sure that your VM serve only for the task at hand.
Install prerequisites and enable local caching resolver:
sudo apt install golang git libglib2.0-dev libostree-dev qemu-system-x86 \ build-essential qemu-user-static debootstrap systemd-container \ binfmt-support policykit-1 parted dosfstools xz-utils bmap-tools sudo adduser $USER kvm sudo systemctl start systemd-resolved export GOPATH=`pwd`/gocode go get -u github.com/go-debos/debos/cmd/debos
If your user was not already in group
kvm, you will need to logout and login again. For the current shell only you can inform the system of your new group membership with the command
will create two outputs:
- debian-stretch-roadrunner.img.xz, an xz-compressed image file for a Roadrunner board,
- debian-stretch-roadrunner.img.bmap, a bitmap summary for faster flashing via bmaptools
To flash it, assuming your SD card is /dev/mmcblk0, use:
sudo bmaptool copy debian-stretch-roadrunner.img.xz /dev/mmcblk0
The bmap file is automatically looked for in the current directory - if missing, bmaptool will behave like dd. You could use plain dd as well, with:
xz -cd debian-stretch-roadrunner.img.xz | sudo dd of=/dev/mmcblk0 bs=1M
There are a few configurable parameters in debian.yaml; for instance, let's create an image for arietta:
$GOPATH/bin/debos -t board:arietta -t arch:armel debian.yaml
Look at debian.yaml to see what's available.
There is a script that can be used to produce the images for roadrunner, acqua, aria and arietta all at once: