Page MenuHomeVyOS Platform

initial arm64 support for RPI4 and QEMU VM
In progress, NormalPublicBUG

Description

support arm64 for RPI4 and QEMU VM

Details

Difficulty level
Unknown (require assessment)
Version
1.4-rolling
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Improvement (missing useful functionality)

Event Timeline

Viacheslav changed the task status from Open to In progress.Aug 23 2023, 2:28 PM
Viacheslav assigned this task to tjjh89017.

@tjjh89017 This will need to be re-evaluated. The build from your PR was taking in excess of 8 hours on the build server - the defconfig likely needs to be brought down to only the minimum required modules/drivers for successful builds on target devices.

@sdev I saw c-po revert the merge.
and I didn't expect that it will cost lots of time also.
It's better to revert it.
Currently, I will maintain kernel configs in my own branch.

It's not easy to check the arm/arm64 kernel configs that VyOS or machine level requires.
It will be great if we have a feature list that used by VyOS or machines.

Thanks a lot

A baseline could be to look at the linux kernel config used by Alpine Linux for their RPI-builds:

The base is at:

https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/main/linux-lts

with diffs found in:

https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/main/linux-rpi

And then diff it to what VyOS uses found at:

https://github.com/vyos/vyos-build/blob/current/packages/linux-kernel/arch/x86/configs/vyos_defconfig

Should at least bring down the list of drivers needed to get compiled.

Edit: There is also this patch available that diffs from mainline LTS kernel (alter the version number for the kernel needed):

https://dev.alpinelinux.org/archive/rpi-patches/rpi-6.1.46-alpine.patch

@Apachez thanks to you.
Let me check it.

Maybe VyOS could avoid qemu emu build for kernel.
and use cross-compile method to build and pack kernel.
It might be faster than qemu way.

Viacheslav changed the task status from In progress to Needs testing.Sep 5 2023, 12:57 PM

Regarding testing of arm-builds, hopefully this article might come handy (how to use qemu-system-aarch64 (on x86) part of the qemu-system-arm package):

https://isc.sans.edu/diary/30216

Viacheslav changed the task status from Needs testing to In progress.Jan 20 2024, 1:10 PM
Viacheslav triaged this task as Normal priority.
dmbaturin subscribed.

Moving to 1.5 for now. If we are confident about the solution, we can backport it to 1.4 later. New architectures certainly should be introduced in development releases first.