Kexecboot on the TF700t(TF700t-AKBI v2.6.8)

Search This thread

workdowg

Senior Member
Apr 17, 2011
1,556
691
Seneca Falls
TF700t-AKBI v2.6.8

I no longer own this device but will continue development. That said, all testing must be done by others. Thank you.

Android Kexecboot Installer script (TF700t-AKBI) is a prompted script run from inside an Android terminal.


The installer script source is here on github

(Please note: This thread is now only for the TF700t-AKBI installer. I have moved all the old dualboot stuff to the old dev thread here)

You must have a fully stable running install of:

CROMi-X 5.4,
ZOMBi-POP or KatKiss (For CROMBi-KK, ZOMBi-X use v2.6.6)
(
running from the internal sd ONLY, no f2fs, data2sd or rom2sd)

AND

either TWRP_that-2.6.4 or TWRP 2.7+



See these threads for help installing any of the following:

CROMi-x 5.4 ROM Thread

CROMBi-KK ROM Thread

ZOMBi-X ROM Thread


ZOMBi-POP ROM Thread

KatKiss ROM Thread

_that v10 Kernel Thread(for CROMi-X)


(If you are on stock rooted only, see rabits old thread as this is your only option, here).



PLEASE READ THIS:

Not for novices... You won't find every detail here... This is kept "simple" with assumption you have at least basic Linux and Android terminal knowledge. Read through both this thread and the closed dev thread here for more info. See cogano's excellent tutorial, here, it will help with some of the details I leave out....

Again you should understand what ALL this means before starting this endeavour.

YOU MAY BRICK YOUR DEVICE... The choice to continue is your own responsibility!


The short story:
What happens here is by flashing the kexecboot kernel blob (to mmcblk0p4) you are given a menu to choose a rootfs to boot from, ie Android, Linux image file, Linux on a partition... So in order for the kexecboot kernel to be of any use to you, you need to install Android and Linux kernels in your rootfs. It then reboots using the kernel you chose. The config file, boot.cfg, is installed to a small 5MB vfat partition (mmcblk0p5)

ANDROID: Android mounts root (mmcblk0p1) "/" as /system. So we install a kernel (without modules, you did that when you installed your ROM) to a directory we make called /boot which needs to be in the mount /system directory. This kernel (zImage and initrc.img) is just extracted from _that's cm112 or _that9oc+ kernel blobs and a copied to the /boot directory.

LINUX: This kernel was especially compiled by JoinTheRealms from _that5 source using configs moreD_cn came up with. It needs to be installed in /boot of a Linux rootfs.



Installing the installer: :silly:

