Copyright Michelangelo Guarise - 2016
On a Debian (buster) host, the following packages are required:
build-essential
ca-certificates
curl
debootstrap
dosfstools
git
jq
kpartx
libssl-dev
lz4
lzop
md5deep
multistrap
parted
patch
pv
qemu-user-static
qemu-utils
qemu
squashfs-tools
sudo
u-boot-tools
wget
xz-utils
zip
- Ensure you have installed all dependencies listed above.
- Clone the build repo, and launch the build script (requires root permissions).
git clone https://github.com/volumio/Build build
cd ./build
./build.sh -b <architecture> -d <device> -v <version>
where flags are :
-
-b
<arch>
Build a base rootfs with Multistrap.Options for the target architecture are:
arm (Raspbian armhf 32bit), armv7 (Debian armhf 32bit), armv8 (Debian arm64 64bit)
x86 (Debian i386 32bit) or x64 (Debian amd64 64bit). -
-d
<dev>
Create Image for Specific Devices.Example supported device names:
mp1, nanopineo2, odroidn2, orangepilite, pi, rockpis, tinkerboard, x86_amd64, x86_i386Run
./build.sh -h
for a definitive list; new devices are being added as time allows. -
-v
<vers>
Version
Example: Build a Raspberry PI image from scratch, version 2.0 :
./build.sh -b arm -d pi -v 2.0
You do not have to build the base and the image at the same time.
Example: Build the base for x86 first and the image version 2.123
in a second step:
./build.sh -b x86
./build.sh -d x86_i386 -v 2.123
Kernel Sources
- Raspberry PI
- X86
- Odroid C1, branch odroidc-3.10.y
- Odroid C2, branch odroidc2-3.14.y
- Odroid X2
- Odroid XU4
- BeagleBoneBlack
- armbian
Main Packages Sources
- MPD by Max Kellerman
- Shairport-Sync by Mike Brady
- Node.JS by Ryan Dahl
- SnapCast by Badaix
- Upmpdcli by Justin Maggard
Debian Packages Sources (x86)
All Debian-retrieved packages sources can be found at the debian-sources Repository
Raspbian Packages Sources (armhf)
All Raspbian-retrieved packages sources can be found at the raspbian-sources Repository
If any information, source package or license is missing, please report it to info at volumio dot org
If you are doing a lot of volumio builds you may wish to save some bandwidth
by installing a package cache program, such as apt-cacher-ng
.
For a Debian-based system, these are the steps:
- install, and configure so https package sources are not cached
# apt-get install apt-cacher-ng # cat >> /etc/apt-cacher-ng/local.conf # do not cache https package sources PassThroughPattern: ^(.*):443$ ^D # systemctl restart apt-cacher-ng
- Set this environment variable;
build.sh
will do the rest.$ export APT_CACHE='http://localhost:3142' # or similar $ sudo -E ./build.sh -b arm -d pi # -E preserves the environment
- To confirm operation, watch the log file during a build
# tail -f /var/log/apt-cacher-ng/apt-cacher-ng.log
Some packages cannot easily be cached, because they are downloaded over https
(the cache is detected by the SSL certificate checks made by the https protocol).
Also some packages are downloaded via wget
or similar, which do not make
use of the cache.