rob Posted June 19, 2021 Posted June 19, 2021 Armbian CI is building v5.10.43 while my local build is making v5.10.45. How can I switch? I've tried all sorts of iterations of KERNELRELEASE= BRANCH= and LIB_TAG= in userpatches/config-example.conf but can't find the right combination to build a v5.10.43 kernel with RELEASE=focal What's the correct build env var and value needed to match Armbian's CI?
Werner Posted June 19, 2021 Posted June 19, 2021 May depend on board(-family) (which is quite an essential information that is missing here) since not all follow mainline. Some are built around custom sources which are not always up-to-date. sunxi for example.
lanefu Posted June 19, 2021 Posted June 19, 2021 @rob which board are you building for? Most of our kernel versions are bound to upstream tags or branches. Minor release versions do tend to change.
rob Posted June 19, 2021 Author Posted June 19, 2021 First thanks for the excellent build environment. I'm building BRANCH=current RELEASE=focal BOARD=odroidn2 which makes dpkg-deb: building package 'linux-source-5.10.45-current-meson64' in '/tmp/tmp.8RgxL6czti/linux-source-current-meson64_21.08.0-trunk_all.deb'. but I'm trying to share .ko with the nightly CI image https://armbian.tnahosting.net/dl/odroidn2/archive/Armbian_21.05.4_Odroidn2_focal_current_5.10.43.img.xz because I'm still working out binfmt_misc issues in my hirsute LXC env. update-binfmts: warning: unable to open /proc/sys/fs/binfmt_misc/status for writing: Permission denied update-binfmts: warning: qemu-arm not in database of installed binary formats. [ o.k. ] Adding Armbian repository and authentication key [ /etc/apt/sources.list.d/armbian.list ] chroot: failed to run command ‘/bin/bash’: Exec format error mount: /root/build/.tmp/rootfs-30acf184-73cd-46c1-864e-6b43fbd38071/proc: WARNING: source write-protected, mounted read-only. mount: /root/build/.tmp/rootfs-30acf184-73cd-46c1-864e-6b43fbd38071/sys: WARNING: source write-protected, mounted read-only. mount: /root/build/.tmp/rootfs-30acf184-73cd-46c1-864e-6b43fbd38071/dev: WARNING: source write-protected, mounted read-only. mount: /root/build/.tmp/rootfs-30acf184-73cd-46c1-864e-6b43fbd38071/dev/pts: WARNING: source write-protected, mounted read-only. [ o.k. ] Applying distribution specific tweaks for [ focal ] chroot: failed to run command ‘/bin/bash’: Exec format error chroot: failed to run command ‘/bin/bash’: Exec format error chroot: failed to run command ‘/bin/bash’: Exec format error [ o.k. ] Applying common tweaks chroot: failed to run command ‘/bin/bash’: Exec format error chroot: failed to run command ‘/bin/bash’: Exec format error chroot: failed to run command ‘/bin/bash’: Exec format error [ .... ] Updating [ package lists ] [ .... ] Temporarily disabling [ initramfs-tools hook for kernel ] [ .... ] Installing [ linux-u-boot-odroidn2-current_21.08.0-trunk_arm64.deb ] [ error ] ERROR in function install_deb_chroot [ image-helpers.sh:150 ] [ error ] Installation of /root/linux-u-boot-odroidn2-current_21.08.0-trunk_arm64.deb failed [ odroidn2 focal no meson64 ] I don't understand how to build v5.10.43 rather than v5.10.45 so I slide in my newly built 88x2bu.ko
Solution lanefu Posted June 19, 2021 Solution Posted June 19, 2021 Re: binfmt. if using lxc the container. you need to execute it with more priviledges if you are already, or are using lxc the VM your kernel needs to be ubuntu's -generic kernel rather than the -virtual kernel... -virtual doesn't have binfmt support in it the last time I checked. misc building tips.. I personally hate the LIB_TAG thing.. and prefer to just force it to use whatever branch I'm using.. here's a hint for that https://docs.armbian.com/Developer-Guide_Build-Preparation/#using-alternate-armbian-builder-repos-and-branches How to build from the kernel source you want and love armbian builder As we mentioned. it's not that the armbian build checkout has changed the minor release. it's that the upstream has (it's a weakness we have). So you're going to want to specify your own kernel branch/commit/target etc by hand. https://docs.armbian.com/Developer-Guide_Build-Preparation/#using-alternate-armbian-builder-repos-and-branches So step 1.. we need to figure out what "family" your odroidn2 is lane@billroyall:~/GIT/build$ fgrep -i FAMILY config/boards/odroidn2.conf BOARDFAMILY="meson-g12b" okay.. it's part of the meson-g12b family https://github.com/armbian/build/blob/master/config/sources/families/meson-g12b.conf#L1 hmmmm ---- source "${BASH_SOURCE%/*}/include/meson64_common.inc" okay lets look at its common include https://github.com/armbian/build/blob/master/config/sources/families/include/meson64_common.inc#L30-L32 branch:linux-5.10.y alright so.. it's just following the linux-5.10.y branch.. hence the minor release update.... and since no explicit kernel source is specified.. we can assuming it's using the default mainline https://github.com/armbian/build/blob/master/lib/configuration.sh#L86 which means hunting here https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-5.10.y https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tag/?h=v5.10.43 and lucky for us there's a tag so in theory you should be able to create the file userpatches/sources/meson-g12b.conf with the contents of KERNELBRANCH=tag:v5.10.43
rob Posted June 20, 2021 Author Posted June 20, 2021 Thanks for the detailed walkthrough. Solved issues with QEMU and editing meson-g12b.conf so far no stack traces dumped with 5.8.7.1_35809.20191129_COEX20191120-7777 88x2bu which is the root goal. normally had them every hr so that's a good sign. 1
Recommended Posts