If you are using KitKat (CROMBi-KK or ZOMBi-X), the rootfs installer will only make a 3GB image file. If you need a bigger image you will need to use one of the Aroma recovery based installers. Sorry :(

1- Download:

Zombi-POP or KatKiss
TF700t-AKBI-v2.6.8.zip

md5 458174c4438b279e1062d634c3c719c1

(For Crombi-KK and Zombi-X only use
TF700t-AKBI-v2.6.6.zip )

2- Extract to /sdcard or your favorite place

3- Place **ONE** "rootfs.tar.lzma" file in the extracted directory, see example files below

4- Open terminal and get root - su

5- cd to the directory you extracted the installer to

6- Run the script - sh TF700t-AKBI.sh (For a first time install select menu item 1)

7- Follow the prompts

Profit!


TF700t-AKBI Change log:
v2.6.8 - 09/05/15
-- Added KatKiss ROM support

v2.6.7 - 04/29/15
-- Removed old kernels
-- Updated for Zombi-pop Beta 6

v2.6.6 - 02/16/2015
--Added Zombi-POP Support

v2.6.5 - 11/21/2014
--Added that11 CROMBi-KK

v2.6.4 - 08/26/2014
--Updated rootfs and first time install to include ZOMBi-X kernels (forgot)

v2.6.3 - 08/26/2014
--Removed ZOMBi-X Stock Omni kernel
--Added ZOMBi-X Stock cm11

v2.6.2 - 08/25/2014
--Added Zombi-X kernels

v2.6.0 - Final - 08/08/2014
--Added all in one first time install script
--More error checking
--Final version

v2.5.9 - 08/05/2014
--Added back support for CROMBi-KK
--More error checking

v2.5.8 - 07/31/2014
--More error checking and better error exiting
--Check for valid rootfs image name and add extension if needed
--Added restore boot.cfg to bootcfg installer

v2.5.7 - 07/30/2014
--Fixed kernel installer error checking

v2.5.6 - 07/28/2014
--Added ability to install/add current entry to boot.cfg in rootfs installer

v2.5.5 - 07/19/2014
--Updated CROMBi-KK Kernels
--Only including latest kernel blob images, should work for all versions
--Changed folder structure

v2.5.4 - 07/14/2014
--Added stockcm11 kernel
--Added stock CROMi-X (JB) kernel
--Fixed more typo's (as usual)

v2.5.3 - 07/13/2014
--Add hardslog's CROMBi-KK cm11 kernel

v2.5.2 - 07/5/2014
--More typos
--Error checking for rootfs image size - it now won't try to make an image larger than your SD

v2.5.1 - 07/3/2014
--Added that10cm11 kernel for CROMBi-KK 6/17 release
--Changed main script name and links to it

v2.5 - 06/30/2014
--Scripts and project names changed
--Other small error checking fixes

v2.0 - 06/13/2014
--Added rootfs installer
--Fixed more error checking issues
--Simpler boot.cfg

v1.5 - 06/07/2014
--Added menu
--Fixed some issues in boot.cfg modifier script

v1.0 - 05/26/2014
--First release


Running the installer for the first time:

1) Copy a "rootfs.tar.lzma" file (see examples below) to the directory you extracted the
installer to (ex. - /sdcard/TF700t-AKBI-v2.X.X/ ). There can only be ONE "rootfs.tar.lzma" file in the install directory at one time.
2) Using an Android terminal (suggest Android Terminal Emulator from the Playstore)
cd into the installer directory (ex. - cd /sdcard/TF700t-AKBI-v2.X.X/ ) and become superuser (su)
3) Run the script - (sh TF700t-AKBI.sh)
4) Choose menu item 1 reading carefully and follow prompts
5) Reboot and profit

After you reboot it will bring you directly to the kexecboot menu which will have 2 choices:
Android and your new rootfs. The kexecboot menu will time out after 10 seconds and boot to
the highest priority OS (default is Android). To choose an OS to boot, use either the volume
keys or dock arrow keys and select with the power button or dock enter key.


Using after install - Advanced users:

Installer menu item 4 allows you to install a boot.cfg from the installer directory. This can be any file named boot.cfg or boot.cfg.old (your backup file)

Installer menu item 5 gives the opportunity to manually edit boot.cfg using a text editor (installer pauses while you switch to a text editor)

Aroma recovery based installers for KitKat (CROMBi-KK or ZOMBi-X) users wanting rootfs image files over 3GB or to install anywhere other than /data/media/linux

lubuntu-rootfs-installer-v.1.1.zip

ubuntu-rootfs-installer-v.1.1.zip


Question - " When I try to login, it kicks back to login screen"
Answer - Reinstall without make /dev/mmcblk0p8 as home


See the README.md for additional details.


Rootfs.lzma archive example files:
AndroidFileHost doesn't allow lzma files so ...
DOWNLOADS ARE ZIP FILES. YOU NEED TO EXTRACT THE LZMA


-- rabits' Ubuntu 12.10 (with that10 Linux kernel by conago added) - 720mb (2.9GB installed)

rootfs-ubuntu-12.10-that10-kexec.zip
md5 6ce2c4ad4366e44b56cd45a1b25cdcf3


-- workdowg's lubuntu 12.10 (with that10 Linux kernel by conago added) - 727mb (2.2GB installed)

rootfs-lubuntu-tf700t-05182014-that10-kexec.zip
md5 b223883da002274b0190550fcddbe5b1("New" cleaned up version)


Your Best Bet! --Ananasnonym's Lubuntu 12.04 LTS v1.3 (with that10 Linux kernel by conago6 added) - 351mb (1.5GB installed). (Directory structure fixed by workdowg)

rootfs-minimal-Lubuntu-12.04-v1.3.dirfixed.zip
md5 947b6dc24b4bdfdc67223ffd2194f570

