An Ubuntu can be installed in a chroot, and accessed through a VNC client.
Why do this? You run Android and Ubuntu at the same time. Just press Home and you're back in Android. WiFi works out of the box - Ubuntu just picks up Android's connections. It's relatively stable. Also, this is a well-understood technique - people did it with many phones. Why not do this? The graphics performance is abysmal. You view Ubuntu through a VNC client, and with 1024×600 it's really slow. Sound doesn't work out of the box (but you can listen to music through the Android player while working in Ubuntu) Many keys don't work: ctrl, alt, pgup, pgdn, tab (tab emits an X event however, just the wrong one). Esc works. Right and middle clicks don't work too. You have to go through VNC client menus to send a right click. Chromium doesn't work out of the box. HOWTO Prerequisites - root, busybox
1. On the desktop, mount the AC100 storage. Make sure you have exec and suid mount options. Then run 'debootstrap–arch=armel maverick <directory>' into a directory, say 'ubuntu'. Unmount.
2. On AC100: $ su # export PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH # export USER=root # export HOME=/root # export TERM=xterm # busybox mount -o remount,exec,suid /storage # cd /storage/ubuntu # busybox mount -o bind /proc proc # busybox mount -o bind /sys sys # busybox mount -o bind /dev dev # busybox mount -o bind /dev/pts dev/pts # busybox chroot . bash root@localhost:/#
That's the Ubuntu shell!
3. apt-get install lots of stuff. I feel ubuntu-desktop is too fat, but opinions vary. In the very least, we need tightvncserver and some window manager.
4. Set your timezone with dpkg-reconfigure tzdata.
5. Create a user with adduser username. You must also create a group with numeric ID 3003 and add yourself to it, otherwise vncserver's sockets will be blocked! So, addgroup –gid 3003 sockets usermod -G sockets -a username
6. Su to the user and create a file ~/.Xsession. Write there a list of stuff you want to run for a session, like a window manager. Here's an example: xterm & tint2 & openbox
7. Run vncpasswd to set a vnc password, then run vncserver -geometry 1024×600. It will tell you the VNC display number, most likely :1.
8. Install android-vnc-client and connect to 127.0.0.1:5901 (actually, 5900 + the VNC display number).