moby: optimize kernels for size
this is REQUIRED for future kernel changes i plan: u-boot has limitations on the kernel size it can load
This commit is contained in:
@@ -7,9 +7,16 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
linux_latest.override {
|
linux_latest.override {
|
||||||
DTB = true; #< XXX: not sure if actually needed
|
# compressed images:
|
||||||
|
# - `target = ...` doesn't have effect here.
|
||||||
|
# - one _can_ manually gzip the result, and it's about 20% the size, and u-boot boots it *much* faster.
|
||||||
|
# - unsure if u-boot cares about the name of the image (`Image` v.s. `Image.gz`)
|
||||||
|
# - u-boot decompression does not fix size constraints (e.g. >64 MiB decompressed image may still be a problem)
|
||||||
|
# target = "Image.gz"; #< this doesn't have effect, have to use manual-config for it
|
||||||
|
# DTB = true; #< this doesn't have effect, but is default
|
||||||
|
|
||||||
autoModules = true;
|
autoModules = true;
|
||||||
preferBuiltin = true;
|
preferBuiltin = true; #< TODO: disable this for faster boots and fewer size limitations
|
||||||
enableCommonConfig = true; #< enable nixpkgs config options
|
enableCommonConfig = true; #< enable nixpkgs config options
|
||||||
|
|
||||||
kernelPatches = [
|
kernelPatches = [
|
||||||
@@ -65,6 +72,14 @@ linux_latest.override {
|
|||||||
# DRM_PANEL_SIMPLE = module;
|
# DRM_PANEL_SIMPLE = module;
|
||||||
# };
|
# };
|
||||||
# }
|
# }
|
||||||
|
# {
|
||||||
|
# # necessary only if `preferBuiltin = false`
|
||||||
|
# name = "fix-module-only";
|
||||||
|
# patch = null;
|
||||||
|
# extraStructuredConfig = with lib.kernel; {
|
||||||
|
# SUN8I_DE2_CCU = lib.mkForce module;
|
||||||
|
# };
|
||||||
|
# }
|
||||||
{
|
{
|
||||||
name = "fix-no-display";
|
name = "fix-no-display";
|
||||||
patch = null;
|
patch = null;
|
||||||
@@ -123,6 +138,20 @@ linux_latest.override {
|
|||||||
MEDIA_PCI_SUPPORT = lib.mkForce no;
|
MEDIA_PCI_SUPPORT = lib.mkForce no;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
# i suspect that u-boot can only load a (decompressed) image up to 64 MiB in size for this platform.
|
||||||
|
# i say that because `CONFIG_DEBUG_INFO=y` seems to break the boot
|
||||||
|
# and the difference in size is 62843392 v.s. 71297536
|
||||||
|
# see this u-boot patch, which places OPTREE 72 MiB after the relocated u-boot stack... <https://lore.kernel.org/all/20240217005817.2150377-3-jonas@kwiboo.se/#Z31configs:pinephone-pro-rk3399_defconfig>
|
||||||
|
# largest observed bootable image: 63300096B
|
||||||
|
# smallest observed non-bootable image: 71297536B
|
||||||
|
name = "optimize-for-size";
|
||||||
|
patch = null;
|
||||||
|
extraStructuredConfig = with lib.kernel; {
|
||||||
|
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE = no;
|
||||||
|
CONFIG_CC_OPTIMIZE_FOR_SIZE = yes;
|
||||||
|
};
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "reset-automodules-overrides";
|
name = "reset-automodules-overrides";
|
||||||
patch = null;
|
patch = null;
|
||||||
|
Reference in New Issue
Block a user