Droidora
The Droidora project aims to port Android to the Pandora. There's a Git repository containing a pre-compiled root-fs and also sources for further development. This page aims to provide assistance in using and/or compiling the Droidora project.
Contents |
Current Status
Here's a small overview of the current status (August 17th 2011):
| Kernel version: | 2.6.37 |
| Android version: | Gingerbread 2.3.4 |
| Wifi: | Working |
| Touchscreen: | Working |
| Keyboard: | Working with wrong key mapping |
| Gaming controls: | Working but not fully or wrong mapped |
| Power management: | Semi. Enabling stand-by works, shutting down works kinda |
| Audio: | Not working (not tested) |
| Graphics acceleration: | Not working (incompatible kernel / graphics revision) |
| SD cards: | Not working (not tested) |
| Bluetooth: | Not working (not tested) |
| USB host port: | Not working (not tested) |
Prerequisites
This page is tailored to use with Ubuntu 11.04. These steps may work on other distributions, but it is not guaranteed. These steps will NOT work on Windows!
If you only want to use Droidora, downloading Git will be enough:
$ sudo apt-get install git-core
If you want to compile the project you will also need Python (get it from here) and Repo:
$ curl https://android.git.kernel.org/repo > ~/bin/repo $ chmod a+x ~/bin/repo
You can change the location of the tool if you like. Further information about Repo can be found at here. For additional required packages please refer to 4 Compiling Droidora.
Pre-compiled Droidora
Downloading
If you want to download the pre-compiled Droidora project, type this into your terminal:
$ git clone git://gitorious.org/droidora/compiled.git
You'll then find the kernel image (uImage), the packed root-fs (rootfs.tar.bz2) and the u-boot configuration file (autoboot.txt) in your home directory in 'compiled'.
Using
You have to prepare a sd-card with two partitions. GParted is recommended. One partition should be FAT32 for the kernel image and u-boot configuration file. This one doesn't have to be very big, 100 MB should be sufficient (for better handling, name it 'boot'). The second partiion should use the EXT2 file system. EXT3 should work fine, too but it will require to edit the autoboot.txt (name this partition 'rootfs').
After preparing the sd-card copy both the uImage and the autoboot.txt file to the first partition of the sd-card. After that unpack rootfs.tar.bz2 onto the second partition:
$ sudo tar xjvf rootfs.tar.bz2 --numeric-owner -C /media/rootfs/ $ sync
Before you can use Droidora now, you'll have to set the proper rights:
$ sudo chmod 777 -R /media/rootfs/* $ sudo chmod 6755 /media/rootfs/system/xbin/su $ sync
The first command will make every binary executable (actually every file, but this way it's easier) and the second one will set the right uid for su to gain root access.
That's it. Insert the sd-card into the left slot and switch the Pandora on (NOTE: You can rename autoboot.txt to boot.txt if you don't want to automatically boot from the sd-card. If you don't hold the R-Button when turning it on the Pandora will boot from the NAND). The first boot may take a while, but after that it'll happen pretty fast.
NOTE: If you run into a kernel panic saying Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2) you may need to turn the Pandora off, remove the sd-card and insert it back in. Alternativelly you might try to increase the rootdelay option in the autoboot.txt (to 5 or so). It's unknown whether that's a problem with the Android Root-FS or a hardware defect.
Have fun!
Compiling Droidora
Required packages
Download the needed packages according to the AOSP page:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs uboot-mkimage \ x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \ libgl1-mesa-dev ncurses-dev g++-multilib mingw32 dos2unix tofrodos
You will also need the Sun Java 1.6 JDK:
$ sudo apt-get install sun-java6-jdk
Compiler
To compile the Android platform you need a suitable ARM compiler. The kernel was built using the CodeSourcery G++ ARM GNU/Linux compiler. You can download it from here. Please make sure to download Sourcery G++ Lite 2010.09-50, as the newest version will cause some problems. After downloading the compiler, execute the installer:
& ./arm-2010.09-50-arm-none-linux-gnueabi.bin
Follow the instructions to complette installation. When the installation is completed you have to add the compiler binary to your PATH environment variable by adding following command to your .bashrc file in your home folder:
export PATH=/opt/CodeSourcery/Sourcery_G++_Lite/bin:$PATH
You'll have to modify the actual path so it points to your install location.
After that you should have everything to compile Droidora.
Downloading Sources
Getting the official Android platform
After downloading and installing the Repo tool (see 2 Prerequisites) you'll first have to download the Gingerberad sources from the official repository:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1 $ repo sync
It will take a while to download all sources.
Getting the Droidora sources
Create a new folder for the Droidora sources and download the sources:
$ mkdir droidora $ cd droidora $ git clone git://gitorious.org/droidora/makefile.git $ git clone git://gitorious.org/droidora/frameworks.git $ git clone git://gitorious.org/droidora/external.git $ git clone git://gitorious.org/droidora/device.git $ git clone git://gitorious.org/droidora/kernel.git
In the future there may be a script to make it easier to download everything.
Preparing Droidora compilation
After downloading the Droidora sources you have several folders: device, external, frameworks, kernel. If you don't plan to upload anything to the official Android repository, you may copy these folders over to the folder containing the Android platform. Otherwise, you have to copy the folder / files within each of this folder into the corresponding folder of the Android platform (e.g. wpa_supplicant_6 from the external folder into the external folder of the Android platform). Just make sure to overwrite every file.
Copy the Makefile from the makefile folder over to the root Android platform folder (make sure to delete the old Makefile).
If your development system runs with a 32 Bit environment (CPU and OS) you'll have to modify some files to be able to compile the platform, otherwise ignore the following and proceed to the last step.
Here are the files that need to be edited in the Android folder:
- build/core/main.mk
-> Replace
ifneq (64,$(findstring 64,$(build_arch)))
with
ifneq (i686,$(findstring i686,$(build_arch)))
- external/clearsilver/cgi/Android.mk , external/clearsilver/cs/Android.mk , external/clearsilver/java-jni/Android.mk , external/clearsilver/util/Android.mk
-> Replace
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
with
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
Compiling
If you followed all steps above all you need to do is to compile the Droidora project. Navigate to the root folder of the Droidora project an run following command:
make -j2
Replace -j2 with the count of cores your system uses (e.g. -j4 for quad core). It is not recommended to build the platform with a single core CPU, as the procedure takes very long. After the compiling is finished, you'll find the kernel image uImage in kernel/arch/arm/boot and the rootfs.tar.bz2 archive in out/target/product/pandora.
Contributing
-
Benchmarks
-
Tips and Problems
None.
Feedback and Suggestions
-
Useful Links
SlideMe Market Alternative (Suggested by Lord Moonscar)