[HTC Desire S] devwithzachary:
I will no longer be updating this guide, to keep up to date with the project please see the App thread HERE. The Free app can be downloaded HERE and the Paid HERE

First and for most this guide has been created from a mixture of a few guides to get it all working on our phone, I do not take any credit for the methods all I have done is taken the time to work out how to get it working on our phone. This guide is for windows or can be done all on the phone. Anyway on with the guide

How To Install Ubuntu on the Desire S

Before we start you will need a ROM and kernel that supports loop devices.

This works best on lighter roms like cyanogenmod 7.1, however if you don't want to run a GUI it also works fine on sense ROMS. Please post any ROMS it doesn't work on.

It is also recommend that you have the Android SDK install so that you can access adb however all commands can be done on the phone via the terminal emulator

Also make sure that you have debugging mode enabled Go to Settings->Applications->Development and make sure USB Debugging is checked ON.

You will also need atleast 4GB of memory card space

Download and extract ubuntu.zip

Once you have a working ROM with loop support you must now download the special modified ubuntu image. I have hosted the file on my own server however if this is not quick enough feel free to mirror it or message me and I shall host else where as well.

There are now three versions to use as you wish, however the new 10.10 image has pretty much everything working, see change log at the bottom of the next post. the 11.10 image's UI does not work right and the 9.04 image is well rather old :P

[*]10.10 image V3 (Recommend)

[*]10.10 image V2 [*]10.10 image OLD

[*]11.10 image

[*]Old 9.04 image

Once you have downloaded this .zip file you will need to extract it to a folder on your sdcard name this folder "ubuntu".

Install and run Ubuntu!

If you do not have the android SDK install or wish to do all the commands via your phone please skip to step 7

1) Connect your Desire S to your computer via your USB cable and make sure USB mode is set to “Just Charge”.

2) Your Android device should be recognized as “ADB Device” under Device Manager. If not, install appropriate drivers.

For all HTC Android smartphones/tablets (such as G2 Phone, Nexus One), you can download Windows drivers here:

HTC Windows 64-bit driver download – Click Here to Download Driver

HTC Windows 32-bit driver download – Click Here to Download Driver

3) Now open a command window and navigate to the directory that you have installed the android SDK for example

cd c:\android-sdk

4) From here then navigate to the platform-tools directory

cd platform-tools

5) Now type “adb devices” to double-check your Android device is recognized. It should display something along the lines of

Lists of devices attached
HT09SR204261 device

If not then you have not installed the drivers for your phone or it is not in debugging mode.

6) Next type “adb shell” to enter the Android shell

7) Now type su to enter super user mode, then type cd /sdcard and then cd ubuntu to enter the directory on the SD card that you stored the ubuntu files.

su
cd /sdcard
cd ubuntu

8) Then type sh ubuntu.sh this will run the included script to ready your ubuntu image, do not worry about any error messages that are displayed!

sh ubuntu.sh

8.5) If running the 10.10 V2 image you should get this message 'please wait while booting the ubuntu img, please wait as this could take a while.' if you do get this then ubuntu is running and you just need to open vnc and connect to get into ubuntu. Please see the bug section on the third post for more information!

9) Now type bootubuntu to enter ubuntu (note in the future to start ubuntu simply type bootubuntu there is no need to run the script again)

bootubuntu

You should now see something along the lines of

root@localhost:/#

If you don't then its likely the ROM your using does not support loop devices and you will need to install one of the ROMs from the top of this guide to get it working.

And thats it you now have a working ubuntu command line running within android! however this isnt really much use so lets now get a more useful system running :D

How to Install TightVNCserver

This is by far the best program to install first off as it will let you access the GUI of Ubuntu as it run on your Desire S. (note this is already included in the 10.10 (V1 and V2) image there is no need to carry out this step)

0) Before you install any program first we need to update by typing

apt-get update

1) Now type “apt-get install tightvncserver” to install the VNC server.

it shall then as you if you wish to install the program etc etc say yes and it will install, simples.

How to Install LXDE (optional but recommended)

only need to carry out this step if you are using the 9.04 image

1) Type “apt-get install lxde” and ubuntu will do the rest ;)

Set up TightVNCServer and fix keyboard issues

(note on the 10.10 image this step has been included already! so no need to carry it out)

Before we launch the TightVNCServer we much make changes the the xstartup file to change to it uses LXDE if we want this and also to fix a big issue with the android keyboard not being mapped correctly.

1) Start off by typing

cat > /root/.vnc/xstartup

To open the file we need to make changes in

2) Now type

#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
icewm &
lxsession

The last two lines you will only want to type if you have installed LXDE if you want to use XFCE leave these lines off. The line above this (export XKL_XMODMAP_DISABLE=1) is what is needed to fix the keyboard mapping.

3) Now press ctrl+D twice and then press enter to the save the file, we are now ready to start up the VNCServer!

Start TightVNCServer

Now we are ready to start the server and connect our phone or windows computer to the Ubuntu running within our phone! (This step is not needed in the new 10.10 V2 image VNCserver now auto starts)

1) Start off by typing

export USER=root
vncserver -geometry 1024×800

you can change the resolution settings 1024×800 to the resolution of your liking. I find 800x480 does work well but limts your work space so its up to you.

2)TightVNCServer will then ask you for a password to connect to it, fill this in and your server will be then ready to accept any incoming connection from your phone or computer! (on the 10.10 image it will not ask for this, the password is set to ubuntu)

Connect to VNC on your phone

1) download the free app Android-VNC-viewer

2) open the app and set your IP address to 127.0.0.1 ( set this to localhost in 10.10 V2) and port number 5901 (5900 in 10.10 V2)and enter the password you set before (or ubuntu on 10.10 images) to then connect.

If all works right you will have a working GUI!!!

Connect to VNC on your computer

1)Start by downloading the desktop version of TightVNC Here

and install it

2) Open the TightVNC Viewer from the start menu it will ask for your phones IP address, to find this type ifconfig in your ubuntu terminal it will display your IP.

3)Type this into TightVNC and remember to add the port 5901 (5900 in 10.10 V2), it will then ask you for the password ('ubuntu' on 10.10 image) , enter this and you should then have a fully working GUI on your computer!