- turns out `pahole` for `vmlinux` can take multiple gigabytes of RAM to run successfully
- I can't simply decide based on available RAM, as that would make .config hashes mismatch
- thus, introduce:
- default is to enable BTF; if on low-ram host, error out unless KERNEL_BTF=yes is passed
- if KERNEL_BTF=no is passed, the BTF debug info is always disabled
- if KERNEL_BTF=yes is passed, then a warning is produced, but BTF is still enabled
- the magic number "6451 MiB" was determined empirically (and is probably bs)
- we need to run the hooks _before_ running oldconfig, otherwise it is too late
- drop `kernel_config_check_and_repair()` since it won't ever detect anything now
* Refactor armbian-config into install as external package
- https://github.armbian.com/configng repository is always present
- package can still be removed from the install list
Since this tool will have deeper integration with Armbian, we should probably drop possibility to remove the tool from the list.
* Enable armbian-config as extension
- with DEBUG=yes, allows us to see what is leftover in directory during builds
- with new cleaning in separate commit, there shouldn't be any leftovers _at all_
- with this, every u-boot build will be a full rebuild.
- still, building u-boot is pretty fast
- and it is better to be a bit slower and actually produce correct results
- incl some indicative fdt/extlinux/gpt info
- include full config and defconfig for each target
- mark the old .config file as legacy (it was always the last-target's config)
- fix: savedefconfig after build, not before (as target_map might change it)
- fix: some very old u-boots (2011, odroidc1) do not have `savedefconfig` at all, so make it optional
- fix: same for `.config` -- very old u-boots worked different (`boards.cfg`?)
- this affects `rewrite-kernel-config` and `kernel-config` CLIs
- this does not actually change the .config's we have, that will happen later / gradually as configs are rewritten
- no more `.defconfig` files are produced (they were in gitignore)
In order for the cleanup to be correct for tools, we need to pass
the VMLINUX_BTF variable, which contains the real path to the vmlinux
file we just compiled.
The vmlinux file itself is not involved in cleaning,
but the Makefile checks for its presence and cleaning
is aborted if it is not found.
armbian-config uses debconf-apt-progress which is part of debconf.
libtext-iconv-perl is needed to prevent the following error, when
uninstalling a package through debconf-apt-progress:
Can't locate object method "new" via package "Text::Iconv" (perhaps you forgot to load "Text::Iconv"?) at /usr/share/perl5/Debconf/Encoding.pm line 65, <GEN2> line 2.
dpkg: error processing package nfs-common (--configure):
- we've some smelly stuff in write_uboot_platform for some families that we'd rather catch early
- implement small syntax fixes in setup_write_uboot_platform
* Add a list of BASH shell aliases and merge them with ohmyZSH aliases
* Add command armbian-upgrade to the BSP which executes update + upgrade
* Display armbian-upgrade only if there are upgrades
* Generate empty folder where will store data. This doesn't exists at early start
* Move armbian-install to /usr/bin and autoexecute sudo
The kernel option `CONFIG_MODULE_COMPRESS_NONE` was superseded by `CONFIG_MODULE_COMPRESS` in 6.12.
Adapt the kernel compilation script accordingly to force the correct kernel option.
Source: c7ff693fa2