[poky] Minimal images: kernel config

Mark Hatle mark.hatle at windriver.com
Fri Feb 18 10:52:08 PST 2011


On 2/18/11 12:25 PM, Richard Purdie wrote:
> On Fri, 2011-02-18 at 09:52 -0800, Darren Hart wrote:
>> I've been getting more and more questions regarding flash footprint, 
>> memory footprint, and boot time. All of these fall under the "minimal 
>> image" heading in my head.
>>
>> Currently, poky-image-minimal is a simple subset of poky-image-sato. It 
>> uses busybox, but is still dynamically linked and uses the same 
>> somewhat-generic kernel build. By somewhat-generic I mean we have named 
>> features that often cover more drivers than are stricly necessary for a 
>> given board (usb-net comes to mind). I'd like to see minimal become a 
>> truly minimal image from both the userspace and kernel side point of view.
>>
>> Here's my take on this. From userspace this means uclibc and a staticly 
>> linked busybox. From the kernel this means a static build (no modules) 
>> with nothing more than is required for the board's built-in peripherals 
>> to function, with the possible exception of something like usb-storage. 
>> I'd like to see a < 10M flash size and a <8M memory footprint.
>>
>> Thoughts on this direction?
> 
> That sounds more like a "micro" rather than the current minimal. Minimal
> is designed to be extended by the user, what you describe above is a lot
> harder to extend.
> 
> So my take is that minimal is ok as it is stands from the dynamic linked
> busybox perspective and static linking doesn't buy you what you might
> expect it to. mklibs will probably have just as much effect.
> 
> For kernel modules, I suspect even for a micro, you still want them
> since you can then start booting the kernel faster and only have what
> you need in memory (say USB peripherals).
> 
> I'm not against a micro type target but its smaller that what we've been
> aiming for an introduces a new element into the Yocto test matrix.
> 
> Having said all that, I expect there are ways to reduce minimal further
> than it is today as its not something anyone has looked hard at so
> far...

The keys to reducing minimal further is eglibc configurability -- which we do
not yet have implemented, and use of mklibs.  Shared memory will likely be both
smaller disk and memory footprint then static binaries in this configuration.
(If not, it will be very close...)

The size of the kernel and modules is also a factor -- but as Richard mentioned,
it's fairly typical to have a lightly configured kernel as the boot kernel and
then load a lot of modules once the system comes alive.

My goal for a busybox / glibc based system is around 8 MB of disk usage... This
should be easily achievable when eglibc is able to be configured, mklibs is run
and a reasonable set of modules is available.

--Mark

> Cheers,
> 
> Richard
> 
> 
> 
> _______________________________________________
> poky mailing list
> poky at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/poky




More information about the poky mailing list