I am porting Intel's 3D graphics stack to Android. After answering the same set of questions multiple times, I decided to compile some notes for others that are also working on Intel's Android graphics stack.
Android Resources
Wiki's and Websites
Two websites to become acquainted with are the Android-x86's wiki, specifically the build instructions [1], and Google's AOSP site, specifically the "Source" section of the site [2].
Gitwebs
Android-x86: http://git.android-x86.org/
ChadVersace's Mesa branch: ttp://cgit.freedesktop.org/~chadversary/mesa/log/?h=android-intel-staging
EugeniDodonov's kernel: http://cgit.freedesktop.org/~eugeni/kernel
EugeniDodonov's libdrm branch: http://cgit.freedesktop.org/~eugeni/drm
Android-x86 Graphics Developers
Chia-I Wu <olv@lunarg.com>
Downloading Android
Really, you should read [1] and [2] above. For those who don't have time to read, however, here's the quick instructions.
# Install Google's repo tool. cd ~/bin curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo diff <(sha1sum repo) <(echo "e1fd3bef059d152edf4d0522590725d317bc637f repo") chmod +x repo # Download the Android-x86 source tree. mkdir ~/android cd ~/android repo init -u git://git.android-x86.org/manifest.git -b gingerbread-x86 repo sync -j4
Building Android
Stock Android-x86
Android-x86 supports 3D acceleration on SandyBridge. To build an Android iso image with the Intel Sandybridge driver:
mkdir ~/my-android && cd ~/my-android repo init -u git://git.android-x86.org/manifest.git -b gingerbread-x86 repo sync -j4 source build/envsetup.sh lunch generic_x86-eng make BOARD_GPU_DRIVERS=i965 -j4 iso_img
The make target 'iso_img' is necessary only if you want to build a bootable image. Remove it if you're only testing the build.
You can avoid repeatedly invoking lunch and setting BOARD_GPU_DRIVERS by placing the variable definitions in buildspec.mk.
cd ~/my-android source build/envsetup.sh lunch generic_x86-eng > build/buildspec.mk echo BOARD_GPU_DRIVERS=i965 >> build/buildspec.mk ed buildspec.mk
Android-x86 with upstream Mesa
Mesa master now supports Sandybridge on Android. As of 2011-11-01.
To build an Android image with Mesa master, you must first update platform/external/drm to 2.4.27. To do this, pull from Eugeni's libdrm branch.
cd ~/my-android/external/drm git remote add eugeni git://people.freedesktop.org/~eugeni/drm git fetch eugeni git checkout eugeni/android-x86-2.4.27
Then pull from upstream Mesa. (Alternatively, you may wish to pull from my android-intel-staging branch, discussed below).
cd ~/my-android/external/mesa git remote add fdo git://anongit.freedesktop.org/git/mesa/mesa.git git fetch fdo git checkout fdo/master
Then build with the the i965 driver.
cd ~/my-android make BOARD_GPU_DRIVERS=i965 -j4 iso_img
Alternative Git Branches
Ivy Bridge backported patches for android-x86
http://cgit.freedesktop.org/~eugeni/kernel/log?=android-2.6.39-i915-backports
- git://people.freedesktop.org/~eugeni/kernel.git ; branch android-2.6.39-i915-backports
EugeniDodonov has backported the i915.ko patches from the 3.0 kernel to the 2.6.39.4 kernel used in Android-x86 project. To build an Android image with Eugeni's kernel:
cd ~/my-android/external/platform git remote add eugeni git://anongit.freedesktop.org/~eugeni/kernel git fetch eugeni git checkout eugeni/android-2.6.39-i915-backports cd ~/my-android make BOARD_GPU_DRIVERS=i965 -j4 iso_img
Mesa android-intel-staging
http://cgit.freedesktop.org/~chadversary/mesa/log/?h=android-intel-staging
- git://people.freedesktop.org/~chadversary/mesa.git ; branch android-intel-staging
I maintain a personal Mesa branch where I push Android fixes and features, often before they enter Mesa master. If you encounter Android bugs, then test with this branch before reporting; they may have already been fixed.
To build an Android image with this Mesa branch:
cd ~/my-android/external/mesa git remote add chadversary git://people.freedesktop.org/~chadversary/mesa.git git fetch chadversary git checkout chadversary/android-intel-staging make BOARD_GPU_DRIVERS=i965 -j4 iso_img


