Build VyOS 1.4 image on pi4
Quick build instructions:
install a 64bit debian/ubuntu (haven't tried using raspbian) on a pi and install docker
build the official vyos-build docker container as vyos/vyos-build:current-arm64
This can take an hour++ to complete
sudo docker build https://github.com/vyos/vyos-build.git#current:docker -t vyos/vyos-build:current-arm64
Build a Pi image:
git clone https://github.com/runborg/vyos-pi-builder
cd vyos-pi-builder
sudo docker run -it --privileged -v "$(pwd)":/vyos -v /dev:/dev -w /vyos --sysctl net.ipv6.conf.lo.disable_ipv6=0 vyos/vyos-build:current-arm64 sudo bash -x build-image.sh
Build VyOS 1.4 image on an x86 linux host using qemu-user-static and docker/podman
Prerequisites
build the official vyos-build docker container as vyos/vyos-build:current-arm64
This can take an hour++ to complete
git clone -b current --single-branch https://github.com/vyos/vyos-build
sudo docker build --platform linux/arm64 vyos-build/docker -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static -t vyos/vyos-build:current-arm64
or with make
make container
Build a Pi kernel:
You must build the kernel the first time and when the kernel is upgraded.
The required kernel version information by VyOS is here and the provided kernel version information for Raspberry Pi is here.
If the version of the kernel you need is different from the kernel provided for pi, you will need to prepare the kernel by other means instead of using the command below.
sudo docker run --rm -it --platform linux/arm64 --privileged -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static -v "$(shell pwd)":/vyos -v /dev:/dev --sysctl net.ipv6.conf.lo.disable_ipv6=0 localhost/vyos/vyos-build:current-arm64 /bin/bash -c 'cd /vyos; /bin/bash -x build-pi-kernel.sh'
or with make
make kernel-local
you can also take already built container in docker registry and use that.
make kernel-registry
Build a Pi image:
git clone https://github.com/runborg/vyos-pi-builder
cd vyos-pi-builder
sudo docker run --rm -it --platform linux/arm64 --privileged -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static -v "$(shell pwd)":/vyos -v /dev:/dev --sysctl net.ipv6.conf.lo.disable_ipv6=0 localhost/vyos/vyos-build:current-arm64 /bin/bash -c 'cd /vyos; /bin/bash -x build-image.sh'
or with make
make iso-local
you can also take already built container in docker registry and use that.
make iso-registry