The french company OpenWide organized a contest from August 2011 to end of December 2011. The goal was to boot linux as fast as possible, get an IP address via DHCP and display it on screen with a font stored on a SD card. All that with a device named "mini2440".
I won the "jury's prize" with a time of 1.4s. I arrived third. The first time is 1.233s, second 1.311s. I guess I got the prize because I worked a bit on look and feel, with some animations. There was even some audio with the buzzer.
Here are my releases. The contest was in two phases: first phase with Qemu, second phase with a real mini2440 that OpenWide gave to the most promising entries.
Four entries were submitted to the final in my category ("old gnus"). Three entries in the students' category. I don't know how much submissions for the first phase but less than fifteen in each category I think. I also think more than seven mini2440 were distributed after the first phase (some people didn't release something for the second phase) (I think).
For the second phase (real mini2440):
For the first phase (on Qemu):
Code from other participants:
Here are the official times of the final, as published by the organizers.
And here is a video of my device booting. It takes several seconds for the IP to arrive to the mini2440 because the computer it is connected to has issues (is it because of this wonderful Ubuntu? or a bug in the atl1c ethernet driver? I don't know...).
Ah, I tried to record with a program called "cheese" but that didn't work... so I used the crappy cellphone of my partner in life. Then I tried a program called "pitivi" to synchronize audio and video but that didn't work. I ended up using ffmpeg (thanks to Fabrice Bellard and team for this piece of perfection). Who is guilty there? A little voice in me says it's Ubuntu, but I won't let that little voice speak out. I mean... Ubuntu... is... good... no? (Well, pitivi seems defective by design as well.)
The whole thing (bootloader, kernel, filesystem, audio, images) fits into 2MB, uncompressed, kernel 188.8.131.52, so it is stored in the NOR memory. Audio is played with the buzzer. I tried to put voice but words are not recognizable. So I played a little tune with an electric guitar plugged into a program called guitarix instead (which I had to hack for it to work with my setup). The buzzer is not supposed to play music I think...
I didn't know that the kernel could do DHCP so I hacked busybox. Maybe that's where I lost 200ms... (I don't complain, I just try to understand.)
Anyway, that was fun. A bit long, but fun.
Wed, 28 Sep 2011 14:00:09 +0200
Last update: Fri, 03 Feb 2012 23:47:29 +0100