[Dev] Kboot release (Stable), boot multiple kernel/os

Search This thread

alephzain

Senior Member
Sep 29, 2010
117
2,822
Hi,

Here a release of kboot.
Kboot permit to boot multiple os with different kernel.

It's based on a buildroot environment.
The source to make your own kboot filesystem are available here
The kernel source are available here

You can download the install archive :

ARCHIVE VERSIONS
  • 0.0. Unstable release. Freeze bug. Install release ARCHIVE (Obsolete)
  • 0.1. Fix freeze. Python bytecode generation (pyc files) is naturally not friend with squashfs. Install release ARCHIVE (Obsolete)
  • 0.2. STABLE Release. Display timeout, migration from squashfs to initramfs. Install release ARCHIVE
The archive looks like :
  • zImage and initramfs.cpio.gz to flash in SDE menu
  • a directory kboot which contain:
    • conf directory : configuration file
    • os directory : os to boot
    • images directory : background menu image

Installation

  1. Kboot directory
    Copy the kboot directory on your archos in /mnt/storage/, you should have this path /mnt/storage/kboot. The path should be exactly the same otherwise kboot will not be launched
  2. Flash zImage and initramfs.cpio.gz
    Follow this link to setup SDE on your archos http://xdaforums.com/showthread.php?t=930197
  3. After Reboot
    You should have the following screen. Note: after installing Kboot the device permanently reboot in Kboot.



    The main menu will display the os put in os directory (see in Configuration OS boot menu to see how to include your os), advanced menu and halt.
Boot menu
  1. OS boot menu
    I have tried to make things simple. To add an OS, all you need is to create a directory in /mnt/storage/kboot/os/ and put in this newly created directory the files zImage and initramfs.cpio.gz.
    Important, the name should be exactly zImage and initramfs.cpio.gz, if one file is missing or misnamed the menu item don't appear
    For example, the menu above have the following content in /mnt/storage/kboot/os :
    Code:
    /mnt/storage/kboot/os/Android Froyo:
    drwxrwxrwx    2 2000     2000         4096 Feb 27 23:42 .
    drwxrwxrwx    5 2000     2000         4096 Feb 28 15:02 ..
    -rw-rw-rw-    1 2000     2000       726520 Feb 27 23:39 initramfs.cpio.gz
    -rw-rw-rw-    1 2000     2000      2564460 Feb 27 23:39 zImage
    
    /mnt/storage/kboot/os/Android Honeycomb:
    drwxrwxrwx    2 2000     2000         4096 Feb 27 16:46 .
    drwxrwxrwx    5 2000     2000         4096 Feb 28 15:02 ..
    -rw-rw-rw-    1 2000     2000            0 Feb 27 13:42 initramfs.cpio.gz
    -rw-rw-rw-    1 2000     2000            0 Feb 27 13:42 zImage
    
    /mnt/storage/kboot/os/UrukDroid 1.6:
    drwxrwxrwx    2 2000     2000         4096 Feb 28 15:03 .
    drwxrwxrwx    5 2000     2000         4096 Feb 28 15:02 ..
    -rw-rw-rw-    1 2000     2000      2874800 Jan  3 19:41 initramfs.cpio.gz
    -rw-rw-rw-    1 2000     2000      2302252 Jan  3 19:26 zImage
    Note : for specific kernel you can add a file named cmdline containing kernel parameters
  2. Advanced boot menu
    • Boot init : boot into android, if android kernel was uninstalled, this item didn't appear
    • Boot recovery : boot into recovery

    • Soft boot : For details about omap soft reboot see the discussion here

Configuration
There is a configuration file in kboot/conf directory named config.ini. This file is divided into 3 section
  • init
    • telnet : 1 to enable telnet, 0 to disable
    • usbip : set the ip address of usb ethernet interface
    Code:
    [init]
    telnet = 1
    usbip = 192.168.10.1
  • kboot
    • last_selection : enable (1) or disable (0) the boot by default of the last selectioned entry after a configured timeout
    • last_selection_timeout : timeout in second
    • softboot : enable or disable softboot menu
    • title_font_size : set the title font size
    • menu_font_size : set the menu font size
    • title_color : title color in r,g,b format
    • menu_item_color : menu unselected color in r,g,b format
    • menu_item_selected_color : menu selected color in r,g,b format
    Code:
    [kboot]
    # boot last selection if no key pressed after 30 seconds
    last_selection = 1
    last_selection_timeout = 30
    # enable soft boot menu (bootloader dev only)
    softboot = 1
    
    # some tuning
    title_font_size = 36
    menu_font_size = 32
    # change the color, R,G,B format
    title_color = 255,255,255
    menu_item_color = 92,97,98
    menu_item_selected_color = 0,0,255
  • softboot
    • item<n> : the boot sequence wanted
    Code:
    [softboot]
    # put a list of items to display in Soft boot menu
    # item<n> = sequence
    item1 = uart,usb,mmc1,mmc2
    item2 = uart,usb
    item3 = mmc1,mmc2
  • background image
    To customize the background image, just replace the file kboot/images/bkg.png with your own and adapt if necessary the size and the font color.
