Page MenuHomeVyOS Platform

Incorrect "architecture" config loaded
Closed, ResolvedPublicBUG

Description

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:

  1. read flavor + cli
  2. read correct architecture and build type
  3. 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
            "${@}"

Details

Difficulty level
Unknown (require assessment)
Version
1.4-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Event Timeline

sskaje created this object in space S1 VyOS Public.
sskaje changed Version from - to 1.4-.
Viacheslav changed the subtype of this task from "Task" to "Bug".Mar 29 2023, 9:17 AM

I've made some changes but not sure if the logic is what VyOS team accept.

URL
https://github.com/sskaje/vyos-build/commit/4995bcb5b8a9c5cc29098c9a049d8d726cdd084b

Changes:

  1. Add skip_none=False to merge_dicts, if it's True, None value in source will be ignored
  2. Remove all default values from options object
  3. Add pre_build_config = build_defaults + flavor_config + args (skip_none=True for args)
  4. Fix variables check
  5. New build_config = build_defaults + build_type_config + build_arch_config + flavor_config + args (skip_none=True for args)

Code is not ready for PR because part of T5120 is affected and mixed.

Viacheslav changed the task status from Open to In progress.Jan 20 2024, 12:16 PM
Viacheslav triaged this task as Normal priority.