加藤惠的老公 Posted 4 hours ago Posted 4 hours ago Description: Hello everyone, I am encountering an issue where kernel configuration changes do not take effect when building an image for the Rock 5B using the Armbian Build system. Environment: Board: Rock 5B Kernel: Vendor Release: Noble Build Mode: Mini Build Tag/Branch: v25.11 Specific Issue: To ensure compatibility with Redroid containers, I need to change the kernel's CONFIG_ARM64_VA_BITS from the default 48-bit to 39-bit. What I have tried: I have attempted the following three methods, but none have worked: Ran the kernel configuration tool to change CONFIG_ARM64_VA_BITS, then copied the generated .config to userpatches/linux-rk35xx-vendor.config. Took the default config/kernel/linux-rk35xx-vendor.config, manually modified/added CONFIG_ARM64_VA_BITS=39 and CONFIG_ARM64_VA_BITS_39=y, and copied it to userpatches/linux-rk35xx-vendor.config. Created a kernel source patch in userpatches targeting arch/arm64/configs/rockchip_linux_defconfig and arch/arm64/configs/defconfig to force CONFIG_ARM64_VA_BITS=39 and CONFIG_ARM64_VA_BITS_39=y. Result: Regardless of the method used, the final Armbian-generated kernel remains at VA_BITS=48. It seems my configuration changes are being overwritten or ignored during the build process. Request: Is there specific logic in the Vendor/RK3588 build configuration that forcibly locks VA_BITS? What is the correct way to modify this parameter for this specific board/kernel combination? Thanks for your help! 0 Quote
Werner Posted 3 hours ago Posted 3 hours ago Hi While I thiknk your approach should have worked, a quick search revealed that something similar is done for a different family. Perhaps try this way:https://github.com/armbian/build/blob/9aa6e1e29ec2d397bbe223bebaa93bd13ef79818/patch/kernel/archive/filogic-6.16/patches.armbian/0007-build.sh-add-additional-build-script-config-defconfi.patch#L1909 0 Quote
加藤惠的老公 Posted 1 hour ago Author Posted 1 hour ago @Werner I re-checked all my patches and custom configurations and performed a clean rebuild. I found clear evidence in the logs that `CONFIG_ARM64_VA_BITS` is being explicitly overwritten during the build process: ### kernel_config_initialize.log --> (9) INFO: Configuring kernel [ linux-rk35xx-vendor ] --> (9) INFO: Using kernel config provided by user [ userpatches/linux-rk35xx-vendor.config ] --> (9) COMMAND: cp -pv /armbian/userpatches/linux-rk35xx-vendor.config /armbian/cache/sources/linux-kernel-worktree/6.1__rk35xx__arm64/.config '/armbian/userpatches/linux-rk35xx-vendor.config' -> '/armbian/cache/sources/linux-kernel-worktree/6.1__rk35xx__arm64/.config' --> (9) INFO: Considering available RAM for BTF build [ 13082 MiB ] --> (9) INFO: Enabling eBPF and BTF info [ for fully BTF & CO-RE enabled kernel ] --> (9) COMMAND: ./scripts/config --disable SECURITY_LOCKDOWN_LSM ... --> (10) COMMAND: ./scripts/config --enable ARM64_VA_BITS_48 ... --> (12) COMMAND: ./scripts/config --set-val ARM64_PA_BITS 48 --> (12) COMMAND: env -i CCACHE_BASEDIR="/armbian/cache/sources/linux-kernel-worktree/6.1__rk35xx__arm64" CCACHE_TEMPDIR="/armbian/.tmp/work-907ace63-1eb7-43dc-ac17-503d457007a8/ccache_tmp" PATH="/usr/bin:/armbian/cache/pip/base/bin:/armbian/.tmp/work-907ace63-1eb7-43dc-ac17-503d457007a8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" PYTHONPATH="/armbian/cache/pip/base/lib/python3.12/site-packages:" DPKG_COLORS=always XZ_OPT='--threads=0' TERM='xterm-256color' COLUMNS='248' COLORFGBG='' CCACHE_DIR='/armbian/cache/ccache' make '-j6' 'ARCH=arm64' 'LOCALVERSION=-vendor-rk35xx' 'CROSS_COMPILE= aarch64-linux-gnu-' 'KCFLAGS=-fdiagnostics-color=always -Wno-error=misleading-indentation ' 'SOURCE_DATE_EPOCH=1768563629' 'KBUILD_BUILD_TIMESTAMP=Fri Jan 16 11:40:29 UTC 2026' 'KBUILD_BUILD_USER=build' 'KBUILD_BUILD_HOST=armbian' 'KGZIP=pigz' 'KBZIP2=pbzip2' olddefconfig HOSTCC scripts/basic/fixdep LEX scripts/kconfig/lexer.lex.c YACC scripts/kconfig/parser.tab.[ch] HOSTCC scripts/kconfig/lexer.lex.o HOSTCC scripts/kconfig/parser.tab.o HOSTLD scripts/kconfig/conf .config:2755:warning: override: reassigning to symbol ARM64_VA_BITS_39 .config:2789:warning: override: ARM64_VA_BITS_48 changes choice state # # configuration written to .config # --> (14) INFO: Kernel configuration [ linux-rk35xx-vendor ] I traced this behavior to the following function in `lib/functions/compilation/armbian-kernel.sh`: function armbian_kernel_config__force_pa_va_48_bits_on_arm64() { if [[ "${ARCH}" == "arm64" ]]; then opts_y+=("ARM64_VA_BITS_48") opts_val["ARM64_PA_BITS"]="48" fi } I manually modified this function (changing `48` to `39`), and the resulting kernel deb finally compiled with `CONFIG_ARM64_VA_BITS=39` successfully. Obviously, modifying the build framework source is not the proper solution. Is this enforcement intended for all arm64 builds? Is there a standard way to bypass this function? 0 Quote
Werner Posted 2 minutes ago Posted 2 minutes ago You can create an extension including something like unset armbian_kernel_config__force_pa_va_48_bits_on_arm64 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.