Thanks to the wonderful information and knowledge of select user here I have been working on creating a dynamic multi-boot menu for my Archos 101 G9 Turbo 8gb Flash and thought I would contribute something back. I would still consider this to be in alpha/beta stage but basic functionality is working.
I am currently using Archos's built in menu system as I like the looks a little better than fbmenu and being a dynamic list it would be hard to specify a default image with a timeout so I currently do not need that functionality. (I may switch over to fbmenu at a later time)
The menu will look in the root of the internal storage /mnt/storage/ and /data/local/ for any files with a ext3, ext4 or squashfs extension and create a list of the images it finds. The menu currently only finds images with these extensions and the extension tells the menu what file system that image is using.
Special thanks to arctablet for creating an install tutorial.
http://www.arctablet.com/blog/archos-tablet/archos-g9-multiboot-sde-required/
Working:
Dynamic menu creation based on images in a specified folder (currently /mnt/storage/ and /data/local/)
Loading selected image as long as the kernel is compatible
Manual clearing of dalvik cache
To Do:
Clear dalvik-cache when switching images (may need to create config file to track last image)
Flashing of new initramfs and zImage from storage. (Currently looks in /mnt/storage/toflash/ but kernel is not updating)
Add option to flash correct kernel before loading an image (for switching between Android and Linux distros)
Built in system to determine an image's file system type without using extensions.
Bugs:
None that I am aware of
Updates:
V0.3a
V0.3
V0.2
I am currently using the stock kernel with a modified initramfs.cpio.lzo which can be download from here
dmenu-0.3a.zip (4.0.6)(4shared)
dmenu-0.3.zip (4.0.5)(4shared)
Screenshots


Extra Info For those not failure with how the zImage and initramfs.cpio.lzo work
The zImage file is the actual kernel code that gets loaded during the boot process and the initramfs.cpio.lzo is a basic file system and init script that gets executed during start up. This specifies what image file should get loaded such as the stock Android image or another custom one. To make the multi boot menu I only modified the init script in the initramfs and and I left the zImage untouched. Since the initramfs is able to select multiple images you can actually flash it with most kernel files and it should work however you are still limited to booting what that kernel file is capable of running.
The zImage files included in the zips above are the stock kernels so they will only boot Android images. In the Ubuntu thread they are using a custom zImage file that is capable of booting both Android and Ubuntu by basically just using my initramfs with their custom zImage.
I am currently using Archos's built in menu system as I like the looks a little better than fbmenu and being a dynamic list it would be hard to specify a default image with a timeout so I currently do not need that functionality. (I may switch over to fbmenu at a later time)
The menu will look in the root of the internal storage /mnt/storage/ and /data/local/ for any files with a ext3, ext4 or squashfs extension and create a list of the images it finds. The menu currently only finds images with these extensions and the extension tells the menu what file system that image is using.
Special thanks to arctablet for creating an install tutorial.
http://www.arctablet.com/blog/archos-tablet/archos-g9-multiboot-sde-required/
Working:
Dynamic menu creation based on images in a specified folder (currently /mnt/storage/ and /data/local/)
Loading selected image as long as the kernel is compatible
Manual clearing of dalvik cache
To Do:
Clear dalvik-cache when switching images (may need to create config file to track last image)
Flashing of new initramfs and zImage from storage. (Currently looks in /mnt/storage/toflash/ but kernel is not updating)
Add option to flash correct kernel before loading an image (for switching between Android and Linux distros)
Built in system to determine an image's file system type without using extensions.
Bugs:
None that I am aware of
Updates:
V0.3a
- Added zip with 4.0.6 kernel
V0.3
- Fixed 10 image limit
- Tracking last booted image with * in menu (saved to /data/local/bmimage)
V0.2
- Added stock firmware to list
- Added /data/local/ to image search directory
- Added option to clear dalvik cache
- (fixed) Menu finds files with extension in the middle of the name such as archos.ext4.backup
- Changed menu color to android green
I am currently using the stock kernel with a modified initramfs.cpio.lzo which can be download from here
dmenu-0.3a.zip (4.0.6)(4shared)
dmenu-0.3.zip (4.0.5)(4shared)
Screenshots


Extra Info For those not failure with how the zImage and initramfs.cpio.lzo work
The zImage file is the actual kernel code that gets loaded during the boot process and the initramfs.cpio.lzo is a basic file system and init script that gets executed during start up. This specifies what image file should get loaded such as the stock Android image or another custom one. To make the multi boot menu I only modified the init script in the initramfs and and I left the zImage untouched. Since the initramfs is able to select multiple images you can actually flash it with most kernel files and it should work however you are still limited to booting what that kernel file is capable of running.
The zImage files included in the zips above are the stock kernels so they will only boot Android images. In the Ubuntu thread they are using a custom zImage file that is capable of booting both Android and Ubuntu by basically just using my initramfs with their custom zImage.
Last edited: