[Desire Android Development] KuRouZu:
First sorry for my English :P

All credits are for zedomax, who has gotten it to work in Nexus One and for Desire is practically the same.

Sorry about "h t t p" of link adress :P I am very new here.

Original howto -> h t t p : / /nexusonehacks.net/nexus-one-hacks/how-to-install-ubuntu-on-your-nexus-oneandroid/

For now, I've only gotten it to work with Windows 7 and "CyanogenMod 5.0.8" and "Defrost2.0c" ROMs. The rom is important for get this works.

Practically almost all the steps are the same as in the guide of nexus one by zedomax. Well go:

Before anything, download ubuntu.zip from original HOWTO and unzip it.

Now download the updated script from zedomax.

h t t p : / /zedomax.com/android/bootubuntu

and overwrite the bootubuntu file of unzipped ubuntu.zip

1. First, you will need a rooted Desire.

zedomax say that you must have the latest version of busybox 1.16.1 but in Defrost2.0c works with 1.16.0 and cyanogenmod has 1.16.1. So we ignore this step from original guide.

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

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

4. Put your Desire in recovery mode. And connect it to your computer via USB.

5. I am assuming you've already installed the Android SDK (while you were rooting your phone) so let's head to your Android SDK directory and load up ADB Shell.

For Windows, go to your Android SDK Tools directory such as c:\sdk\tools and type "adb shell".

(FYI, cd is the command you can use to browse to your sdk\tools directory. For Windows, do cd \sdk\tools and for Mac/Linux, do cd /sdk/tools.

For linux and Mac, go to your Android SDK Tools directory such as /sdk/tools and type "./adb shell" or it can also be "sudo ./adb shell" for Ubuntu.

6. Once you are in the ADB shell, you should see a “#”symbol. Great, let’s start bootin’ Ubuntu right away.

7. Next, type "mount system", press enter and then type "mount sdcard". If you get this "mount: mounting /dev/block/mmcblk0p1 on /sdcard failed: Device or resource busy" ignore it, sdcard is already mounted.

8.- Next, type "cd /sdcard/ubuntu"

9.- Now we will write separate commands instead of using a script to see if something has gone wrong easily. Copy and paste each line separately and hit Enter at the end of each command.

rm /system/bin/fsrw <--(this problably return an error, ignore this)

rm /system/bin/bootubuntu <--(this problably return an error, ignore this)

rm /system/bin/unionfs <--(this problably return an error, ignore this)

rm /system/bin/mountonly <--(this problably return an error, ignore this)

cp -f fsrw /system/bin

cp -f bootubuntu /system/bin

cp -f unionfs /system/bin

cp -f mountonly /system/bin

cd /sdcard/ubuntu

chmod 4777 * <--(this problably return an error, ignore this)

cd /system/bin/

chmod 4777 *

cd /

umount sdcard

umount system

exit

Now select "reboot system now" from recovery menu of your Desire. When android fully loaded you need load up again ADB Shell.

For Windows, go to your Android SDK Tools directory such as c:\sdk\tools and type "adb shell".

Type "su" to enter superuser mode. Is very important not to forget this!

type "mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system"

type "mkdir /data/local/mnt"

10. Once that completes, type "bootubuntu" to "chroot" or boot into your new Ubuntu on your Android!

If you get the "root_localhost:/#" sign, congratulations! You've just installed Ubuntu on your Desire/Android phone!

the hardest part is complete!. From now, follows the original guide for the "nexus one" to get access to Gnome (visual desktop).

Other problems like keyboard mapping can fix it follow the original post from nexus one forum:

http://xdaforums.com/showthread.php?t=718952

well, I hope this helps :)