[HOWTO] All-in-one solution for Ubuntu 10.10 Linux on Android
Links to Ubuntu 10.10 Image and Startup Script (around 1.5GB download):
NOTE: YOU NEED SPEEDMOD KERNEL FOR THE GALAXY S FOR THIS TO BOOT
OTHER USERS ENCOUNTERING ERRORS MAY LIKE TO TRY REMOVING "-o noatime" FROM ubuntu.sh OR RE-INSTALLING THE LATEST BUSYBOX
MD5 Sums (in case any of the downloads corrupt)
Open with 7Zip or similar to unzip.
What is this?
An ubuntu 10.10 maverick (with LXDE window manager) machine in your pocket. Perfectly usable from the phone itself using a VNC client, this allows you to install any ubuntu software onto your phone and have it with you always. Coupled with the (potential) ability for your phone to be hooked up to a television with TV Out (works with the Nokia TV Out cable available on eBay), and for (supposedly any) HID-compliant bluetooth keyboard and mouse to be linked up to the phone (requires Android 2.2), this really does become a PC in your pocket.
- android phone
- superuser + busybox
- 3.5GB virtual machine image (ubuntu.img) with ubuntu and certain applications pre-installed (listed below). The image is resizable with uec-resize-image, although FAT32 (the most likely format of your SD Card) has a maximum file size of <4GB.
- A script to boot into ubuntu from android (ubuntu.sh)
- A script to start the VNC Server and other startup commands. This is contained within the ubuntu.img file at /root/init.sh, accessible and modifiable once ubuntu.img has successfully booted.
How to boot:
- Place ubuntu.sh and ubuntu.img in the same directory in your SD storage.
- Enter a terminal and enter 'su' to become a superuser (root).
- Navigate to the directory where you placed the files (e.g. "cd /sdcard/external_sd/ubuntu").
- Execute the script by typing "sh ubuntu.sh".
Tip: Some android terminal emulators (e.g. better terminal) allow you to specify an initial command that is run as soon as you launch the application. Multiple initial commands can be defined by pressing return between each command when you define it, so for example the initial command:
cd /sdcard/external_sd/ubuntu <return>
sh ubuntu.sh <return>
will boot you into ubuntu and start the VNC server as soon as you launch the terminal application. All that remains is to VNC into it before you can start using it.
Note: I have noticed that some android apps with process/activity management options (e.g. Spare Parts) possibly interfered with the running of Ubuntu and would kill "inactive" shell emulators (even when they were just idling) - thus killing the idling ubuntu environment. Also, I found it to be at its most stable after a fresh reboot of the phone.
How to connect:
Once you have booted the image (see instructions above), you simply need to fire up your VNC client of choice (androidVNC or pocketcloud VNC are good options), and simply add a new VNC server with address localhost, port 5900, and password 'ubuntu' - then hit connect.
- androidVNC has the advantage of pinch to zoom and generally feels nicer - set colour to 24bpp when adding the connection, and Input mode to touchpad once connected (this sometimes resets and needs re-doing at the start of a session).
- pocketcloud VNC has the advantage that no intermediate text input window is required when doing text input and may be preferred by some people.
- It has been suggested that the Dingul hangul keyboard is good for direct access to common command line characters such as / and * etc. It is however in Korean but can be set to use a QWERTY keyboard.
What software is pre-installed?
Base System (with all updates as of 19/02/11:
Ubuntu 10.10 (Maverick) Core
LXDE (Lightweight Windows-like GUI) with tightvnc server.
Applications (with all updates as of 19/02/11):
Firefox, Thunderbird, openoffice.org suite, GIMP Image Editor, Emacs Text Editor (geared towards programming), C and C++ build-essential, Java JDK, Python, TeXlive and TeXmaker LaTeX editor, Transmission BitTorrent Client, eVince PDF Viewer, File Manager, Terminal, Image Viewer, Leafpad Text Editor, Synaptic Package Manager and Ubuntu Software Center with all repositories enabled (Ubuntu Software Center is pretty and well organized - but bloated and slow), SSH server, Gnash (GNU flash player/plugin for Firefox - as there is no official generla flash pluging for armel CPUs)..
Obviously, you are free to add and remove apps as you see fit (through Synaptic or Ubuntu Software Center)..
I hope people find this useful, and that it works without too many problems.
Martin Rhodes (email@example.com, fire314 @ XDA).
Note: If anyone ends up creating a custom ubuntu.img using rootstock, remember to create the directory /data/local/tmp within it as this is where the linux system will be expecting to find its temporary directory if booted (chroot'd) from android - and it is not there by default.