[Droid 2 General] problematic:
Skrulladams figured out a way to get Linux onto the Droid X, Droid 2 / Global, Droid Pro, and DEFY (Really any modern motoblur phone with a locked bootloader.) Supposedly the Atrix has it as well? Technically, according to wikipedia, motoblurexists on the CLIQ/DEXT, Backflip, Devour, Flipout, Charm, and Flipside as well. I can't tell you whether or not this method works for those phones, maybe somebody could verify. While I was researching methods to get this all to work I found different methods for the original Droid, I am assuming that the version of blur on any phone from the OG droid/milestone is different, because the installation method seems somewhat less locked-down.

First you will need a Linux image. I suggest getting yours from Ruan over at androidclone.com

Ubuntu Laika-Beta1.2a.rar

The commands have to be issued from Linux or a virtual machine of Linux as far as I know. I downloaded VirtualBox and used a copy of Ubuntu 10.10 that I had laying around. You could use the image you downloaded above with VirtualBox. PuTTYcyg seems like a better alternative, but I haven't used it.

When setting up your linux virtual machine you might want to make your username "noob" like I did, it will allow you to copy and paste my commands.

The first thing you will need is the android sdk.

Click here to get it

Using and installing it is a little confusing. I just extracted it to my desktop.

You will have to run /tools/android, I did this by dragging and dropping the icon into a terminal window and hitting enter. You have to install the platform-tools. ADB will be downloaded to the platform-tools folder inside the SDK folder.

VirtualBox allows you to capture a USB device inside your virtual machine inside the menu. Devices -> Motorola ####

Inside your virtual machine you will need to copy ubuntu.img from the Laika-Beta1.2a.rar you donloaded earlier to your home directory. While still in the home directory create a new folder simply called "ubuntu."

Your phone has to be rooted and you need a terminal emulator. Most custom ROMs have this by default, but there are many options.

Next, open up a terminal emulator on your phone and execute some commands:

su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
mkdir /data/local/mnt

Back on your virtual machine in a terminal:

sudo losetup /dev/loop0 /home/noob/ubuntu.img
sudo mount -t ext2 /dev/loop0 /home/noob/ubuntu

Dirty_Jerz has an alternate method, Click here for his thread. so it is now up to you whether you'd have everything on your internal storage or SD card. My method uses the internal storage, his uses the SD card. If you'd rather use his, stop here.

Here you will want to remove a symbolic link in /home/noob/ubuntu/usr/bin that screws this method. You can do this by:

sudo rm /home/noob/ubuntu/usr/bin/X11

Then I remove security stuff:

sudo chmod 777 /home/noob/ubuntu
sudo '/home/noob/Desktop/android-sdk-linux_x86/platform-tools/adb' shell
chmod 777 /data/local/mnt
exit
sudo '/home/noob/Desktop/android-sdk-linux_x86/platform-tools/adb' push /home/noob/ubuntu /data/local/mnt

This is going to take about 2 and a half hours so I suggest you find something else to do while it copies over.

When it's all done you will need to copy a script over in order to chroot (boot from inside android) into Ubuntu.

This script belongs in /system/bin so you will have to put it there. The easiest way to do that would be to copy it to your sdcard and then use your terminal emulator to move it.

su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
cd /sdcard
cp bootubuntu /system/bin
cd /system/bin
chmod 777 bootubuntu

Now you can boot into Ubuntu from any directory as long as your terminal emulator has superuser.

su
bootubuntu

Once inside there are some commands that need to be run in order to get a functional UI.

I got these from this site He seems to have a lot of extra configuration instructions which may or may not help you.

mount -t devpts devpts /dev/pts
mount -t proc proc /proc
mount -t sysfs sysfs /sys

-Xvnc commands-

export DISPLAY=localhost:0.0
Xvnc -localhost -geometry 854x480 -depth 24 -deferupdate 0

-start your gui-

startlxde

I prefer xfce though, personally.

--------problems----------

"/bin/sh can't access tty: job control turned off" upon chrooting

Terminal emulators from within the UI don't work.

*DRIVERS*

Touch screen support/UI enhancements for touch screen.

androidVNC

Might not be an ideal solution. I still noticed what seemed to be some graphical lag. There could be a setting that can get it running better, but an app optimized for high speed localhost operation

Chrooting a prebuild image causes all kinds of problems because the proper post-installation scripts are not run. Some programs ignore these errors, and for others they error out. I have yet to find a good solution for this but I have found hints:

Check out this page

Seems a little outdated, but maybe somebody will find a way to make a method like this work.

What we really seem to need is a custom kernel/ROM/distro team that can work on these issues.

-----other alternatives?-------

First I tried kubuntu mobile. It was very buggy so I gave up on it.

Ubuntu netbook edition has been slammed by some for being bloated, but it's ARM port should be lightweight. From screenshots it looks like it has a great UI. The problem is getting gnome to start, it encounters some error and doesn't load.

fedora has a mobile edition that looked good, I think they are somehow involved with Meego which now seems doomed. I'm not sure how similar to android it is or if it is worth the effort.

Check this out

Many of you may already know about the QEMU for android app, but we should be able to cross-compile it to use within our chroot.

I looked into wine, it should be a dead-end since we aren't on x86 architecture and it doesn't do any emulation.

VMware will be releasing a version for android.

Also while playing around I thought about porting iOS on to an android phone. It should be possible.

Pics!