threewater, a Chinese developer, has just posted a very interesting demo on linux-sunxi mailing list showing a device based on AllWinner A10 boot linux within 0.85s, and if you add a Qt app, the total time is just about 1.2s.
This appears to be a custom hardware (EM6000), but we do know it’s based on AllWinner A10, comes with 512 MB RAM, and 4GB NAND Flash. On the software side, the device runs kernel 3.4 from linux-sunxi, with a customized version of uboot, a squashfs rootfs, and a Qt 4.7.4 app showing a gauge. Both the rootfs (7MB) and the kernel (2MB) have been compressed with LZO. All that boots from NAND flash for optimal speed.
The 1.2 second time includes kernel + rootfs + app time, and the total time is a bit longer, but this is still impressive. Here’s the boot log:
1 2 3 4 5 6 7 8 9 10 |
[1.690000 1.690000] U-Boot SPL 2013.01-05984-g2120a27-dirty (Apr 17 2013 - 14:22:02) [0.009000 0.009000] Board: EM6000 [0.012000 0.003000] DRAM: 512MB [1.014000 1.002000] init startup v1.1 [1.016000 0.002000] mount usr data error 2 [1.158000 0.142000] Could not read calibration: "/data/etc/pointercal" [1.166000 0.008000] Couldnt open tslib config file: No such file or directory [1.175000 0.009000] QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or directory' [1.187000 0.012000] Please check your tslib installation! [1.200000 0.013000] qt show |
If you just boot to the command line, it’s even faster:
1 2 3 4 5 6 7 |
[1.770000 1.770000] U-Boot SPL 2013.01-g8a69ff9-dirty (Apr 22 2013 - 13:05:36) [0.007000 0.007000] Board: EM6000 [0.009000 0.002000] DRAM: 512MB [0.810000 0.801000] /etc/init.d/rcS: line 6: /data/run.sh: not found [0.835000 0.025000] [0.843000 0.008000] login[42]: root login on 'ttyS0' [0.851000 0.008000] [root@(none) /root]# |
This is not the first time, people have implemented ultra fast boot on ARM hardware, an example is a ~400ms boot on the Beagleboard, but it’s still nice to see what can be achieved thanks to developers’ communities such as linux-sunxi.
The complete details and/or binary files are not available at this time, but if you are interested in Linux fast boot, you may considering checking Adeneo Embedded presentation at ELCE 2012 who did something very similar on Freescale i.MX51 & i.MX 6Q hardware.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
That’s great, but it’s almost certainly being achieved at the cost of flexibility. It sounds like everything is in the compressed rootfs. So no mounting of a r/w filesystem, no starting of daemons, no handling of dynamic devices (i.e udev). Is it even bringing up a network interface?
So, perfect for an “appliance”, like an industrial control panel. But don’t expect your desktop or media player to boot this fast.
correct me if I’m wrong but from the logs is seen uboot to launch their Qt app, so actually the uboot boots in less 1 second not linux
@Tsvetan
They said they are using kernel 3.4 + squash rootfs. They must have disabled the kernel log to optimize the boot time.
In the second log you can see “/etc/init.d/rcS” which is part of the rootfs.
You’ll notice there’s about 1 second between:
[0.012000 0.003000] DRAM: 512MB
and
[1.014000 1.002000] init startup v1.1
I assume during this time the kernel is decompressed, and booted.
nothing new here, we do this on omap4 and most of the platform for years (5)
It’s amazing how it take other years to do the same
on freescale we boot in < 350ms
j24 can u plz help I really want to start this task on ti am3517 I want some guidance how to do this.Already I have booted on this board but i want to do it in minimum time.
Great boot time!
How did you do this optimization?