Credits:
rabits
sbdags
JoinTheRealms
moreD_cn
_that
lj50036
cogano
Ananasnonym
jcfunk
and many more
 
Last edited:

yoda-sama

Member
Mar 28, 2013
31
6
I am happy to continue my enthusiasm here in this thread! I look forward to the possibility of having a dependable dual boot of up to date Android and Linux before long.

Oh, and the obligatory, "FIRST!"
 

workdowg

Senior Member
Apr 17, 2011
1,556
691
Seneca Falls
Well I took a shoot today at building moreD_cn patch against _that's source/patches, to try to get a stable kernel. I have build custom kernels before for my pc but with this I failed miserably (I said I was not a kernel guy...). I can't get it to build. I got the source from Asus, the patches from _that4 and moreD_cn. Patching went fine, but when I tried to build it, it kept trying to build a x86 kernel and keeps asking a million questions I have no idea how to answer. I officially give up on kernel building. Someone who has the knowledge will have to step up....
 

JoinTheRealms

Senior Member
Apr 7, 2012
1,931
1,297
Well I took a shoot today at building moreD_cn patch against _that's source/patches, to try to get a stable kernel. I have build custom kernels before for my pc but with this I failed miserably (I said I was not a kernel guy...). I can't get it to build. I got the source from Asus, the patches from _that4 and moreD_cn. Patching went fine, but when I tried to build it, it kept trying to build a x86 kernel and keeps asking a million questions I have no idea how to answer. I officially give up on kernel building. Someone who has the knowledge will have to step up....

Ah its defaulting to the x86 compiler, spent hours edit: days! trying to get my machine to cross compile, the thing that fixed it for me was updating all compiler packages, i just went around all the different tutorials and installed all the packages they recommended and it suddenly worked lol.
 

JoinTheRealms

Senior Member
Apr 7, 2012
1,931
1,297
Uploaded correct installer. I have been playing with so much I had a test one uploaded. Installs and runs fine now.

Thanks workdowg working fine now on my tf700! just a note to other users, when the installer hits 90% it stays there for a long time (about half an hour) but it will complete successfully.

Also the initramfs(not sure if thats its name...) is picking up directories stored in /data/media/linux and trying to boot them, for example i had /data/media/linux/linux and it was trying to boot /linux , so just make sure you dont have any folders inside of /data/media/linux
 
  • Like
Reactions: workdowg and maxal

JoinTheRealms

Senior Member
Apr 7, 2012
1,931
1,297
Right first weird issue with ubuntu on 4.2. It seems the dns_resolver is requiring su permissions to run hence chromium, host, ping etc aren't working right , and need to be ran with sudo. Not quite sure how to fix this one...
 

JoinTheRealms

Senior Member
Apr 7, 2012
1,931
1,297
Has anyone else tested ubuntu on 4.2 yet? wifi works fine but dns doesn't (without su permissions, so no browsers atm) seems moreD_cn has compiled with "CONFIG_ANDROID_PARANOID_NETWORK" in his config which from my research sandboxes low level internet activity (ping etc)
i'm still trying to find a fix without having to re-compile the kernel.

Edit: problem solved you must add this to /etc/group

inet:x:3003:root,ubuntu
net_raw:x:3004:root,ubuntu

---------- Post added at 11:09 PM ---------- Previous post was at 10:24 PM ----------

Not sure if there's an easy fix, but the new kernel needs usb devices plugged in at boot
 
Last edited:

workdowg

Senior Member
Apr 17, 2011
1,556
691
Seneca Falls
Has anyone else tested ubuntu on 4.2 yet? wifi works fine but dns doesn't (without su permissions, so no browsers atm) seems moreD_cn has compiled with "CONFIG_ANDROID_PARANOID_NETWORK" in his config which from my research sandboxes low level internet activity (ping etc)
i'm still trying to find a fix without having to re-compile the kernel.

Edit: problem solved you must add this to /etc/group

inet:x:3003:root,ubuntu
net_raw:x:3004:root,ubuntu

---------- Post added at 11:09 PM ---------- Previous post was at 10:24 PM ----------

Not sure if there's an easy fix, but the new kernel needs usb devices plugged in at boot

So wifi does work. My Arch installs won't let me turn it on. When you get a chance, right after you fresh boot into Ubuntu, could you get a dmesg output? I have one from the old kernel setup and I would like to compare all three....

Sent from my ASUS Transformer Pad TF700t - CROMi-X 4.7.0 ODEX
 

JoinTheRealms

Senior Member
Apr 7, 2012
1,931
1,297
So wifi does work. My Arch installs won't let me turn it on. When you get a chance, right after you fresh boot into Ubuntu, could you get a dmesg output? I have one from the old kernel setup and I would like to compare all three....

Sent from my ASUS Transformer Pad TF700t - CROMi-X 4.7.0 ODEX

Not sure if this is what you were after

https://www.dropbox.com/s/nzmfnqnl31cicq7/logs.tar.gz (all logs)
https://www.dropbox.com/s/kl0tdkbce22ftn6/boot (dmesg)

Also how do i disable logging? i think its really hitting io performance, those logs above were 6mb when i uploaded now they are over 100
 
Last edited:
  • Like
Reactions: workdowg

workdowg

Senior Member
Apr 17, 2011
1,556
691
Seneca Falls
Not sure if this is what you were after

https://www.dropbox.com/s/nzmfnqnl31cicq7/logs.tar.gz (all logs)
https://www.dropbox.com/s/kl0tdkbce22ftn6/boot (dmesg)

Also how do i disable logging? i think its really hitting io performance, those logs above were 6mb when i uploaded now they are over 100

Thank you.

That is is the kernel config... I think. MoreD_cn said he made it big for debugging.
Next time get me this from a terminal right after a fresh boot.
Code:
 dmesg > dmesg.txt

