Install Ubuntu on Nexus One

After a successful port of Ubuntu and Android on HD2, developers from Xda have successfully ported Ubuntu to Google  Nexus One.

With this guide you can DualBoot Android with Ubuntu on Nexus One.

All you need is a rooted Android Nexus One, but if your phone has similar hardware, you might get lucky on other phones too.

Note from developers at Nexusone hacks: This Ubuntu install will not affect your existing Android system, the Ubuntu terminal will run in the background while the Ubuntu X11 graphical user interface will run as an app under Android VNC app.

How to Install Ubuntu 9.1 on Nexus One

Download : ubuntu.zip [Megaupload] | Mirror: ubuntu.zip [FileFactory]

Note: For people having trouble getting it to work (thanks to people testing it at XDA Developers), try downloading the new bootubuntu file here.

Step 1. On your rooted nexus one, install the latest Busybox.

Step 2. Once you have a “rooted” Android phone, you will be able to run Ubuntu under Chroot.

What is Chroot: Chroot is the ability to run other operating systems under your current system (in this case Android).  So its as good as running apps on VMware or Virtualbox. You can only “chroot” another operating system made for your system’s architecture, in this case its ARM.

In this case, we are lucky because Ubuntu has an ARM-port.   It’s most likely the case that you can also “chroot” other linux devices that support ARM.  I am also working on chrooting other popular distros like Fedora, Gentoo, and more.

Step 3. Copying files for chroot:  image file of Ubuntu ARM, setup script file (ubuntu.sh), chroot boot/launch file (bootubuntu), unionfsfsrw, and mountonly.

Copy these six files over into your SD card’s root folder under folder name “ubuntu”.

Step 4. Next, “Turn off USB storage” on your phone, connect usb and check if SD card is accessible from ADB Shell (component of Android SDK). (make sure USB debugging is enabled)

Go to your Android SDK Tools directory such as c:\fx\android-sdk\tools and type “adb shell“.

Step 5. Once you are in the ADB shell, you should see a “#”symbol.  Type “su” to enter superuser mode.  Btw, if you get error here, that means you have not rooted your phone!

Step 6. Next, type “cd /sdcard/ubuntu“, which will take you to the directory where you’ve copied the Ubuntu files over to. Type “sh ./ubuntu.sh” to run the setup script.  You only have to run this once or whenever you change the script file bootubuntu.

Step 7. Type “bootubuntu” to “chroot” or boot into your new Ubuntu on your Android!

You should see  “localhost” sign, congratulations!

But, there’s no UI till now, its all command line, proceed to next step if you need the UI.

Step 8.Installing UI elements: We will install some mandatory UI stuff from apt-get. In the terminal type thee commands one by one: “apt-get update” to update your Ubuntu packages followed by : “apt-get install tightvncserver” to install the TightVNCServer and “apt-get install lxde” to install the LXDE.

Step 9. Setting Screen resolution: run the following commands:

export USER=root
vncserver -geometry 1024×800

Here you can also change 1024×800 to the exact resolution of your Android phone’s LCD resolution,  Nexus One has 800×480

Next,  add the following to /root/.vnc/xstartup file using cat command:

cat > /root/.vnc/xstartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
icewm &
lxsession

Then hit Ctrl+D twice and Enter key.

Step 10. Next open up the Android VNC app on your Nexus One/Android phone and enter the password you set earlier in step 13 and set the Port to 5901.

Step 11. Next hit connect and voila, you should get something like this, a cool GNome Ubuntu screen!!!

Step . AutoRun VNCServer: Let’s add some code to the /root/.bashrc file:

cat > front
export USER=root
cd /
rm -r -f tmp
mkdir tmp
cd /
vncserver -geometry 1024×800

Then hit Ctrl+D twice and Enter key.

cat front /root/.bashrc > temp

cp temp /root/.bashrc

To check that it’s working you can exit out of Ubuntu back into Android shell:

exit

bootubuntu

Now everytime you chroot/boot your Ubuntu, the VNCServer is start automatically at start-up.

You can use Terminal Emulator app (freely available on Android market) to start the Ubuntu chroot by entering:

su
bootubuntu

so you don’t need to connect  to ADB shell to launch Ubuntu, giving you the freedom to use Ubuntu along with Android whereever you go.

Now fire up your VNC client from Android (available in market) and configure it to connect to localhost.. Boom, you’ve the Ubuntu running.

via NexusOne Hacks

We write about Latest in tech, AppleiPhoneAndroidTabletsGadgetsOpen SourceProgramming. Grab them@taranfx on Twitter or below:

That’s it!

GD Star Rating
loading...
GD Star Rating
loading...

1 thought on “Install Ubuntu on Nexus One”

  1. Hi,
    This is really cool.. but i one question how do i uninstall ubuntu from my nexus one if don't want to use ubuntu any more, or if i want to install some other os on it…??

    GD Star Rating
    loading...
    GD Star Rating
    loading...
    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.