Copyright Volumio SRL
On a Debian (bookworm) 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-system
squashfs-tools
sudo
u-boot-tools
wget
xz-utils
zip
git clone https://github.com/volumio/volumio3-os.git 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)
x64 (Debian amd64 64bit).
-d <dev>
Create Image for Specific Devices.
Example supported device names:
mp1, nanopineo2, odroidn2, orangepilite, pi, rockpis, tinkerboard, x64
Run ./build.sh -h
for a definitive list; new devices are being added as time allows.
<vers>
VersionExample: Build a Raspberry PI image from scratch, version 3.0 :
./build.sh -b arm -d pi -v 3.0
You do not have to build the base and the image at the same time.
Example: Build the base for x64 first and the image version 3.123
in a second step:
./build.sh -b x64
./build.sh -d x64 -v 3.123
Kernel Sources
Main Packages Sources
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:
# 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
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
# 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.