I am not at all a kernel expert, and I’m not even sure to know what you are trying to do, but a rg 'target = "uimage"' -i
in the nixpkgs folder points to https://github.com/NixOS/nixpkgs/blob/3302bc3ddda5b1f72f7382b259d25856ed763a5e/lib/systems/platforms.nix#L66 that contains stuff like:
pogoplug4 = {
linux-kernel = {
name = "pogoplug4";
baseConfig = "multi_v5_defconfig";
autoModules = false;
extraConfig = ''
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
UBIFS_FS_XATTR y
UBIFS_FS_ADVANCED_COMPR y
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
'';
makeFlags = [ "LOADADDR=0x8000" ];
target = "uImage";
# TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working
#DTB = true;
};
gcc = {
arch = "armv5te";
};
};
which makes sense since when reading the code, you realize that kernelConf
is set to stdenv.hostPlatform.linux-kernel
(host
being understood as the architecture running the kernel).
so doing an extrapolation with your code also containing extraConfig
, my first try would be to do:
customKernel = pkgs.linux.override {
extraConfig = ''
OVERLAY_FS y
'';
# add this:
target = "uImage";
};
But I might be very wrong. Have you tried that before?
If not, you might want to give a try to this reading discussing how to override kernel options using kernelPatches
The *correct* way to override the latest kernel config - #7 by aszlig and this discussion also seems related Override kernel build dependencies - #3 by Skallwar