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 completesudo 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
- docker/podman
- qemu-user-static
-
build the official vyos-build docker container as
vyos/vyos-build:current-arm64
This can take an hour++ to completegit 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