i.MX515 Project
Add support of Efika MX devices to kexecbootin category Embedded
proposed by Yuri Bushmelev on 8th July 2010 (accepted on 1st September 2010)
Project Summary
Kexecboot itself is a C program able to scan the partitions on available devices, offering a graphical framebuffer menu and allowing user to select from which one to boot. Specifically, kexecboot creates the command line for kexec.
Typically kexecboot resides together with kexec in a small initramfs, embedded in a custom-tailored kernel compiled with support for initramfs and kexec system call. Both binaries are built static, linked against klibc to optimize size.
Flashed on NAND and launched as first kernel by the original bootloader, this solution gives following advantages:
- multi machine support (now tested on arm and x86/x86_64)
- zImage and uImage (for arm and sh) support
- easy customization: just add machine-specific workarounds (see Zaurus raw read of bootparams from NAND)
- small size: complete linux-kexecboot_2.6.x image (initramfs + kernel) is about 1Mb (less with lzma patches)
- easy boot choice: boot from SD/CF/NAND/... even if bootloader doesn't support it
- multiple fs detection: we support many filesystems e.g. ext2/3/4, jffs2, reiserfs, vfat and more (ubifs is work in progress)
- kernel upgrade: no need to flash the device (kernel is in /boot of removable media)
- rapid testing: different distributions can live in separate partitions on the same device
Thus, kexecboot is an interesting solution for embedded linux distributions, which can just rely on kexecboot whithout having to consider what the real bootloader can and cannot do.
About customization, initially the program has been developed for Sharp Zaurus PDA (armv5te). For the machines of that family there is specific code reading bootparams directly from NAND, circumventing the obsolete bootloader which is incompatible with modern 2.6.x kernels.
We are funded by CE Linux Forum this year. Thanks to this I can spend more hours to work on this project. Funded improvements are:
- Write user's and developer's guides.
- Extend architecture (MIPS) and filesystems (UBIFS) support.
- Improve debugging ability. We should allow users to have ability to look for debugging information without special hardware (serial cable e.g.).
- Implement text-mode UI. We have already patches against one of old releases. This can be used later to use kexecboot UI over serial line or telnet/ssh connection.
- Improve GUI. Make GUI more clean and eye-candy (fonts and icons).
- Add ability to use multiple kernels on same partition. Current implementation allow to use only one kernel per partition.
We are always looking for other devices to support. Efika MX Smartbook is very interested for us by following criteria:
- device is based on i.MX515 ARM SoC
- device have keyboard and relative big screen resolution
You will get following main advantages from this support:
- Ability for users to run multiple distributions from SSD/SD/USB storages.
- Ability for developers to easy kernel and distributions testing.
I'm lead developer of kexecboot at this moment. Feel free to ask me for any additional information.
Links
- Project page on LinuxToGo: http://projects.linuxtogo.org/projects/kexecboot
- Git web interface: http://git.linuxtogo.org/?p=groups/kexecboot/kexecboot.git
- Git clone: git clone git://git.linuxtogo.org/home/groups/kexecboot/kexecboot.git
Project Blog Entries
I'll add efikamx machine to my OpenEmbedded autobuilder
posted by Yuri Bushmelev on 31st October 2010
I've joined OE's testing initiative.
Every week OE's master branch is merged to branch 'testing-next'. Every week people are testing that branch buildability.
I'll test angstrom-2008.1 distro build for multiple machines, one of which is Efika MX. So, I hope this will improve Efika MX support quality in OpenEmbedded.
Next step should be proposed work. I'll test ability of kexec'ing on Efika MX with different kernels.
I'll present Efika MX Smarttop on Chaos Construction event
posted by Yuri Bushmelev on 12th August 2010
I'm going to Chaos Construction this year with my hardware: Sharp Zaurus SL-C1000/SL-6000L, Ben NanoNote and Efika MX Smarttop.
Chaos Constructions 2010 demo/lan/hack party is going to take place on 28 and 29 of August in St.Petersburg, Russia.
Site of event (in Russian): http://party10.cc.org.ru/
Exhibition page: http://party10.cc.org.ru/exhibit.php
posted by Yuri Bushmelev on 1st August 2010
26 July I've received Efika MX.
I've found hdmi-to-dvi cable and euro power cable.
Device was booted successfully into ubuntu 9.04 minimal.
Now I should install kexec-tools and try to kexec'ing some kernels.
P.S. I've written more in russian here: http://www.ul-lug.ru/node/50
posted by Yuri Bushmelev on 19th July 2010
After proposing this project I have a long interesting talk with Matt (Neko) on irc about kexecboot and Efika MX products. Main outcome was that kexecboot support isn't very useful on Efika MX because of Aura, which have possibility to do (at least part of) kexecboot's work too.
But working kexec give other goal to Efika MX products. Some products will be based on Chromium OS. This is good for ordinary user's ordinary tasks (read mail, news, look youtube, use google apps, etc) but may be insufficient for other users, which have other tasks (e.g. retouch some images in gimp or create a lot of formulas in TeX, etc). Having possibility to quick reboot into other distribution (e.g. Ubuntu) is very useful thing according to this.
So my proposal was transformed into "to make sure kexec works and test and test and test booting kernels on kexec" (с) Neko :)
My minimal proposal now is to do periodical tests of kexec on Efika MX with current kernel and report current status. But I hope I'll use board to test at least some parts of kexecboot too (FB UI functions, device scanning, etc).