[yocto] I hate busybox!

Trevor Woerner twoerner at gmail.com
Tue Sep 15 11:22:23 PDT 2015


On 09/15/15 13:01, Bob Cochran wrote:
> On 09/15/2015 12:38 PM, Romain Perier wrote:
>> Hi all,
>>
>> I disagree,
>> Unfortunately some embedded devices in the industry are not like most
>> of the tablets and smartphones in the market (no quad or octo cores
>> with few GB of ram... and few GB of flash...)   ;)  .For example,
>> these days, at work, we're designing a board with the SoC zynq-7000
>> and a quad-spi NOR flash. The NOR only has 16MB... now remove ~2Mb for
>> u-boot... 4Mb for the bistream (fpga)... I only have 10MB for my
>> kernel and my rootfs.
>>
>> Embedded projects like uclibc, musl or busybox are very appreciated in
>> cases like this one :)
>>
>> I am not saying that it is a great thing to have busybox built and
>> enabled by default, but that is a great thing to be able to use it.
>> In fact, it strongly depends on your needs for the target...
>
> Agreed.
>
> I just tack on IMAGE_INSTALL_append = " tar findutils tree etc..." in
> my image recipe when I have the rootfs space, and I want the full
> tool. The build system seems to do a nice job of creating the links
> properly.

This is merely an example of the exception being taken for the norm/default.

You'd be hard-pressed to find many boards that don't have an SD or
microSD slot for your bootloader, kernel, and filesystem image. And
you'd be hard-pressed to buy an SD/microSD card less than 8GB now-a-days.

Even amongst boards that have on-board flash, most of them have 1GB or
more with 4GB being quite common:

   
https://en.wikipedia.org/wiki/Comparison_of_single-board_computers#I.2FO_interfaces_and_ports

In any case, choice in deciding what goes into an image is good. I
simply think that, now-a-days, basing all images on busybox (and having
the option to swap some out) is rather quaint. The problem is: your
image doesn't have "ls", it has "busybox's ls". And your image doesn't
have "ps", it has "busybox's ps"... and those aren't the same. In most
cases I want the "real" utilities (the ones I've spent that last 20
years using) not some crippled version.

Ideally the basic OE images would be based on the real utilities (i.e.
the images that get built by default and tested by the Yocto Project's
QA machinery), and there would be a core-image-minimal-busybox (and
core-image-minimal-toybox) provided in those vanishingly rare cases
where they might be needed. Instead of the current situation where
busybox is the default, and some images swap out some of its components
for the real ones.



More information about the yocto mailing list