BUGS
Feedbacks are welcome ;)
 
Last edited:

fzelle

Senior Member
Mar 19, 2006
1,009
143
Unfortunately it's not working on the A70S, as we only have 800x480 and therefor need a diff picture.
 

MarsCarmen

Member
Aug 11, 2010
11
0
Shenyang
It seems to be good.I have tested it on my A101 and it can boot both openaos and urukdroid.
:DThanks.;)
EDIT:Sorry, Urukdroid cannot boot.It stay at the boot animationan and always show that.
 
Last edited:

alephzain

Senior Member
Sep 29, 2010
117
2,822
Unfortunately it's not working on the A70S, as we only have 800x480 and therefor need a diff picture.

As an early release I didn't take the time to put the different resolution. The background image have a 1500x1200 resolution, so on 101 it didn't display right too. However kboot adapt resolution for corresponding board. kboot didn't boot on 70s or display wrong the background image ?

EDIT:Sorry, Urukdroid cannot boot.It stay at the boot animationan and always show that.

I have to test urukdroid on mine.
 

fzelle

Senior Member
Mar 19, 2006
1,009
143
The menu is not readable because the resolution adaption is not doing what it should do.
 

Attachments

  • kboot.jpg
    kboot.jpg
    15.9 KB · Views: 584

alephzain

Senior Member
Sep 29, 2010
117
2,822
The menu is not readable because the resolution adaption is not doing what it should do.

I have uploaded a new archive here.
Replace rootfs.squashfs with the new one. Fixed : resolution was wrong for 70S and 70H*.
The zImage in new archive should be flashed, it seems to fix the random freeze.
 

MarsCarmen

Member
Aug 11, 2010
11
0
Shenyang
EDIT:Sorry, Urukdroid cannot boot.It stay at the boot animationan and always show that.
I have to say sorry again that Kboot can boot Urukdroid properly.:)It was because I copied my backup file to my archos by using MY PC.That is why I cannot boot urukdroid.Maybe I didn't find the real cause.:rolleyes: I'm now using Kboot to boot Urukdroid and Openaos.:D
Really very well!!;)
Sorry For My Bad English:eek:
 

fzelle

Senior Member
Mar 19, 2006
1,009
143
@alephzain:
Copied the whole kboot dir and flashed the new initrams and zimage.
Looks still as before.
 

alephzain

Senior Member
Sep 29, 2010
117
2,822
@alephzain:
Copied the whole kboot dir and flashed the new initrams and zimage.
Looks still as before.

:confused:. Kernel natively support usb gadget ethernet, when kboot is launched a telnetd is started, an interface usb0 is configured with ip address 192.168.10.1.
if you are on linux it should automatically detect this and on your pc an ifconfig let appear usb0 interface. On your pc type :
Code:
ifconfig usb0 192.168.10.2 netmask 255.255.255.0 up
telnet -l root 192.168.10.1
.

If you can paste a ps output, to see if it detect you board correctly.
 

fzelle

Senior Member
Mar 19, 2006
1,009
143
Found a Live Linux to use in a vm.

ps output starts with :
{init} /bin/sh /init A70S 07 /dev/mmcblk1p1 /dev/mmcblk0p1
 

wdl1908

Senior Member
Dec 18, 2010
380
156
Its fixed now :). Replace rootfs by this one

Please adapt the first post also so that future users have the correct files.

Maybe add a version number....

---------- Post added at 04:27 PM ---------- Previous post was at 04:12 PM ----------

This may be a stupid question but why do you need a squashed fs that contains (when unsquashed) about 30Mb on files including python?

it should be possible to trim that down and put all the scripts and support libs in the initramfs so that you only need to flash the kernel and initramfs and nothing else.
 
