Re: [PATCH v3] docs: describe how to quickly build a trimmed kernel

From: Thorsten Leemhuis
Date: Mon Mar 06 2023 - 00:40:33 EST


On 06.03.23 05:19, Bagas Sanjaya wrote:
> On Sun, Mar 05, 2023 at 02:04:44PM +0100, Thorsten Leemhuis wrote:
>> + * Create the build configuration for your kernel based on an existing
>> + configuration.
>> +
>> + If you already prepared such a '.config' file yourself, copy it to
>> + ~/linux/ and run ``make olddefconfig``.
>> +
>> + Use the same command, if your distribution or somebody else already tailored
>> + your running kernel to your or your hardware's needs: the make target
>> + 'olddefconfig' will then try to use that kernel's .config as base.
>> +
>> + Using this make target is fine for everybody else, too -- but you often can
>> + save a lot of time by using this command instead::
>> +
>> + yes "" | make localmodconfig
>> +
>> + This will try to pick your distribution's kernel as base, but then disable
>> + modules for any features apparently superfluous for your setup. This will
>> + reduce the compile time enormously, especially if you are running an
>> + universal kernel from a commodity Linux distribution.
>> +
>> + There is a catch: the make target 'localmodconfig' will disable kernel
>> + features you have not directly or indirectly through some program utilized
>> + since you booted the system. You can reduce or nearly eliminate that risk by
>> + using tricks outlined in the reference section; for quick testing purposes
>> + that risk is often negligible, but it is an aspect you want to keep in mind
>> + in case your kernel behaves oddly.
>
> If your distro config have ``CONFIG_IKCONFIG=y``, you can copy from
> procfs::
>
> zcat /proc/config.gz > .config

Localmodconfig afaics does that automatically and I'm pretty sure
olddefconfig does that, too (but I didn't check either). So no need to
explain this in the text afaics.

> If it isn't the case, you may want to enable the aforementioned config
> option.

That or put them in /boot/config-$(uname -r). But well, that is
something the provider of the running kernel needs to do, so it won't
help the reader if we mention it here.

Or do you think the guide should explain this to ensure people can
pickup their config from there again in case they deleted their build
artifacts? Hmmm. I currently tend to think that's not worth making the
text longer for, as at that point it might be better to restart from
scratch with a distro config anyway.

Ciao, Thorsten