Shrinking the Penguins or How Remy van Elst shrink our Debian images to just 177MB size!


Building Linux images is magic, we still learn … When we make the Linux images for Olinuxino we want to put the maximal functionality and include in everything we can think of so our customers do not have to worry to build custom kernels etc for different modules and USB sticks, unfortunately this comes to it’s price … huge files for download and write on the SD cards.

Remy van Elst set his goal how small he can shrink our images and he did remarkable job which blogged here.

Following what he did was quite educational at least for us!

For instance we never knew apt-lists contain 100MB of info which anyone can easily download with apt-get update instead to put in the SD card image 🙂 but you learn while you are live!

Great job Remy!

Now the small images lovers can download just 177MB basic image for LIME2.

We are taking notes and will make srink images for all our boards as alternative to the (we have everything fat) images we have now on our server for download!

10 Comments (+add yours?)

  1. kgolding
    Feb 06, 2015 @ 11:50:37

    +1 for having both fat and thin images. Can you still have all the hardware drivers in the slim images please?


  2. Christian Nobel
    Feb 06, 2015 @ 15:12:08

    Really great to see a small image for Olinuxino, great work, but I noticed this:

    “Removed a lot of kernel modules for things like WiMax, wireless, iscsi etc.”

    So my question is, as you have removed kernel modules, how do I for instance install WiFi, as I guess it is not just done by some apt-get?

    In general it could be really cool with some recipe for how to start with the minimal image, and then adding kernel modules, which not can not be implemented just with apt-get.


  3. Marc Coussement
    Feb 06, 2015 @ 15:49:33

    Great job and one step in the right direction but 177 Mbyte isn’t small it is big.
    A typical Windows CE is between 32 Mbyte to 48 Mbyte, it will give you about everything from Compact .NET framework to Chinese fonts, SD-card drivers, Ethernet connectivity, USB host and slave, GUI, explorer, touch screen, blue tooth… you name it. A small Windows CE is 11 Mbyte! Still a huge difference with Linux. One more advantage WinCE is real time!


    • chasx
      Feb 11, 2015 @ 18:35:11

      That’s not a fair comparison at all. A small Windows CE image is probably a customized version of the OS. Debian is not an operating system, Linux is and Debian is a distibution of software packages. Because a lot of packages are there as a default, the image grows. If you use buildroot or another customized image system you can run your own linux based device on 5MB or less, growing to gigabytes if you embed video’s or whatever.

      A better example would be OpenWRT. That is also package based and typically fits inside a router’s ROM.


      • SK
        Feb 12, 2015 @ 16:17:03

        Well, Linux is definitely not an OS! 🙂 It’s just the kernel. Then you put most of the stuff from GNU + the packages you mention and you get yourself a distribution. But yes, you can build a very small Linux distribution and the kernel itself (Linux) can be build with different things included in it. (not so technically speaking 🙂 )

  4. progmetalbg
    Feb 06, 2015 @ 16:13:20

    Tiny Core Linux is smaller


  5. John PItney
    Feb 06, 2015 @ 16:59:38

    There was an amazing QNX demo that came on a single 1.44MB bootable floppy. It had a GUI, networking stack, and lots of other features packed in.


  6. petelynch
    Feb 07, 2015 @ 18:52:13

    I think you can go too far with stripping stuff out of a distribution. Especially if that is stuff which a user would then have to download after installing the image. That’s a big problem for noob users and it also means that your SBC has to have an internet connection for at least part of the time.

    There’s also a fine line between small size and usability. If you’re making an image that will suit most people, then it’s important to have the stuff they will need or want: like media support, graphical interfaces, dev. tools and documentation.

    A better path would be to make these packages smaller, by using less bloated apps, more efficient compilers and smaller libraries.


  7. Shervin Emami
    Feb 08, 2015 @ 09:14:01

    Nice! A small image (including all drivers but not any of the Graphical system or apps) would be quite handy for the people that want to use Olinuxino as a headless device (such as for networked devices or mobile devices or for using just from a shell console) and so don’t need the display server & graphical desktop & graphical apps! But I do think you should keep all the drivers, since that will keep it still fairly easy to use.


  8. Thomas
    Feb 08, 2015 @ 18:05:17

    If one is interested in small and fully customizable Debian/Ubuntu images he should give Igor Pečovnik’s work a try. You can find ready-to-burn images here:

    And since his approach is a fully automated build system that is highly configurable you can simply start on a x86 Ubuntu 14.x installation with a simple script that pulls all sources via git, cross-compiles everything and builds the whole image in a chroot environment:

    This is not only a great opportunity to learn how to (let automagically) build a Debian system from scratch but also the chance to take the first steps with mainline kernel. It supports now Allwinner A10/A20 mostly, I made first tests with a few boards and it looks really promising:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: