[Transformer TF300T Q&A, Help & Troubleshooting] NatherKross:
This was the 6th post in the thread. I swapped it with the original first, because this one contains the instructions on how to get dualbooting to work.

[MENTION=5334414]brewmeister[/MENTION]:

Thanks, I've got it working, since Graiden05 added the support for it. ^^

[MENTION=5141522]f69m[/MENTION]:

I'm stalking your thread, ready to pounce once sd cards and linux are supported. If you see a shadow in the corner of your eye, while writing a post in your thread, then that's most likely me. ;)

[MENTION=4151056]Trigger911[/MENTION] and everyone else interested:

It's quite easy now. But takes a while, if you're doing it for the first time. Note that I'm talking about the MicroSD card slot in the tablet. This won't work with the slot in the Dock. Also you need to have your tablet unlocked, a 4.2 Bootloader and a custom recovery, like TWRP 2.5.0.0-42. See the Cromi-X thread in the developer forum:

xdaforums.com/showthread.php?t=2425390

The rootfs is a bit dated. It's xubuntu 13.04. There are instructions on how to create your own roots in the 2nd post of the xubuntu thread in the dev forum. We'll just use the dated one.

Also webdoctors wrote a nice post about just installing xubuntu. There are links to the rootfs, installer script v2.2.9 and the modules needed:

xdaforums.com/showpost.php?p=48947306&postcount=342

Download the installer script and Cromi-X to the internal storage of your tablet.

To get both Cromi-X and xubuntu booting from the sdcard you need to partition it:

Create four patitions on your card. The order is important and don't forget to make a backup! All data on the card will be lost during the process:

1st: vfat (any size you want, there was a technical reason, that the first partition needs to be vfat, but I can't remember)

2nd: ext4 (will be the data partition for your apps and stuff, as big as possible)

3rd: ext4 (system, for cromi-x, 1GiB, more would be a waste of space)

4th: ext4 (rootfs, for xubuntu, at least 4GiB, made mine 10GiB, on a 64GiB card)

Detailed Instructions on how to partition a sd card can be found at the end of the 2nd post of sdbags' Cromi-X thread.

Installing Cromi-X:

Get Cromi-X 5.4 and flash it with the ROM2SD Option selected. Instructions on how to install Cromi-X are in the 1st post.

Cromi-X will use the 2nd and 3rd Partition.

Once the installation is done, reboot and check if it is working. During the boot you will see Penguins and some text below. If at the end of it there's something like "setting up for Rom2SD", then it's working and booting from the card.

Installing xubuntu:

For the next steps I use Ubuntud. It might work on a rooted phone/tablet too, if you use a terminal app, like Terminal IDE or Terminal Emulator. But you might need to use su instead of sudo and use another folder than /media.

Follow these instructions and enter the commands in a terminal. If you want to learn more about what a command is doing type "man" followed by the command, e.g. "man sudo" or "man mkdir":

1. Create mountpoints for the rootfs-partition and the downloaded rootfs-image:

sudo mkdir /media/xubuntu

sudo mkdir /media/rootimage

2. Determining the path of your sd card under Linux. Don't play with this! fdisk you can wreak havoc to your harddisk. The -l option tells fdisk to show you a list of all partitions of storage mediums connected to your pc:

sudo fdisk -l

3. Mount the rootfs partition of the sdcard. Assuming the path to the sd card is /dev/sdd, then the 4th partition is adressed as /dev/sdd4. Change it accordingly:

sudo mount -t ext4 /dev/sdd4 /media/xubuntu

4. Download the rootfs. Use the link in webdoctors post.

5. Extract the image from the file.

6. Mount the image, so you can copy it's content to the rootfs partition on the card. You need to change the path to match your situation. Here I simply downloaded it to my Downloads folder and extracted it there:

sudo mount -o loop /home/<username>/Downloads/xubuntu_13.04.img /media/rootimage

8. Now we can copy the files in the image to our root partition. We use the options -pr, which will (p)reserve access rights, owner, group, etc. and copy (r)ecursivly the contents of all directories in the image:

sudo cp -pr /media/rootimage/* /media/xubuntu/

9. Wait till it's done copying, then unmount both the image and root partition:

sudo umount /media/xubuntu

sudo umount /media/rootimage

10. Put the SD card in the tablet and boot to recovery: Press Volume Down and keep holding it. Press Power for a second and release it, while keeping Volume Down pressed. Once you see three icons, with RCK blinking, release Volume Down and Press Volume Up.

11. Now it's time to flash the installer script. Doing this will enable us to boot xubuntu, but we will loose wifi in Android. We will fix this afterwards. In TWRP chose install, locate the V2.2.9.zip and flash it. The tablet will reboot, show a blue bar and reboot again.

12. You will be greeted by a new bootmenu. Waiting for 10 seconds or hitting 1 will boot xubuntu, pressing Volume Down or 2 will boot Cromi-X. For now we want to boot to xubuntu.

13. On the login screen just hit login.

Fixing WiFi in Android

Now we need the mod_update.zip from Graiden05.

1. Get it from: xdaforums.com/showpost.php?p=47990253&postcount=311

2. Unzip it and open the mod_update.sh file in an editor.

3. The script assumes, that we've installed Android to the internal storage, which we did not. So we need to change a line and point it at the right direction.

In the 3rd line we need to change "/dev/mmcblk0p1" to "/dev/mmcblk1p3". Now the script will mount the system partition of the sd card and not the one from internal storage.

Save and quit.

4. Open a terminal and navigate to the folder containing the script.

5. Run the script by typing:

sudo sh ./mod_update.sh

6. Done! Sit back, relax and enjoy dualbooting your TF300T!

Add swap to xubuntu:

Stop relaxing and get back to work! We ain't done yet. *cracks a whip* :P

We're gonna add a swap file for xubuntu to use because: "If you don't setup a swap space, programs will randomly get killed when you run out of RAM, which is kinda annoying if you want a stable and fast system." (shamelessly stolen from webdoctors' post)

And because we already got four primary partitions on the card, we can't add another one. We could try using extended/logical partitions, but I'm not sure if those are supported on a card and haven't tried it. The only disadvantage will be, that we can't use the swapfile while running Cromi-X... Or can we? Hmmm, mount the xubuntu partition and simply use the swapfile? Got to think about/try it.

Anyways, a good description on how to setup swap is here: http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/ (again shamelessly stolen from webdoctors' post).

Use the second method and don't forget to add "sudo" to the beginning of every line. Also change the value for count in the dd command according to your needs, e.g. count=512 instead of count=1024 to use 512MiB of swap instead of 1GiB.

Ok, it is possible to use the swapfile on the xubuntu partition while running Cromi-X. I don't know how to make these changes permanently yet, so you'll have to mount the partition (step 3) and activate the swapfile (step 4) on every boot to Cromi-X. Also note that using the card for swap will increase it's wear.

With that said, let's get it on! *dingding*

1. Start a terminal app and get root right. In Terminal Emulator just type "su" and hit enter.

2. Create a directory to mount to:

mkdir /sdcard/xubuntu

3. Mount the xubuntu partition:

mount -t ext4 /dev/block/mmcblk1p4 /sdcard/xubuntu

4. Activate swap. If you didn't follow the guide and created it in another directory or under another name, then you have to change the path accordingly:

swapon /sdcard/xubuntu/root/myswapfile

5. Check that it's working. The first number after swap should be anything but 0:

free -k

6. Done! Stop working and get back to relaxing! *cracks a whip* :P

Things to note:

Suspend is not working. Don't use or you'll have to hard power down the tablet (pressing power for 7? 10? seconds). This is bad and you don't want do that. Always shut the tablet down, when you're done. Booting to xubuntu only takes about a minute.

Doing a distribution upgrade in xubuntu is not working. I tried and had to use a backup for the rootfs.

I'm not sure if this is related to making the tablet dualboot. But sometimes, when I used Android and put the tablet to sleep for some hours, it won't wake up and the battery in the dock took quite a hit. The cause for this could be anything; The modules used, kernel, a badly programmed app, bug in Cromi-X, corrupted partition, cosmic rays blasting my tablet or the tablet's just like me and doesn't like being woken early. :P