Dual Booting Android 3.2 and Ubuntu 11.04 on an Asus Transformer
UPDATE: This post is now out of date. The process has been enhanced and made much, much easier. See new blog post here.
Since purchasing my Asus Transformer tablet, now complete with docking station, I’ve had a hankering to install Linux as a dual boot operating system. This was unlikely to be an easy task, as there weren’t really any builds for Nvidia’s arm based Tegra2 CPU. However, Nvidia has released nvflash and a base kernel build for Linux, so it was just a matter of time until someone worked out how to dual boot this with Android. It has been the people on the XDA Developers website that have really taken up the challenge on this.
I am currently writing this post on my Transformer while booted into Ubuntu 11.04. It does work, although there are a few things not yet entirely up and running.
Before going any further, I need to point out that the steps I will outline below will destroy EVERYTHING currently on your Transformer. It will reformat and repartition your storage. You will have all current data wiped, so back everything up. I should also point out that there is some risk of bricking your lovely, shiny tablet.
At the end of all these steps you will hopefully have a dual boot machine with Ubuntu 11.04, a rooted Android Honeycomb 3.2 running the Prime 1.7 ROM and Clockworkmod (CWM) Recovery installed.
Equipment you will need:
- Another computer running Linux
- An SDCard for external/removable storage in the Transformer
- The Transformer USB charging cable.
The XD Developers forum thread dealing with this topic is already over 21 pages long. I did not follow the instructions exactly as they are printed in the first post, so I will be deep linking directly to various posts in an effort to make things clearer.
1. On your Linux machine, download and extract the 900MB+ ubuntu.img rootfs file found towards the bottom of this post.
2. On your Linux machine, download and extract the zip file from this post, containing a flash kit and installation script.
3. From the flash kit just downloaded, you will find a directory called “Bootloaders.” In here are two files – Android.zip and Ubuntu.zip. These two files need to be moved (but not extracted) to the top level directory of the external SDCard you will be putting in your Transformer. If you don’t have a card reader on your Linux machine, it may be easier to download this file a second time on your Transformer and move the files across to the “Removable” SDCard.
4. Copy or move the ubuntu.img from Step 1. into the same directory as the extracted flash kit files from Step 2.
5. Turn off your transformer. Connect the power cable. Connect the USB end of the power cable to your Linux machine.
6. Enter APX mode. To do this, hold down the Volume UP button and the Power button together, for around 10 seconds. The screen will remain black. It will appear that nothing has happened, but don’t worry this is as expected. If something does appear on the screen, you’re doing it wrong.
7. Open a terminal window on your Linux machine and navigate to the folder where the downloaded and extracted nvflash package (from Step 2.) is located. Run the download-ubuntu.sh script. You may need superuser permissions to do this. At this point, there should be lots of stuff happening in your terminal window – partitions being created, .img files being copied across. If you look at the screen of your Transformer, there should be some small white text in the top left corner about being in nvflash mode.
Hopefully everything will copy across correctly, and ostensibly Ubuntu is now installed. If you now power off your Transformer, unplug the USB power cable and power back on, it should boot into Ubuntu. However, there are a few more steps worth doing.
8. Power your tablet off again. Now, hold the Volume down button and the power button at the same time. The machine will start to boot, but there will be some small white text in the upper left corner of the screen. When this appears, let go of the two buttons and press the Volume up button. This will now take you into the CWM recovery mode.
9. Navigate through the menus here to install a zip from SDCard. Choose the Android.Zip file and install. Then reboot the Transformer. You will boot into Android.
This is how you dual boot at the moment. Every time you wish to switch operating systems, you will need to go into CWM recovery, and install the alternate zip file. Slightly painful, but the good news is that all data and settings are saved in the actual operating system. All you are really doing each time is installing a new boot sequence.
There are still a few other things worth doing. One of these is installing some additional firmware so that WiFi actually works in Ubuntu. To do this you will need to enter ADB mode.
10. Follow the tutorial on this page, including downloading the Android SDK, and additional Platform Tools file (read the documentation included in the SDK download).
11. Download and extract the flash kit found in this post.
12. Connect your Transformer to your Linux computer again using the USB power cable. Turn the transformer on, allowing it to boot into Ubuntu. Wait at the login prompt.
13. On your Linux computer, you should be in ADB mode. From the regular command prompt run the firmware injector script from the downloaded flash kit in Step 11. If all goes well, and your are successfully in ADB mode, there should be no errors reported by the script while copying the files across.
14. After now booting into Ubuntu and setting up the general parameters, WiFi will need to be configured using WPA Supplicant. Currently Network Manager doesn’t seem to work, so this is the only known way. Follow the instructions here with regards to how to do this. You may need to change eth0 references to wlan0. You could also try the guide here, but there are lot of places online to find WPA Supplicant help.
With luck and a following wind, everything should be working correctly. The experience is a little slow, as hardware acceleration is not yet working. I am thinking of trying Openbox as an alternative window manager to see if that improves things any. Also worth noting is that the docking station trackpad does not work, nor does sound, Bluetooth or HDMI out. The touchscreen works for mouse clicks and scrolling is achieved by moving the application scroll bars (not from anywhere on the screen, like in Android). I am sure these things will be rectified or improved in the coming months, just keep an eye on the XDA Developers thread about this for up to date details.