[Gta04-owner] Reducing disk usage for 4.5 kernel install?
H. Nikolaus Schaller
hns at goldelico.com
Tue May 3 16:25:34 CEST 2016
Hi Neil,
> Am 03.05.2016 um 13:12 schrieb Neil Jerram <neil at ossau.homelinux.net>:
>
> On 23/04/16 10:04, Neil Jerram wrote:
>> Ah great, thanks. So, to be clear, you are recommending 4.5? [1] (Understanding that this is for experiments like mine and possibly not for full phone operation.)
>>
>> [1] http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/letux-4.5
>
> I've built letux-4.5 now; haven't yet tried to boot it.
>
> I notice, though, that it appears to require lots more disk space when installed on the GTA04, compared to 3.7 or 3.17. Specifically, the /lib/modules/`uname -r` tree is now about 200Mb, whereas for 3.7 or 3.17 it was about 16Mb.
Well, it is the result of a compromise between goals.
* one is that the Letux kernel shall support many different device (GTA04, BeagleBoard, BeagleBone, PandaBoard, OpenPandora, Pyra and more).
* another one is that there are a lot of peripheral drivers (e.g. for external USB devices) that can be loaded on demand - and therefore we configure for a driver module.
* and finally, the 3.7 kernel did configure many things into the uImage instead of a module. This makes the kernel boot faster, but is less flexible.
So the result is a big set of modules - where many are not loaded and just sitting around on the root file system in case you connect a compatible device through OTG for the first time in 2 years...
>
> Is there something I can do to reduce that? Perhaps some global stripping option? Or alternatively some big trimming of the CONFIG_* settings?
You can either reduce many CONFIG options. But it is difficult to maintain (because every second Linux -rc introduces/removes/changes some configs).
An alternative is to take the approach of the flash-nand script which tries to identify by lsmod / modprobe which module files have really been loaded and strips (well, does not copy) all others:
<http://git.goldelico.com/?p=gta04-rootfs.git;a=blob;f=config/root/flash-nand;h=be52b64a22f01237f62c4d874cd32245f48269c5;hb=6ea2ef256dcb0b98482022ce87d2b18e0498dab2#l23>
Another idea could be to define some rm /lib/modules/kernel/pattern*
Generally I think the best approach is that the letux_defconfig compiles as many modules as possible. And distributions copy only what they need. Lukas is following this approach for the latest Replicant experiments.
If you find a good solution for a general "strip-modules" script that can be run on the GTA04, please share!
Thanks,
Nikolaus
More information about the Gta04-owner
mailing list