Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[TABLET Z COMPETITION ENTRY]Multiboot solution [Updated 31/07/2013]

OP rayman

22nd June 2013, 06:27 PM   |  #1  
OP Recognized Developer
Thanks Meter: 1,091
 
248 posts
Join Date:Joined: May 2008
Donate to Me
More
About:
The end-goal is to allow a graphical menu (similar to grub on PC's) that lets you boot different kernels (and ROMs - requires the ROM's to support it) from various media. This includes on-flash, SD based and USB but could theoretically also include network booting as well.

Method:
My current plan is to base the solution on the kexec-hardboot patches my mkasick. I've previously ported those patches to ASUS TF201 and my changes have then been adapted to Nexus 7 and is being used quite extensively.

At present time there is one big disadvantage to this method: It puts requirements on the target kernel. One of my goals in this project is to remove those requirements, so it will also work with stock unmodified kernels.

As far as the graphical part is concerned, the original plan was an extended KxecBoot(.org) or MultiBoot (based on TWRP).
After investigating the available solutions, I decided that I'd (shock-horror) implement my own. The current solutions seem overcomplicated to use and not exactly pretty to look at.

My solution, dubbed Hydra, is a simple - true-and-tried - grid of icons. It's based on recovery's minui graphics and the grid automatically aligns based on how many boot images are present. At present it is limited to 10 boot images, but this will be changed later.
The graphics rendering is optimized and will be improved further, possibly allowing for simple animations and such - but lets leave that for a v2

See screenshots in second post.
It works by reading a simple boot.ini, specifying name, icon, boot.img or raw kernel + ramdisk + cmdline. The device-specific commandline arguments required to boot the kernel will all features are automatically appended to the given cmdline, similarly to how the bootloader does it.
It is going to support multiple boot.ini's which are then merged to give the final set of images. This allows storing a boot.ini on e.g. microsd or usb storage and automatically get a suitable boot icon.

Source and images will come soon, there are a few minor issues that needs to be finished first.

Progress:
  • Tablet arrived!
  • 06/07/13: Kexec patches tested successfully! Kexec booting is a go!
  • 31/07/13: Multiboot solution is nearly done

Links:
Stock kernel with patches
CM Kernel with patches
Kexec tools with hardboot patches

Credits:
Mike Kasick for thinking up the original kexec hardboot patches
Last edited by rayman; 31st July 2013 at 09:01 PM.
The Following 8 Users Say Thank You to rayman For This Useful Post: [ View ]
22nd June 2013, 06:27 PM   |  #2  
OP Recognized Developer
Thanks Meter: 1,091
 
248 posts
Join Date:Joined: May 2008
Donate to Me
More
Screenshots:
Actual example of boot images loaded from a boot.ini:


Test with 5 icons


Test with 10 icons:
Attached Thumbnails
Click image for larger version

Name:	hydra_debian.jpg
Views:	3571
Size:	13.8 KB
ID:	2164912   Click image for larger version

Name:	hydra5.jpg
Views:	3568
Size:	16.4 KB
ID:	2164913   Click image for larger version

Name:	hydra16.jpg
Views:	3564
Size:	26.8 KB
ID:	2164914  
Last edited by rayman; 4th August 2013 at 09:34 PM.
The Following 3 Users Say Thank You to rayman For This Useful Post: [ View ]
22nd June 2013, 06:28 PM   |  #3  
OP Recognized Developer
Thanks Meter: 1,091
 
248 posts
Join Date:Joined: May 2008
Donate to Me
More
Frequently Asked Questions
FAQ:

How does it work?
In essence, it works by replacing kernel/bootimage in RAM while booting.

What does it allow booting from?
It allows booting from any media the linux kernel can access on the device. This includes internal flash (any partition), external SD card and USB Storage. In theory, it can also be extended to support booting over network

Are there any limitations?
No! Or yes. Due to the way android images mount filesystems, the image needs to be modified in order to boot a full system from e.g. SD. For regular linux this is not the case, because they support the 'root' commandline argument and loads filesystem information from that root.

Will it replace e.g. TWRP or CWM
Yes and no. It will replace the primary boot image of the tablet. This means that whenever the tablet boot, the multiboot solution runs. It can be setup to automatically boot an image after a configurable timeout, e.g. a few seconds usually and as such will add some seconds to the total bootup time. But really, how often do you turn off your tablet?
I'm looking at possibly including a CWM or TWRP image in the flashed image, to always have a backup recovery at hand.
Last edited by rayman; 4th August 2013 at 01:31 PM.
The Following 2 Users Say Thank You to rayman For This Useful Post: [ View ]
22nd June 2013, 06:28 PM   |  #4  
OP Recognized Developer
Thanks Meter: 1,091
 
248 posts
Join Date:Joined: May 2008
Donate to Me
More
Reserved 3
The Following 2 Users Say Thank You to rayman For This Useful Post: [ View ]
22nd June 2013, 10:10 PM   |  #5  
DooMLoRD's Avatar
Recognized Developer
Flag Noida
Thanks Meter: 39,006
 
13,124 posts
Join Date:Joined: Jul 2010
this one is interesting...

if u can get the kexec to work getting the menu to work is easy... i had created someting similar WAY BACK for the Xperia X10:

The Following 2 Users Say Thank You to DooMLoRD For This Useful Post: [ View ]
25th June 2013, 02:50 AM   |  #6  
juanyunis's Avatar
Senior Member
Flag Barranquilla
Thanks Meter: 33
 
121 posts
Join Date:Joined: Dec 2010
More
Indeed, having a multiple boot options is something amazing, imaging having ubuntu touch and android running on 1 single device.
25th June 2013, 06:51 AM   |  #7  
theZest's Avatar
Senior Member
Flag Vladivostok
Thanks Meter: 60
 
243 posts
Join Date:Joined: Oct 2010
More
Please take a look on Boot Menu Manager for Moto RAZR XT910. I guess it would help you somehow. At least for overall concept.

Carved in this thread with my RAZR HD
Last edited by theZest; 5th July 2013 at 05:04 AM.
26th June 2013, 02:15 AM   |  #8  
Senior Member
Thanks Meter: 554
 
547 posts
Join Date:Joined: Nov 2011
i would like to see the multiboot option b used. i have a nexus 7 and love multiboot. i have like 5 roms in my list. i also have a droid razr and have tried BMM as mentioned but still think multiboot is the way to go. thanks for this project Rayman can't wait to see it evolve!
i get my tablet tmrw can't wait
3rd July 2013, 06:39 PM   |  #9  
OP Recognized Developer
Thanks Meter: 1,091
 
248 posts
Join Date:Joined: May 2008
Donate to Me
More
Good news! Tablet is here and the work can begin
Once I've tested my changes, I'll post the kernel changes required for initial version.
The Following User Says Thank You to rayman For This Useful Post: [ View ]
3rd July 2013, 07:26 PM   |  #10  
Senior Member
Thanks Meter: 554
 
547 posts
Join Date:Joined: Nov 2011
YES!

Post Reply Subscribe to Thread

Tags
competetion, multiboot, tablet z, xda tablet z competition
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes