I'm porting VyOS to NanoPi R6s(arm64). I set up a my own build flavor
# nanopi.toml image_format = "iso" packages = [ ... ] build_type = "development" architecture = "arm64" debian_mirror = "https://mirror.sjtu.edu.cn/debian/" debian_security_mirror = "https://mirror.sjtu.edu.cn/debian-security/"
In VyOS docs, it describes to build like
# docker run ... vyos/vyos-build:current-arm64 ... bash sudo ./build-vyos-image iso --architecture arm64 --debian-mirror ......
And parameters like --architecture are merged from:
- defaults.toml
- build flavor
- cli parameters
As I tested(commit d68bda6a295ba9c1857c27d85c8e04b022acce04), in current-arm64 docker image, ./build-vyos-image nanopi , architecture from flavor is not used and amd64 is introduced. If --architecture is set, the build works well.
As I understand, build flavor is something like preset build profile.
Settings priority should be:
flavor config > architecture config > defaults
CLI is used to override merged settings.
But if CLI architecture not set, incorrect architecture config is loaded. (build-type is similar).
If my understanding is correct, I'll make a PR later to:
- read flavor + cli
- read correct architecture and build type
- merge defaults + correct architecture + correct build-type + flavor + cli
Log:
root@DESKTOP-CPNRT0M:/home/sskaje/nanopi-vyos/work/vyos-build# bash ../../docker-run-arm64.sh sudo ./build-vyos-image nanopi --debian-mirror-server mirror.sjtu.edu.cn --build-by '[email protected]' --debug WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested Current UID/GID: 1000/1000 I: Checking if packages required for VyOS image build are installed D: Effective build config: { "build_type": "development", "architecture": "arm64", "debian_distribution": "bookworm", "debian_mirror": "https://mirror.sjtu.edu.cn/debian/", "debian_security_mirror": "https://mirror.sjtu.edu.cn/debian-security/", "debian_archive_areas": "main contrib non-free non-free-firmware", "vyos_mirror": "http://dev.packages.vyos.net/repositories/current", "vyos_branch": "current", "release_train": "current", "kernel_version": "6.1.21", "bootloaders": "syslinux,grub-efi", "website_url": "https://vyos.io", "support_url": "https://support.vyos.io", "bugtracker_url": "https://vyos.dev", "build_by": "[email protected]", "pbuilder_debian_mirror": "http://mirror.sjtu.edu.cn/debian", "version": null, "build_comment": "", "debian_mirror_server": "mirror.sjtu.edu.cn", "debug": true, "dry_run": false, "custom_apt_entry": [], "custom_apt_key": [], "custom_package": [], "build_flavor": "nanopi", "build_dir": "build", "pbuilder_config": "build/pbuilderrc", "packages": [ "cpufrequtils", "libcpufreq0", "raspi-firmware", "atmel-firmware", "bluez", "bluez-firmware", "dahdi-firmware-nonfree", "firmware-amd-graphics", "firmware-ath9k-htc", "firmware-atheros", "firmware-bnx2", "firmware-bnx2x", "firmware-brcm80211", "firmware-cavium", "firmware-iwlwifi", "firmware-libertas", "firmware-linux", "firmware-linux-free", "firmware-linux-nonfree", "firmware-misc-nonfree", "firmware-myricom", "firmware-netronome", "firmware-netxen", "firmware-qcom-soc", "firmware-qlogic", "firmware-realtek", "firmware-samsung", "firmware-siano", "firmware-sof-signed", "firmware-ti-connectivity", "firmware-zd1211", "hdmi2usb-fx2-firmware", "libiw30", "wireless-tools", "grub2", "grub-pc", "vyos-linux-firmware", "vyos-intel-qat", "telegraf", "gdb", "strace", "apt-rdepends", "tshark", "vim", "vyos-1x-smoketest" ], "additional_repositories": [ "deb [arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/3004 bullseye main" ], "kernel_flavor": "amd64-vyos", "image_format": "iso" } build/config I: Cleaning the build workspace [2023-03-29 08:23:52] lb clean ^CI: Setting up additional APT entries D: Adding these entries to config/archives/vyos.list.chroot: deb http://dev.packages.vyos.net/repositories/current current main D: Adding custom APT entries: deb [arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/3004 bullseye main I: Configuring live-build D: live-build configuration command lb config noauto --architectures arm64 --bootappend-live "boot=live components hostname=vyos username=live nopersistence noautologin nonetworking union=overlay console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" --bootappend-live-failsafe "live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" --linux-flavours amd64-vyos --linux-packages linux-image-6.1.21 --bootloader syslinux,grub-efi --binary-images iso-hybrid --checksums 'sha256 md5' --debian-installer none --distribution bookworm --iso-application "VyOS" --iso-publisher "[email protected]" --iso-volume "VyOS" --debootstrap-options "--variant=minbase --exclude=isc-dhcp-client,isc-dhcp-common,ifupdown --include=apt-utils,ca-certificates,gnupg2" --mirror-bootstrap https://mirror.sjtu.edu.cn/debian/ --mirror-chroot https://mirror.sjtu.edu.cn/debian/ --mirror-chroot-security https://mirror.sjtu.edu.cn/debian-security/ --mirror-binary https://mirror.sjtu.edu.cn/debian/ --mirror-binary-security https://mirror.sjtu.edu.cn/debian-security/ --archive-areas "main contrib non-free non-free-firmware" --firmware-chroot false --firmware-binary false --updates true --security true --backports true --apt-recommends false --apt-options "--yes -oAPT::Get::allow-downgrades=true" --apt-indices false "${@}"