Skip to main content

Building ISO

VyOS Source Documentation

The steps below can be used to setup the build environment, build the packages and kernel, and then ultimately the ISO.

Too many people were building ISO images and making them publicly available, so the VyOS team no longer provides direct access to the pre-built package repositories. You must compile them yourself.

Prerequisites

You need to have Docker CE installed. See documentation for process.

Setup build environment #

You can use either the Dockerhub instructions or the Build from source instructions.

Start the build environment #

Download the vyos-build code from GitHub using the proper command:

# For VyOS 1.2 (crux)
$ git clone -b crux --single-branch https://github.com/vyos/vyos-build

# For VyOS 1.3 (equuleus)
$ git clone -b equuleus --single-branch https://github.com/vyos/vyos-build

# For VyOS 1.4 (sagitta)
$ git clone -b sagitta --single-branch https://github.com/vyos/vyos-build

# For VyOS 1.5 (circinus,current)
$ git clone -b current --single-branch https://github.com/vyos/vyos-build

As non-root user, start the docker container using the proper command:

$ cd vyos-build

# For VyOS 1.2 (crux)
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:crux bash

# For VyOS 1.3 (equuleus)
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:equuleus bash

# For VyOS 1.4 (sagitta)
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:sagitta bash

# For VyOS 1.5 (current)
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash

Build vyos-1x packages #

cd packages

git clone -b sagitta https://github.com/vyos/vyos-1x

cd vyos-1x/

dpkg-buildpackage -uc -us -tc -b

cd ..

dir *.deb

cd ..

Build the kernel #

git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

cd linux

# use the kernel_version listed in the defaults.toml file
cat /vyos/data/defaults.toml | grep kernel_version

# checkout the kernel to match the defaults.toml file
git checkout v6.6.43

cd ..

./build-kernel.sh

# 20 minutes or more later you should have a kernel binary package to use in the ISO build process

Build firmware #

cd /vyos/packages/linux-kernel
git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
./build-linux-firmware.sh
cp vyos-linux-firmware_*.deb ../

Building Out-Of-Tree Modules #

# Accel-PPP
cd /vyos/packages/linux-kernel
git clone https://github.com/accel-ppp/accel-ppp.git
./build-accel-ppp.sh
cp accel-ppp*.deb ..

# Intel drivers
./build-intel-ixgbe.sh
./build-intel-ixgbevf.sh
./build-intel-qat.sh
cp vyos-intel-*.deb ..

# Jool
./build-jool.py
cp jool*.deb ..

# OpenVPN DCO
git clone https://github.com/OpenVPN/ovpn-dco
./build-openvpn-dco.sh
cp openvpn-dco*.deb ..

Build the ISO

cd /vyos

# For VyOS 1.2 (crux) and VyOS 1.3 (equuleus)
./configure --architecture amd64 --build-by "bluecrow.net"
sudo make iso

# For VyOS 1.4 (sagitta)
sudo make clean
sudo ./build-vyos-image iso --architecture amd64 --build-by "bluecrow.net"

# For VyOS 1.5 (circinus,current)
sudo make clean
sudo ./build-vyos-image generic --architecture amd64 --build-by "bluecrow.net"

 

Virtualization Platforms

make qemu
make vmware

 

-end