UPDATE 4/10/11: Now you can enlarge your Xoombuntu install! http://trsohmers.com/2011/04/10/how-to-expand-xoombuntu-disk/
UPDATE 4/2/11: Here’s the fix! http://trsohmers.com/2011/04/02/ubuntu-for-xoom-fix/
UPDATE 3/20/11: OK, so I modified a couple of steps to make the system a bit faster, and I am going to be releasing a small path tonight to fix some issues people have been having with the install.
UPDATE 3/7/11: I made a stupid mistake in the bootubuntu file… sorry about that guys. What you need to do is edit your bootubuntu file to what is here…… just open up bootubuntu in your favorite text editor (Notepad, TexEdit, etc) and copy and paste what is there. I will continue to update that file, so if there is ever any changes to the bootubuntu file…. it will be there.
I am also planning on releasing a new version this coming weekend with some fixes and small improvements… plus a install tutorial video, and usage tutorial video.
If you have any issues, feel free to leave a comment on this page, tweet me @trsohmers, or send me a message using the “Contact Me” form on this site.
Yesterday I posted simplified instructions for unlocking the bootloader and rooting the Motorola Xoom on Mac OS X, and today I have full instructions on how to install and run Ubuntu on your Motorola Xoom tablet. The method this uses is to install Ubuntu in a chroot “jail” to keep it separate of all Android processes… similar to how a Virtual Machine (Virtualbox, Parallels, VMware) runs an x86 operating system (Windows, OSX, Linux) on an x86/x64 machine. Since the Xoom and most Android devices run on an ARM processor, you can only run an operating system made for ARM, so I am using the ARM version of Ubuntu version 9.10.
Here is a video of it I posted on Youtube:
NOTE: Even though this is running in a chroot jail, and I am 99.9% sure this will not cause any harm to your device, I can not be held responsible for anything that may happen to your device. Just by rooting and unlocking your device (which you have to have done already to do this) COULD void your warranty and/or brick your device. Then again, you COULD be struck by lightning 42 times the next time you walk outside your house… it is highly improbable unless you go outside in a thunderstorm with a lightning rod.
NOTE 2: The install files for this are about 660mb zipped, and once expanded the files are about 2.5gb.
STEP ONE: Setting up your enviornment
NOTE: I will be writing this from the viewpoint of a Linux/Mac user. If you are running Windows, just remove the ‘./’ from the commands.
NOTE 2: My Android SDK folder is /AndroidSDK/… please insert whatever the name of yours is.
1. I am assuming you have the Android SDK from when you rooted… if you do not, download it.
2. Please download this zip… this is the 660mb one, so it may take a while. Get your favorite drink, have a snack, and if you want you can skim through the rest of this while it is downloading.
3.OK, now that you have the ubuntu.zip file, extract it to AndroidSDK/tools/
4.Take the busybox and installbusybox.sh files and copy/move them to the root of the sdcard on your device… you can do that manually by plugging your xoom into your computer and browsing the directories (on the Mac you have to use the Android File Transfer application provided by Motorola).The other way is to use ADB push, and that is what I will explain.
(Make sure you have USB debugging enabled in Settings > Applications > Development)
4a.Open up your terminal application, and change the directory to your AndroidSDK/tools
4b.Type in ./adb push busybox /sdcard (It should tell you when it has done transferring)
4c.Type in ./adb push installbusybox.sh /sdcard (It should tell you when it has done transferring)
4d.Type in ./adb shell (This allows you to access the terminal on the device itself)
4e.Type in su (This gives the terminal Super User privileges. If you get the error “Permission Denied”, you have not rooted your device)
4f.Type in cd /sdcard (Changes the directory to the device’s sdcard. NOTE: The Xoom doesn’t really have an sdcard at release… but Motorola seems to have made a virtual one so devices that require an sdcard still run.)
4g.Type in sh installbusybox.sh
After that is complete, busybox should be installed. Try entering a command like cp and see if it displays anything. If not, reboot the device (./adb reboot) and try the cp again.
5. Now that busybox is installed, lets get to actually installing Ubuntu. You now have to move all the files in the Ubuntu folder (minus busybox and installbusybox.sh) to /sdcard/ubuntu …. you can do this using a method other than ADB push, but I will explain it the ADB push way.
5a.Type in ./adb push fsrw /sdcard/ubuntu (It should tell you when it has done transferring)
5b.Type in ./adb push mountonly /sdcard/ubuntu (It should tell you when it has done transferring)
5c.Type in ./adb push ubuntu.sh /sdcard/ubuntu (It should tell you when it has done transferring)
5d.Type in ./adb push ubuntu.img /sdcard/ubuntu (It should tell you when it has done transferring)
NOTE: This file is over 2gb’s! It will take a while to transfer, and on average it takes 25-30 minutes. Time for another snack break.
5e.Type in ./adb push unionfs /sdcard/ubuntu (It should tell you when it has done transferring)
STEP TWO: Installing Ubuntu
6. OK, lets get this installing. You are going to be going to be going into the shell again, so follow these commands:
6a.Type in ./adb shell (This allows you to access the terminal on the device itself)
6b.Type in su
6c.Type in cd /sdcard/ubuntu
6d.Type in sh ./ubuntu.sh
It will give some errors, but as long as it gets to “To enter the Debian Linux Console type in ‘bootubuntu’”, you should be good. Congratulations, Ubuntu is now installed.
7. OK, now that Ubuntu is installed… you want to turn it on, right? now Type In: bootubuntu and you should give you a new line saying “root@localhost:/” Congratulations, Ubuntu is now running. If it is not running, try to Type in su bootubuntu and then bootubuntu again. If that does not work, try rebooting your device and do it again… if it is still not working, try going through steps 5-7 again. If you have any more issues, feel free to comment here and I will try to help you.
STEP THREE: Setting up Ubuntu
8. You should still be in the shell and at the root@localhost entry. You are now entering commands through your terminal, into Android’s terminal, which is entering into Ubuntu’s terminal (What is this, Inception?). Like all operating systems, you need to update them… but with Ubuntu, this is quite easy.
8a.Type in apt-get update
8b.Now we are going to add a “head” to this “headless” OS. Since Android is the main operating system on here and Ubuntu has nothing to display on, we are going to output X windows (The GUI Linux OSs) to VNC. Type in apt-get install tightvncserver
8c.Once tightvncserver is installed, type in apt-get install lxde
8d.Type in export USER=root
8f.Type in vncserver -geometry 1280×800 (Resolution of the Xoom’s display. You can experiment to find a resolution you like.. you can type this command whenever to change the resolution)
8g.It should ask you for a password for your VNC… you can use something simple like 123 since you are the only one who can access it since it is only on your device.
9.Now we are going to change some settings to make the VNC experience better….
9a.Type in cat > /root/.vnc/xstartup
9b.Type in #!/bin/sh
9c.Type in xrdb $HOME/.Xresources
9d.Type inxsetroot -solid grey
9e.Type in icewm &
9f.Type in lxsession
10.Press CNTRL+D, and then enter this…
10a. cat > front
10b. export USER=root
10c. cd /
10d. rm -r -f tmp
10e. mkdir tmp
10f. cd /
10g. vncserver -geometry 1280×800
11.Hit CNTRL+D again, and enter this…
11a. cat front /root/.profile > temp #Thanks David Tangye
11b. cp temp /root/.bashrc
12. Now you can exit out of the Ubuntu terminal by typing exit
13.Reboot your device
13a.Install a VNC app from the market such as this Android VNC (Free)
13c.Now you can use the ADB shell again, but I suggest doing this on the device using one of the Terminal Emulators.
13c.su (If the Superuser app asks for permission, press yes)
13c.OK, you should see the same thing as you did on your computer screen. Now go back to your homescreen, and open your VNC client.
13d.Now, in the Nickname spot, put ‘Ubuntu’ or whatever you want.
13e.In the password spot, put whatever you put for a password earlier.
13f.Leave the address blank.
13g.Set the port at 5901.
Set the color format to 256 colors (1 bpp) for the best results.Then you press the Connect button, and you are on Ubuntu!
14. Some information:
1.Tap to click, pretty simple.
2.Double tap for right click.
3.You can switch in and out of ubuntu… just click your home button or the task manager button.
4.You should be automatically connected to the internet since it shares the device’s internet connection. So this will work on 3G, 4G, Wifi, or not having any connection. I am also going to see if I can transfer files between Android and Ubuntu since they should be on the same ‘network’.
That about wraps it up! Hope you will enjoy Ubuntu on your Xoom!
Thomas Sohmers -Writer of this guide, file modification for the Xoom
Max Lee -Original hacker which did this on the Nexus One.
Charan Singh -Original installer file creator
Koush -Rooting the Xoom