Last edited:

fzelle

Senior Member
Mar 19, 2006
1,009
143
Working now.
If now someone could come with the possibility for booting older stock FW,
would be great.
 

wdl1908

Senior Member
Dec 18, 2010
380
156
Working now.
If now someone could come with the possibility for booting older stock FW,
would be great.

Not really possible because the stock firmware (initramfs) always uses the same location for the root file system.

You could do it but it needs some changes to the initramfs that is placed in the dirs.
 

alephzain

Senior Member
Sep 29, 2010
117
2,822
This may be a stupid question but why do you need a squashed fs that contains (when unsquashed) about 30Mb on files including python?

it should be possible to trim that down and put all the scripts and support libs in the initramfs so that you only need to flash the kernel and initramfs and nothing else.

Files on first post have been updated, but you're right a better presentation to avoid confusion is necessary.

Simply because I use python (pygame which use sdl) to code Kboot. Python lib dir is about 13M ... . A minimal filesystem (compressed initramfs) for kboot work is about 8M + ~2M for the kernel give 10M, and it's too big to flash in SDE max 8M. But if i can optimize the size ... I will do
 
  • Like
Reactions: wdl1908

divx118

Senior Member
Dec 20, 2009
343
198
alephzain thanks for the sources on gitorious, I hope I have some time in the weekend to try it out :)

divx118
 

fzelle

Senior Member
Mar 19, 2006
1,009
143
@divx118:
And could you then make a initramfs.cpio.gz that direktly boots into CM7?
 

FrEcP

Senior Member
Jul 29, 2006
369
72
Hi,
im just about testing...

But sadly I can't get it to work.

Each time the menu starts up i can navigate nicely though the menues.
But whenever I select an entry - noting happens
After that I can still navigate ONCE (up or down) to the next entry and then the device freezes.

It doesn't matter wich entry i select as it seems. I tested Boot init, and my custom entries (UrukDroid and BullRC) yet. But all behave the same.

Any ideas ?

Btw: I tested it with the acutal squashfs and the one packed in the zip (even they seemed to be the same in size)


EDIT:
SOLUTION: I had usb cable attached (since flash) and that made it freeze - juts removed the cable and all is fine