Sent from my HTCEVOV4G using Tapatalk 4
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 37
    TF700t-AKBI v2.6.8

    I no longer own this device but will continue development. That said, all testing must be done by others. Thank you.

    Android Kexecboot Installer script (TF700t-AKBI) is a prompted script run from inside an Android terminal.


    The installer script source is here on github

    (Please note: This thread is now only for the TF700t-AKBI installer. I have moved all the old dualboot stuff to the old dev thread here)

    You must have a fully stable running install of:

    CROMi-X 5.4,
    ZOMBi-POP or KatKiss (For CROMBi-KK, ZOMBi-X use v2.6.6)
    (
    running from the internal sd ONLY, no f2fs, data2sd or rom2sd)

    AND

    either TWRP_that-2.6.4 or TWRP 2.7+



    See these threads for help installing any of the following:

    CROMi-x 5.4 ROM Thread

    CROMBi-KK ROM Thread

    ZOMBi-X ROM Thread


    ZOMBi-POP ROM Thread

    KatKiss ROM Thread

    _that v10 Kernel Thread(for CROMi-X)


    (If you are on stock rooted only, see rabits old thread as this is your only option, here).



    PLEASE READ THIS:

    Not for novices... You won't find every detail here... This is kept "simple" with assumption you have at least basic Linux and Android terminal knowledge. Read through both this thread and the closed dev thread here for more info. See cogano's excellent tutorial, here, it will help with some of the details I leave out....

    Again you should understand what ALL this means before starting this endeavour.

    YOU MAY BRICK YOUR DEVICE... The choice to continue is your own responsibility!


    The short story:
    What happens here is by flashing the kexecboot kernel blob (to mmcblk0p4) you are given a menu to choose a rootfs to boot from, ie Android, Linux image file, Linux on a partition... So in order for the kexecboot kernel to be of any use to you, you need to install Android and Linux kernels in your rootfs. It then reboots using the kernel you chose. The config file, boot.cfg, is installed to a small 5MB vfat partition (mmcblk0p5)

    ANDROID: Android mounts root (mmcblk0p1) "/" as /system. So we install a kernel (without modules, you did that when you installed your ROM) to a directory we make called /boot which needs to be in the mount /system directory. This kernel (zImage and initrc.img) is just extracted from _that's cm112 or _that9oc+ kernel blobs and a copied to the /boot directory.

    LINUX: This kernel was especially compiled by JoinTheRealms from _that5 source using configs moreD_cn came up with. It needs to be installed in /boot of a Linux rootfs.



    Installing the installer: :silly:

    If you are using KitKat (CROMBi-KK or ZOMBi-X), the rootfs installer will only make a 3GB image file. If you need a bigger image you will need to use one of the Aroma recovery based installers. Sorry :(

    1- Download:

    Zombi-POP or KatKiss
    TF700t-AKBI-v2.6.8.zip

    md5 458174c4438b279e1062d634c3c719c1

    (For Crombi-KK and Zombi-X only use
    TF700t-AKBI-v2.6.6.zip )

    2- Extract to /sdcard or your favorite place

    3- Place **ONE** "rootfs.tar.lzma" file in the extracted directory, see example files below

    4- Open terminal and get root - su

    5- cd to the directory you extracted the installer to

    6- Run the script - sh TF700t-AKBI.sh (For a first time install select menu item 1)

    7- Follow the prompts

    Profit!


    TF700t-AKBI Change log:
    v2.6.8 - 09/05/15
    -- Added KatKiss ROM support

    v2.6.7 - 04/29/15
    -- Removed old kernels
    -- Updated for Zombi-pop Beta 6

    v2.6.6 - 02/16/2015
    --Added Zombi-POP Support

    v2.6.5 - 11/21/2014
    --Added that11 CROMBi-KK

    v2.6.4 - 08/26/2014
    --Updated rootfs and first time install to include ZOMBi-X kernels (forgot)

    v2.6.3 - 08/26/2014
    --Removed ZOMBi-X Stock Omni kernel
    --Added ZOMBi-X Stock cm11

    v2.6.2 - 08/25/2014
    --Added Zombi-X kernels

    v2.6.0 - Final - 08/08/2014
    --Added all in one first time install script
    --More error checking
    --Final version

    v2.5.9 - 08/05/2014
    --Added back support for CROMBi-KK
    --More error checking

    v2.5.8 - 07/31/2014
    --More error checking and better error exiting
    --Check for valid rootfs image name and add extension if needed
    --Added restore boot.cfg to bootcfg installer

    v2.5.7 - 07/30/2014
    --Fixed kernel installer error checking

    v2.5.6 - 07/28/2014
    --Added ability to install/add current entry to boot.cfg in rootfs installer

    v2.5.5 - 07/19/2014
    --Updated CROMBi-KK Kernels
    --Only including latest kernel blob images, should work for all versions
    --Changed folder structure

    v2.5.4 - 07/14/2014
    --Added stockcm11 kernel
    --Added stock CROMi-X (JB) kernel
    --Fixed more typo's (as usual)

    v2.5.3 - 07/13/2014
    --Add hardslog's CROMBi-KK cm11 kernel

    v2.5.2 - 07/5/2014
    --More typos
    --Error checking for rootfs image size - it now won't try to make an image larger than your SD

    v2.5.1 - 07/3/2014
    --Added that10cm11 kernel for CROMBi-KK 6/17 release
    --Changed main script name and links to it

    v2.5 - 06/30/2014
    --Scripts and project names changed
    --Other small error checking fixes

    v2.0 - 06/13/2014
    --Added rootfs installer
    --Fixed more error checking issues
    --Simpler boot.cfg

    v1.5 - 06/07/2014
    --Added menu
    --Fixed some issues in boot.cfg modifier script

    v1.0 - 05/26/2014
    --First release


    Running the installer for the first time:

    1) Copy a "rootfs.tar.lzma" file (see examples below) to the directory you extracted the
    installer to (ex. - /sdcard/TF700t-AKBI-v2.X.X/ ). There can only be ONE "rootfs.tar.lzma" file in the install directory at one time.
    2) Using an Android terminal (suggest Android Terminal Emulator from the Playstore)
    cd into the installer directory (ex. - cd /sdcard/TF700t-AKBI-v2.X.X/ ) and become superuser (su)
    3) Run the script - (sh TF700t-AKBI.sh)
    4) Choose menu item 1 reading carefully and follow prompts
    5) Reboot and profit

    After you reboot it will bring you directly to the kexecboot menu which will have 2 choices:
    Android and your new rootfs. The kexecboot menu will time out after 10 seconds and boot to
    the highest priority OS (default is Android). To choose an OS to boot, use either the volume
    keys or dock arrow keys and select with the power button or dock enter key.


    Using after install - Advanced users:

    Installer menu item 4 allows you to install a boot.cfg from the installer directory. This can be any file named boot.cfg or boot.cfg.old (your backup file)

    Installer menu item 5 gives the opportunity to manually edit boot.cfg using a text editor (installer pauses while you switch to a text editor)

    Aroma recovery based installers for KitKat (CROMBi-KK or ZOMBi-X) users wanting rootfs image files over 3GB or to install anywhere other than /data/media/linux

    lubuntu-rootfs-installer-v.1.1.zip

    ubuntu-rootfs-installer-v.1.1.zip


    Question - " When I try to login, it kicks back to login screen"
    Answer - Reinstall without make /dev/mmcblk0p8 as home


    See the README.md for additional details.


    Rootfs.lzma archive example files:
    AndroidFileHost doesn't allow lzma files so ...
    DOWNLOADS ARE ZIP FILES. YOU NEED TO EXTRACT THE LZMA


    -- rabits' Ubuntu 12.10 (with that10 Linux kernel by conago added) - 720mb (2.9GB installed)

    rootfs-ubuntu-12.10-that10-kexec.zip
    md5 6ce2c4ad4366e44b56cd45a1b25cdcf3


    -- workdowg's lubuntu 12.10 (with that10 Linux kernel by conago added) - 727mb (2.2GB installed)

    rootfs-lubuntu-tf700t-05182014-that10-kexec.zip
    md5 b223883da002274b0190550fcddbe5b1("New" cleaned up version)


    Your Best Bet! --Ananasnonym's Lubuntu 12.04 LTS v1.3 (with that10 Linux kernel by conago6 added) - 351mb (1.5GB installed). (Directory structure fixed by workdowg)

    rootfs-minimal-Lubuntu-12.04-v1.3.dirfixed.zip
    md5 947b6dc24b4bdfdc67223ffd2194f570

    Credits:
    rabits
    sbdags
    JoinTheRealms
    moreD_cn
    _that
    lj50036
    cogano
    Ananasnonym
    jcfunk
    and many more
    8
    I thought the recovery partition wasn't big enough for a full blown linux kernel?, on the tf101 we had applications that automated the process of rebuilding the partitions with nvflash, we would lose recovery but you could use "OLiFE" (one of said applications) to temporarily re-flash a recovery. This would be my personal favorite way.

    The kexec looks as interesting as it is confusing lol, i read somewhere someone was working on dualboot kexec for the tf700 but i don't think they released it.

    As for a chroot-vnc solution, zacthespacks app(linux installer) works suprisingly well, it would be good to be able to use our native rootfs with chroot-vnc not sure if its possible. http://sourceforge.net/p/linuxonandroid/wiki/Building Guides/

    Hey everyone! I finally got some time for the forum...

    In fact I'm working on kexec kernel and have successfully compiled one. Now the kernel for android (on boot partition) works great without SOD, but more works are stiil needed for linux kernel. The android kernel can boot into linux but X failed to start. I'm testing my kexec-enabled kernel for android and modifying booting scripts to support kexec. If anything goes right I may post my installer in a few days...

    have to go back to my dorm now....
    6
    Just to let you know i have updated some instructions and also uploaded an ungraded ROOT FS for Gentoo here:
    https://wiki.gentoo.org/wiki/Asus_Transformer_Infinity_(TF700T)/Install

    Feel free to download and try.

    News: audio works perfectly now, bluetooth works, removed Firefox due to unusability and added Chromium
    6
    ASUS TF700t multi-boot Linux and Android - step by step for kexec w/ explanatory info

    EDIT: While some of the linked host kexec blob, guest os kernels and installers are obsolete now, the background information remains valid. For most up-to-date links (rootfs, installer) check out the original post in this thread.

    ===
    I have spent some time gathering and trying to understand the info, it might be usefull for others. At the moment, I do not plan to keep it updated and therefore I do not open a new thread. However, should there be anything wrong or misleading, I will be glad to correct it.

    === Steps for Stock ROM (or Cromi-X v3.x or 4.x or 5.x) ===

    1. Steps 2 to 4 are to be done on your computer (preferably in Linux OS). It is assumed that you can do some basic stuff like creating partitions and file systems, mounting them, using command line interface and man pages, boot your tablet to Recovery, etc. The links in the square brackets refer to files for download. The text in curly brackets refers to the device name (partition) - depending on your setup, the partitions may be mounted in different places in the file system - hence that's your task to identify the actual mount point.
    2. Plug-in the microSD card and create a Linux partition (of cca 5 GB or more) and format it as ext4. Mount the partition (lets say to /media/microsd).
    3. [ http://www.lugotfl.org/tf700t/rootfs-lubuntu-tf700t-8-22-2013.tar.lzma ] Unpack rootfs-lubuntu-tf700t-8-22-2013.tar.lzma to the partition on microSD card:
      # tar -xvf rootfs-lubuntu-tf700t-8-22-2013.tar.lzma -C /media/microsd
    4. [ https://www.dropbox.com/sh/32aupv891apenlc/u4GJelDNQ3 ] Extract contents of _that-linux-kexec.zip (zImage and initrd.img) to /media/microsd/boot.
    5. Now unmount the microSD card and plug it in TF700t. The following steps are to be done on the tablet.
    6. [ https://www.dropbox.com/s/0q01ijw1vkbokw1/installerV6.8.zip ] From Recovery, run "Installer V6.8". See == Installer == section for more info. During the installation, skip creating rootfs.img file to save some time. Then, reboot to Android.
    7. [ https://www.dropbox.com/sh/32aupv891apenlc/u4GJelDNQ3 ] Extract _that-android-kexec.zip (zImage and initrd.img) to {/dev/block/mmcblk0p1}/system/boot (create the directory boot if it does not exist).
    8. Create and edit multiboot config file in {/dev/block/mmcblk0p5}/multiboot/boot.cfg to include existing OSes (see == mutliboot/boot.cfg == section below).
    9. [ https://www.dropbox.com/sh/32aupv891apenlc/u4GJelDNQ3 ] Flash host/blob (compressed kexec-boot-from kernel and ramdisk) to the tablet's staging partition:
      # dd if=host/blob of=/dev/block/mmcblk0p4
    10. Reboot: the kexec kernel spits typical Linux messages during boot and eventually you should see a list of systems to boot from (as per multiboot/boot.cfg).
    Later, you can just do the steps 7, 8 and 9 quite independently (e.g. to test various kernels, ramdisks or Linux distributions).

    If you happen to re-flash a new Android ROM, chances are that the host kexec kernel and guest kexec Android kernel will be overwritten and multiboot disabled. In such a case, run the "Installer" again and redo the later steps, too.

    == Installer ==
    Responsible for unpacking the linux rootfs image to a virtual container (img file) and setting up kernel (+ initrd) to the update staging partition /dev/block/mmcblk0p4 and possibly some other stuff. Takes care also about setting up "multiboot" environment. [?? I am not really sure what extra stuff is done by the Installer - is that really neccessary for kexecboot ??]

    Note that after the first reboot, the contents of the staging partition (mmcblk0p4) is copied by bootloader to the hidden boot area on the internal emmc storage. (The boot area has no entry in GPT - hence it is not a typical disk partition per se. For more details regarding the staging partition and how the binary blobs are to be prepared, see _that's explanation here). With the help of a patched kernel, the hidden boot area may be listed as mmcblk0p10 partition.

    The currently available versions (up to V 6.8) are not aware of kexecboot and will overwrite whatever kernel and ramdisk exists for the Android ROM with a simple init.d kernel. This installer requires rootfs.tar.lzma to be placed at /data/media (in Android) - at least for the Cromi-X 5.x Android I use.

    If you want to boot Linux rootfs from a directory (as per above tutorial), you can skip the unpacking of the tar.lzma file by the Installer and do it later manually on your PC (it is way faster to untar the tar.lzma directly to the micro SD card on your computer than doing so in Android in multiple steps, i.e. unpacking to rootfs.img, mounting it on a loopback and copying over to micro SD card).

    == Kexecboot for TF700t ==
    There are multiple implementation of multiboot for Asus TF700t, the kexecboot being the most flexible, though more difficult to setup.

    The booting process is as follows:

    • the bootloader loads kernel (zImage) and ramdisk (initrd.img) from the hidden boot area on emmc;
    • the ramdisk includes a kexecboot binary, which looks for configuration file at {mmcblk0p5}/multiboot/boot.cfg;
    • this configuration file tells the kexecboot binary some basic information about available operating systems (Android, Linux) - where to find kernel, initrd, rootfs. The boot.cfg has to be created manually;
    • once the user makes his choice, kexecboot loads the new kernel and after "soft-boot" continues with loading ramdisk and eventually the booting process continues as usual.
    Both host (kexec-boot-from) and guest (kexec-boot-to) kernels must support kexec. Some kernels are universal and provide both functions.

    The binary blob used as a host kexec kernel ("boot image") cannot be easily mounted and special tools must be used to exctract the kernel and ramdisk so that they can be replaced and then re-compressed again to the boot image.

    Some kernels may be used both for host kexec or guest kexec, just make sure to keep the original ramdisk (initrd.img) for the host kexec, which includes the kexecboot binary.

    == mutliboot/boot.cfg ==
    In the multiboot kexec environment, the list of available operating systems for soft-booting is placed at {/dev/block/mmcblk0p5}/multiboot/boot.cfg:

    LABEL=Android
    BOOT=3
    DEVICE=/dev/mmcblk0p1
    DIR=/
    KERNEL=/boot/zImage
    INITRD=/boot/initrd.img
    PRIORITY=100

    LABEL=Lubuntu 13.04
    BOOT=3
    DEVICE=/dev/mmcblk1p1
    DIR=/
    KERNEL=/boot/zImage
    INITRD=/boot/initrd.img
    PRIORITY=50

    # Example of booting from rootfs container
    #LABEL=Ubuntu
    #BOOT=7
    #DEVICE=/dev/mmcblk0p8
    #IMAGE=/linux/ubuntu.img
    #KERNEL=/boot/zImage
    #INITRD=/boot/initrd.img
    #PRIORITY=40

    where

    • BOOT=3 is magic number for booting from a directory and BOOT=7 is magic number for booting from rootfs container;
    • DEVICE is path to the partition, on which the rootfs exists; the path uses notation of Linux kernel (/dev/block_device) and not Android kernel (/dev/block/block_device);
    • IMAGE is absolute path to the rootfs container on the given DEVICE;
    • DIR is absolute path on the given DEVICE to the "root" of the extracted rootfs;
    • KERNEL and INITRD are absolute paths to kernel and ramdisk (from the view point of mounted rootfs);
    • PRIORITY sets the order of the list (higher the number, higher on the list).
    Note that once Android is booted, the /boot directory is actually mounted to /system/boot. This is because mmcblk0p1 is mounted to /system in Android and not to / (root).

    == Partition layout related to this tutorial==

    • mmcblk0p1 is an ext4 formatted partition (500 MB) for Android ROM (/system);
    • mmcblk0p4 is a staging partition for boot or recovery updates;
    • mmcblk0p5 is a vfat formatted partition (5 MB) used for device configuration files etc (/misc);
    • mmcblk0p8 is an ext4 partition used to store user data etc (/data);
    • mmcblk1p1 is the first partition of external microSD card inserted to the slot on tablet. In this tutorial, this is where the linux root file system is extracted to.
    For a complete layout of partitions and other data on the internal emmc storage, see this post.
    == end ==

    Thanks to all the devs for the hard work and contributions.
    5
    Ok This docking bug is more serious then i first realised, if you dock the tablet while the screen is off Its freezing and requires a hard reboot.

    Im now thinking of reimplementing the whole dualboot system, and removing all the init stuff, instead have the tablet boot directly into android, from there you can have an app or scripts which will hardboot the tablet into which operating system/ distro you desire. This would be making full use of the kexec kernel idea.

    Or ideally something like this https://www.youtube.com/watch?v=l5Kbg4kuZfQ which dragonnn done for the tf300t. but will be easier again since we have kexec support

    I think this could be a much cleaner approach , it will require lots of work, mainly because of my lack of experience with linux, but i think it could be worth it :) let me know what you think.