Thanks and gr8 work - was looking for this since ages ;)
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 7
    Hi,

    Here a release of kboot.
    Kboot permit to boot multiple os with different kernel.

    It's based on a buildroot environment.
    The source to make your own kboot filesystem are available here
    The kernel source are available here

    You can download the install archive :

    ARCHIVE VERSIONS
    • 0.0. Unstable release. Freeze bug. Install release ARCHIVE (Obsolete)
    • 0.1. Fix freeze. Python bytecode generation (pyc files) is naturally not friend with squashfs. Install release ARCHIVE (Obsolete)
    • 0.2. STABLE Release. Display timeout, migration from squashfs to initramfs. Install release ARCHIVE
    The archive looks like :
    • zImage and initramfs.cpio.gz to flash in SDE menu
    • a directory kboot which contain:
      • conf directory : configuration file
      • os directory : os to boot
      • images directory : background menu image

    Installation

    1. Kboot directory
      Copy the kboot directory on your archos in /mnt/storage/, you should have this path /mnt/storage/kboot. The path should be exactly the same otherwise kboot will not be launched
    2. Flash zImage and initramfs.cpio.gz
      Follow this link to setup SDE on your archos http://xdaforums.com/showthread.php?t=930197
    3. After Reboot
      You should have the following screen. Note: after installing Kboot the device permanently reboot in Kboot.



      The main menu will display the os put in os directory (see in Configuration OS boot menu to see how to include your os), advanced menu and halt.
    Boot menu
    1. OS boot menu
      I have tried to make things simple. To add an OS, all you need is to create a directory in /mnt/storage/kboot/os/ and put in this newly created directory the files zImage and initramfs.cpio.gz.
      Important, the name should be exactly zImage and initramfs.cpio.gz, if one file is missing or misnamed the menu item don't appear
      For example, the menu above have the following content in /mnt/storage/kboot/os :
      Code:
      /mnt/storage/kboot/os/Android Froyo:
      drwxrwxrwx    2 2000     2000         4096 Feb 27 23:42 .
      drwxrwxrwx    5 2000     2000         4096 Feb 28 15:02 ..
      -rw-rw-rw-    1 2000     2000       726520 Feb 27 23:39 initramfs.cpio.gz
      -rw-rw-rw-    1 2000     2000      2564460 Feb 27 23:39 zImage
      
      /mnt/storage/kboot/os/Android Honeycomb:
      drwxrwxrwx    2 2000     2000         4096 Feb 27 16:46 .
      drwxrwxrwx    5 2000     2000         4096 Feb 28 15:02 ..
      -rw-rw-rw-    1 2000     2000            0 Feb 27 13:42 initramfs.cpio.gz
      -rw-rw-rw-    1 2000     2000            0 Feb 27 13:42 zImage
      
      /mnt/storage/kboot/os/UrukDroid 1.6:
      drwxrwxrwx    2 2000     2000         4096 Feb 28 15:03 .
      drwxrwxrwx    5 2000     2000         4096 Feb 28 15:02 ..
      -rw-rw-rw-    1 2000     2000      2874800 Jan  3 19:41 initramfs.cpio.gz
      -rw-rw-rw-    1 2000     2000      2302252 Jan  3 19:26 zImage
      Note : for specific kernel you can add a file named cmdline containing kernel parameters
    2. Advanced boot menu
      • Boot init : boot into android, if android kernel was uninstalled, this item didn't appear
      • Boot recovery : boot into recovery

      • Soft boot : For details about omap soft reboot see the discussion here

    Configuration
    There is a configuration file in kboot/conf directory named config.ini. This file is divided into 3 section
    • init
      • telnet : 1 to enable telnet, 0 to disable
      • usbip : set the ip address of usb ethernet interface
      Code:
      [init]
      telnet = 1
      usbip = 192.168.10.1
    • kboot
      • last_selection : enable (1) or disable (0) the boot by default of the last selectioned entry after a configured timeout
      • last_selection_timeout : timeout in second
      • softboot : enable or disable softboot menu
      • title_font_size : set the title font size
      • menu_font_size : set the menu font size
      • title_color : title color in r,g,b format
      • menu_item_color : menu unselected color in r,g,b format
      • menu_item_selected_color : menu selected color in r,g,b format
      Code:
      [kboot]
      # boot last selection if no key pressed after 30 seconds
      last_selection = 1
      last_selection_timeout = 30
      # enable soft boot menu (bootloader dev only)
      softboot = 1
      
      # some tuning
      title_font_size = 36
      menu_font_size = 32
      # change the color, R,G,B format
      title_color = 255,255,255
      menu_item_color = 92,97,98
      menu_item_selected_color = 0,0,255
    • softboot
      • item<n> : the boot sequence wanted
      Code:
      [softboot]
      # put a list of items to display in Soft boot menu
      # item<n> = sequence
      item1 = uart,usb,mmc1,mmc2
      item2 = uart,usb
      item3 = mmc1,mmc2
    • background image
      To customize the background image, just replace the file kboot/images/bkg.png with your own and adapt if necessary the size and the font color.
    BUGS
    Feedbacks are welcome ;)
    1
    This may be a stupid question but why do you need a squashed fs that contains (when unsquashed) about 30Mb on files including python?

    it should be possible to trim that down and put all the scripts and support libs in the initramfs so that you only need to flash the kernel and initramfs and nothing else.

    Files on first post have been updated, but you're right a better presentation to avoid confusion is necessary.

    Simply because I use python (pygame which use sdl) to code Kboot. Python lib dir is about 13M ... . A minimal filesystem (compressed initramfs) for kboot work is about 8M + ~2M for the kernel give 10M, and it's too big to flash in SDE max 8M. But if i can optimize the size ... I will do
    1
    thx, i tried this now ..

    now urukdroid runs like it should , but the kboot-menu to choose is gone :confused: and it boots to Uruk automatically


    just reflash kboot?
    You just installed Uruk ?
    That's normal
    copy the initramfs and the kernel I described you to /kboot/os/uruk and after reflash kboot ;-)

    Sorry if my English is so bad :)
    1
    after install urukdroid 1.6, and flash kboot i see kboot menu, but the urukdroid don't boot normally.

    I see urukdroid installation menu, with options to install and reinstall urukdroid.

    I try this process many times with same result. Can you help me?
    I already try the cmdline file with the same result

    cmdline:
    root=/dev/mmcblk0p1

    Try to install Uruk 1.6.3 or later and use that zImage & initri at Kboot folder, Uruk 1.6 with easy install will have this problem. I am using Uruk 1.6.3 & the new Bull.;)