<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.gumstix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kevin+Harrington</id>
		<title>Gumstix User Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.gumstix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kevin+Harrington"/>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php/Special:Contributions/Kevin_Harrington"/>
		<updated>2026-04-27T14:58:18Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5733</id>
		<title>Android Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5733"/>
				<updated>2011-12-03T15:02:20Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build Android from source [[Android_Source#Setup | from fresh]] or to update an [[Android_Source#Updating | existing source build]].  If you just want to [[Android_Usage | test drive Android]], you may prefer to use [[Android_Prebuilt | prebuilt images]].&lt;br /&gt;
&lt;br /&gt;
All the source code is freely available for download, customization, and improvement. This section explains how to set up a development machine to build all the required components from source. These instructions have been tested on Ubuntu Maverick (10.10) 32 and 64 bit machines; as a rough estimate, this process requires 10GB of hard drive space and takes 4 hours (30 minutes of setup, 1.5 hours to download code, and 2 hours to build) on a moderate development machine. Users with existing Android source can [[Android_Source#Updating | rapidly update]].&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Android requires Sun(tm) Java and some additional software packages. These instructions assume an Ubuntu system however for other systems, see [http://source.android.com/source/download.html these pointers]. Begin by adding the official java repository for your system ('lucid' is fine, even if you are using a different Ubuntu version) and installing a new version of Java (you'll need to agree to the license agreement).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get update&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install sun-java6-jdk&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo update-java-alternatives -s java-6-sun&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note, it is normal to get some ''error: no alternatives for...'' messages.&lt;br /&gt;
&lt;br /&gt;
Now, install other required software.  If you are building on a 64-bit machine (i.e. &amp;lt;code&amp;gt;&amp;lt;strong&amp;gt;uname -a|grep x86_64&amp;lt;/strong&amp;gt;&amp;lt;/code&amp;gt;), these packages are required:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For 32-bit machines, use these packages instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, install the '''repo''' tool. Repo is a tool to manage multiple Git repositories. You can install it wherever you like but if you have administrator rights, you might find this convenient:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &amp;gt; repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;chmod a+x repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo mv repo /usr/bin/repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetch Source Code ==&lt;br /&gt;
With Repo installed, it is possible to use a single manifest file that describes all the git repositories to be fetched.  More information about repo can be found [http://source.android.com/source/git-repo.html here]. These instructions place everything in a ''~/android'' directory but there is no restriction where this code is located.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;mkdir ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;cd ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Respond to the prompted questions to finish the initialization. This next step fetches all the code and may take an hour or so. If a particular repository checkout fails, re-issue this command until everything has been successfully fetched (and most regrettably, it can takes a few tries).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Tip:''' Use &amp;lt;code&amp;gt;repo sync -j2&amp;lt;/code&amp;gt; to do multi-threaded fetches (but be alert for repositories that fail to download).&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Users trying to get a fresh build system running can skip this section; this may be useful for those who have previously set up an Android repository or who wish to host their own manifest.&lt;br /&gt;
&lt;br /&gt;
To update from a previous android installation, simply issue these commands in your top-level directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repository Management ===&lt;br /&gt;
A manifest file is a XML file that describes a set of git repositories that, collectively, make up a project. In this case, most of the repositories are cloned directly from [http://android.git.kernel.org/ Google], OMAP3-specific tweaks come from the [http://gitorious.org/rowboat rowboat-android repositories], and items like the kernel and the bootloaders are pulled from [https://github.com/search?q=android&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1 Gumstix repositories]. To update the manifest and source code, simple issue the 'repo sync' command.&lt;br /&gt;
Manifests are themselves stored in a git repository so it is possible to use a manifest from a different git branch or commit.&lt;br /&gt;
To specify a new repository source, specify a new argument for the '-u' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u &amp;lt;git repository source URI&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To specify a different branch or revision, specify a new argument for the '-b' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -b &amp;lt;branch name&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
By default, the repo expects to use a file named ''default.xml'' as the manifest but it is possible to specify the specific manifest file to use.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -m &amp;lt;manifest.xml&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By forking the repository on github, it should be very easy to set up your own repository. For a look under the hood, navigate to the ''.repo'' directory.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
All required binaries and a root file system can be built for the Overo COM using the pre-built armel cross-compilers downloaded by repo.&lt;br /&gt;
&lt;br /&gt;
=== Root File System ===&lt;br /&gt;
In the simple case, just calling 'make PRODUCT-overo-eng' will build an [http://source.android.com/porting/build_system.html#androidBuildVariants engineering build] of the Overo target defined in ''device/gumstix/overo/AndroidBoard.mk''. As usual, the '-j&amp;lt;#&amp;gt;' switch allows for a multi-threaded build. However, the following commands actually pull in some convenient macros, select a predefined combination (see the ''device/gumstix/overo/vendorsetup.mk''; use ''choosecombo'' to select your own) and use the 'm' alias for make to build the root filesystem.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source build/envsetup.sh&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;lunch overo-eng&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The current build will not compile with out these hacks, whoever maintains the sources should look into fixing this.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;make update-api&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f  -name '*.mk' -exec sed -i &amp;quot;s/-flto//g&amp;quot; '{}' \; &amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f -name '*.mk' -exec sed -i &amp;quot;s/Werror=strict-aliasing/Wall/g&amp;quot; '{}' \;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then compile!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;m -j1&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' Those building with a 32-bit system will get angry warnings on the first build.  These can be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' To build a specific directory, navigate there and use the 'mm' macro or use the 'mmm' macro with the directory path as an argument.  As explained, 'make clean' and 'make clobber' will clean up any messes.&lt;br /&gt;
&lt;br /&gt;
After an hour or two, the build should complete with populated ''root'' and ''system'' directories in the ''out/target/product/overo'' directory.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders, Kernel, and SGX support ===&lt;br /&gt;
The x-load and u-boot bootloaders, the linux kernel, and the SGX graphics code each have their own build system. These have been crudely integrated with Android: repo fetches the necessary files and a simple script can be called to perform a clean build of each of these component:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumcompile&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' This also generates a ''boot.scr'' u-boot bootloader script to set the necessary environment variables on boot.  To change this script, modify ''utils/androidboot.cmd''.&lt;br /&gt;
For more fine-grained control, use the corresponding build systems directly (though looking at this script prove helpful).&lt;br /&gt;
&lt;br /&gt;
== Create a Tarball ==&lt;br /&gt;
The final step is wrapping all the generated files into a tarball with appropriate permissions.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/genrootfs&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ''out/target/product/overo'' directory, you should find the following files needed to make a [[Android_Prebuilt | bootable microSD card]].&lt;br /&gt;
* MLO&lt;br /&gt;
* u-boot.bin&lt;br /&gt;
* boot.scr&lt;br /&gt;
* uImage&lt;br /&gt;
* rootfs.tar.bz2&lt;br /&gt;
&lt;br /&gt;
''Note'': At the moment, the MLO built by the gumcompile will intermittently fail to boot a COM.  As such, the MLO found in the output directory is copied from a known good pre-built binary in the ''utils/'' directory.&lt;br /&gt;
&lt;br /&gt;
== Help and Help Out ==&lt;br /&gt;
These steps have refined from the [[http://code.google.com/p/rowboat/wiki/Main rowboat-android]] wiki and from [http://source.android.com google] documentation. Other useful links include:&lt;br /&gt;
* http://omapzoom.org/wiki/OMAP_Android_Main&lt;br /&gt;
* http://groups.google.com/group/android-porting?pli=1&lt;br /&gt;
&lt;br /&gt;
Patches, suggestions and improvements are most welcome---please send to ash (at) gumstix.com. Pull requests on the github repositories are likewise appreciated.&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=User_talk:Ashcharles&amp;diff=5729</id>
		<title>User talk:Ashcharles</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=User_talk:Ashcharles&amp;diff=5729"/>
				<updated>2011-12-02T18:02:01Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, my name if Kevin Harrington and i am trying to use your android build for my Gumstix using the Palo34 screen. Can you tell me which snapshot is supposed to work, as all of them starting with the current freezes with some sort of core-dump. Also, the instructions to building the image from source do not work at all. The &amp;quot;repo sync&amp;quot; hangs forever. I hacked around and tried the linero branch, and that synced, but would not compile. &lt;br /&gt;
&lt;br /&gt;
My email is kharrington@neuronrobotics.com. &lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=User_talk:Ashcharles&amp;diff=5728</id>
		<title>User talk:Ashcharles</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=User_talk:Ashcharles&amp;diff=5728"/>
				<updated>2011-12-02T17:57:41Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: Created page with &amp;quot;Hey, my name if Kevin Harrington and i am trying to use your android build for my Gumstix using the Palo34 screen. Can you tell me which snapshot is supposed to work, as all of t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, my name if Kevin Harrington and i am trying to use your android build for my Gumstix using the Palo34 screen. Can you tell me which snapshot is supposed to work, as all of them starting with the current freezes with some sort of core-dump. My email is kharrington@neuronrobotics.com. &lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Prebuilt&amp;diff=5727</id>
		<title>Android Prebuilt</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Prebuilt&amp;diff=5727"/>
				<updated>2011-12-02T17:17:27Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The fastest way to test Android on a Gumstix Overo is using prebuilt images loaded on a bootable microSD card.  This page explains where to find prebuilt images and how to make a bootable microSD card. Otherwise, check out how to [[Android_Source | build Android]] from source.&lt;br /&gt;
&lt;br /&gt;
== Android in Four Commands ==&lt;br /&gt;
First, some useful tools should be downloaded.  Those building from source will have already downloaded this git repository to the ''utils'' directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;git clone git://github.com/gumdroid/android-utils.git utils&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Images are built daily and can be found [http://cumulus.gumstix.org/images/android here]. Download the [http://cumulus.gumstix.org/images/android/current latest files].&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumget &amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, insert a microSD card (at least 1GB by default) and confirm the path of the microSD card.  For example,&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;df&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
might yield a path of &amp;lt;code&amp;gt;/dev/mmcblk0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, make a bootable microSD card (optionally, see [http://gumstix.org/create-a-bootable-microsd-card.html this procedure]):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo utils/mkandroidsd /dev/mmcblk0 .&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
(note the trailing '.'; this is the path to the directory where the downloaded files are stored)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If present, the contents of a directory named ''Media'' located alongside the downloaded files will be copied on to the third partition. This is useful to load sample media onto your system.&lt;br /&gt;
&lt;br /&gt;
Finally, remove the microSD from your computer, insert it into your Gumstix COM, and let it boot. Note that many packages are configured during the first boot so it may seem like your system hangs for approximately five minutes on the animated android text log screen.  Subsquent boots should complete under a minute.&lt;br /&gt;
&lt;br /&gt;
For information on using this port of Android, see [[Android_Usage | here]].&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Note:''' If your board fails to load the kernel, you may need to reset your u-boot environment variables as the boot script is not being run.  To do this, issue this command at the u-boot prompt on startup.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;nand erase 240000 20000&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Prebuilt&amp;diff=5726</id>
		<title>Android Prebuilt</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Prebuilt&amp;diff=5726"/>
				<updated>2011-12-02T16:50:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The fastest way to test Android on a Gumstix Overo is using prebuilt images loaded on a bootable microSD card.  This page explains where to find prebuilt images and how to make a bootable microSD card. Otherwise, check out how to [[Android_Source | build Android]] from source.&lt;br /&gt;
&lt;br /&gt;
== Android in Four Commands ==&lt;br /&gt;
First, some useful tools should be downloaded.  Those building from source will have already downloaded this git repository to the ''utils'' directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;git clone git://github.com/gumdroid/android-utils.git utils&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Images are built daily and can be found [http://cumulus.gumstix.org/images/android here]. Download the [http://cumulus.gumstix.org/images/android/current latest files].&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumget 2011-05-03-yrwv17&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, insert a microSD card (at least 1GB by default) and confirm the path of the microSD card.  For example,&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;df&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
might yield a path of &amp;lt;code&amp;gt;/dev/mmcblk0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, make a bootable microSD card (optionally, see [http://gumstix.org/create-a-bootable-microsd-card.html this procedure]):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo utils/mkandroidsd /dev/mmcblk0 .&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
(note the trailing '.'; this is the path to the directory where the downloaded files are stored)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If present, the contents of a directory named ''Media'' located alongside the downloaded files will be copied on to the third partition. This is useful to load sample media onto your system.&lt;br /&gt;
&lt;br /&gt;
Finally, remove the microSD from your computer, insert it into your Gumstix COM, and let it boot. Note that many packages are configured during the first boot so it may seem like your system hangs for approximately five minutes on the animated android text log screen.  Subsquent boots should complete under a minute.&lt;br /&gt;
&lt;br /&gt;
For information on using this port of Android, see [[Android_Usage | here]].&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Note:''' If your board fails to load the kernel, you may need to reset your u-boot environment variables as the boot script is not being run.  To do this, issue this command at the u-boot prompt on startup.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;nand erase 240000 20000&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5725</id>
		<title>Android Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5725"/>
				<updated>2011-12-01T21:34:49Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: /* Root File System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build Android from source [[Android_Source#Setup | from fresh]] or to update an [[Android_Source#Updating | existing source build]].  If you just want to [[Android_Usage | test drive Android]], you may prefer to use [[Android_Prebuilt | prebuilt images]].&lt;br /&gt;
&lt;br /&gt;
All the source code is freely available for download, customization, and improvement. This section explains how to set up a development machine to build all the required components from source. These instructions have been tested on Ubuntu Maverick (10.10) 32 and 64 bit machines; as a rough estimate, this process requires 10GB of hard drive space and takes 4 hours (30 minutes of setup, 1.5 hours to download code, and 2 hours to build) on a moderate development machine. Users with existing Android source can [[Android_Source#Updating | rapidly update]].&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Android requires Sun(tm) Java and some additional software packages. These instructions assume an Ubuntu system however for other systems, see [http://source.android.com/source/download.html these pointers]. Begin by adding the official java repository for your system ('lucid' is fine, even if you are using a different Ubuntu version) and installing a new version of Java (you'll need to agree to the license agreement).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get update&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install sun-java6-jdk&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo update-java-alternatives -s java-6-sun&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note, it is normal to get some ''error: no alternatives for...'' messages.&lt;br /&gt;
&lt;br /&gt;
Now, install other required software.  If you are building on a 64-bit machine (i.e. &amp;lt;code&amp;gt;&amp;lt;strong&amp;gt;uname -a|grep x86_64&amp;lt;/strong&amp;gt;&amp;lt;/code&amp;gt;), these packages are required:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For 32-bit machines, use these packages instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, install the '''repo''' tool. Repo is a tool to manage multiple Git repositories. You can install it wherever you like but if you have administrator rights, you might find this convenient:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &amp;gt; repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;chmod a+x repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo mv repo /usr/bin/repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetch Source Code ==&lt;br /&gt;
With Repo installed, it is possible to use a single manifest file that describes all the git repositories to be fetched.  More information about repo can be found [http://source.android.com/source/git-repo.html here]. These instructions place everything in a ''~/android'' directory but there is no restriction where this code is located.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;mkdir ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;cd ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Respond to the prompted questions to finish the initialization. This next step fetches all the code and may take an hour or so. If a particular repository checkout fails, re-issue this command until everything has been successfully fetched (and most regrettably, it can takes a few tries).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Tip:''' Use &amp;lt;code&amp;gt;repo sync -j2&amp;lt;/code&amp;gt; to do multi-threaded fetches (but be alert for repositories that fail to download).&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Users trying to get a fresh build system running can skip this section; this may be useful for those who have previously set up an Android repository or who wish to host their own manifest.&lt;br /&gt;
&lt;br /&gt;
To update from a previous android installation, simply issue these commands in your top-level directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repository Management ===&lt;br /&gt;
A manifest file is a XML file that describes a set of git repositories that, collectively, make up a project. In this case, most of the repositories are cloned directly from [http://android.git.kernel.org/ Google], OMAP3-specific tweaks come from the [http://gitorious.org/rowboat rowboat-android repositories], and items like the kernel and the bootloaders are pulled from [https://github.com/search?q=android&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1 Gumstix repositories]. To update the manifest and source code, simple issue the 'repo sync' command.&lt;br /&gt;
Manifests are themselves stored in a git repository so it is possible to use a manifest from a different git branch or commit.&lt;br /&gt;
To specify a new repository source, specify a new argument for the '-u' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u &amp;lt;git repository source URI&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To specify a different branch or revision, specify a new argument for the '-b' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -b &amp;lt;branch name&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
By default, the repo expects to use a file named ''default.xml'' as the manifest but it is possible to specify the specific manifest file to use.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -m &amp;lt;manifest.xml&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By forking the repository on github, it should be very easy to set up your own repository. For a look under the hood, navigate to the ''.repo'' directory.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
All required binaries and a root file system can be built for the Overo COM using the pre-built armel cross-compilers downloaded by repo.&lt;br /&gt;
&lt;br /&gt;
=== Root File System ===&lt;br /&gt;
In the simple case, just calling 'make PRODUCT-overo-eng' will build an [http://source.android.com/porting/build_system.html#androidBuildVariants engineering build] of the Overo target defined in ''device/gumstix/overo/AndroidBoard.mk''. As usual, the '-j&amp;lt;#&amp;gt;' switch allows for a multi-threaded build. However, the following commands actually pull in some convenient macros, select a predefined combination (see the ''device/gumstix/overo/vendorsetup.mk''; use ''choosecombo'' to select your own) and use the 'm' alias for make to build the root filesystem.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source build/envsetup.sh&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;lunch overo-eng&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The current build will not compile with out these hacks, whoever maintains the sources should look into fixing this.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;make update-api&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f  -name '*.mk' -exec sed -i &amp;quot;s/-flto//g&amp;quot; '{}' \; &amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f -name '*.mk' -exec sed -i &amp;quot;s/Werror=strict-aliasing/Wall/g&amp;quot; '{}' \;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then compile!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;m -j1&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' Those building with a 32-bit system will get angry warnings on the first build.  These can be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' To build a specific directory, navigate there and use the 'mm' macro or use the 'mmm' macro with the directory path as an argument.  As explained, 'make clean' and 'make clobber' will clean up any messes.&lt;br /&gt;
&lt;br /&gt;
After an hour or two, the build should complete with populated ''root'' and ''system'' directories in the ''out/target/product/overo'' directory.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders, Kernel, and SGX support ===&lt;br /&gt;
The x-load and u-boot bootloaders, the linux kernel, and the SGX graphics code each have their own build system. These have been crudely integrated with Android: repo fetches the necessary files and a simple script can be called to perform a clean build of each of these component:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumcompile&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' This also generates a ''boot.scr'' u-boot bootloader script to set the necessary environment variables on boot.  To change this script, modify ''utils/androidboot.cmd''.&lt;br /&gt;
For more fine-grained control, use the corresponding build systems directly (though looking at this script prove helpful).&lt;br /&gt;
&lt;br /&gt;
== Create a Tarball ==&lt;br /&gt;
The final step is wrapping all the generated files into a tarball with appropriate permissions.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/genrootfs&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ''out/target/product/overo'' directory, you should find the following files needed to make a [[Android_Prebuilt | bootable microSD card]].&lt;br /&gt;
* MLO&lt;br /&gt;
* u-boot.bin&lt;br /&gt;
* boot.scr&lt;br /&gt;
* uImage&lt;br /&gt;
* rootfs.tar.bz2&lt;br /&gt;
&lt;br /&gt;
''Note'': At the moment, the MLO built by the gumcompile will intermittently fail to boot a COM.  As such, the MLO found in the output directory is copied from a known good pre-built binary in the ''utils/'' directory.&lt;br /&gt;
&lt;br /&gt;
== Help and Help Out ==&lt;br /&gt;
These steps have refined from the [[http://code.google.com/p/rowboat/wiki/Main rowboat-android]] wiki and from [http://source.android.com google] documentation. Other useful links include:&lt;br /&gt;
* http://omapzoom.org/wiki/OMAP_Android_Main&lt;br /&gt;
* http://groups.google.com/group/android-porting?pli=1&lt;br /&gt;
&lt;br /&gt;
Patches, suggestions and improvements are most welcome---please send to ash (at) gumstix.com. Pull requests on the github repositories are likewise appreciated.&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5724</id>
		<title>Android Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5724"/>
				<updated>2011-12-01T17:36:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: /* Root File System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build Android from source [[Android_Source#Setup | from fresh]] or to update an [[Android_Source#Updating | existing source build]].  If you just want to [[Android_Usage | test drive Android]], you may prefer to use [[Android_Prebuilt | prebuilt images]].&lt;br /&gt;
&lt;br /&gt;
All the source code is freely available for download, customization, and improvement. This section explains how to set up a development machine to build all the required components from source. These instructions have been tested on Ubuntu Maverick (10.10) 32 and 64 bit machines; as a rough estimate, this process requires 10GB of hard drive space and takes 4 hours (30 minutes of setup, 1.5 hours to download code, and 2 hours to build) on a moderate development machine. Users with existing Android source can [[Android_Source#Updating | rapidly update]].&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Android requires Sun(tm) Java and some additional software packages. These instructions assume an Ubuntu system however for other systems, see [http://source.android.com/source/download.html these pointers]. Begin by adding the official java repository for your system ('lucid' is fine, even if you are using a different Ubuntu version) and installing a new version of Java (you'll need to agree to the license agreement).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get update&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install sun-java6-jdk&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo update-java-alternatives -s java-6-sun&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note, it is normal to get some ''error: no alternatives for...'' messages.&lt;br /&gt;
&lt;br /&gt;
Now, install other required software.  If you are building on a 64-bit machine (i.e. &amp;lt;code&amp;gt;&amp;lt;strong&amp;gt;uname -a|grep x86_64&amp;lt;/strong&amp;gt;&amp;lt;/code&amp;gt;), these packages are required:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For 32-bit machines, use these packages instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, install the '''repo''' tool. Repo is a tool to manage multiple Git repositories. You can install it wherever you like but if you have administrator rights, you might find this convenient:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &amp;gt; repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;chmod a+x repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo mv repo /usr/bin/repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetch Source Code ==&lt;br /&gt;
With Repo installed, it is possible to use a single manifest file that describes all the git repositories to be fetched.  More information about repo can be found [http://source.android.com/source/git-repo.html here]. These instructions place everything in a ''~/android'' directory but there is no restriction where this code is located.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;mkdir ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;cd ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Respond to the prompted questions to finish the initialization. This next step fetches all the code and may take an hour or so. If a particular repository checkout fails, re-issue this command until everything has been successfully fetched (and most regrettably, it can takes a few tries).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Tip:''' Use &amp;lt;code&amp;gt;repo sync -j2&amp;lt;/code&amp;gt; to do multi-threaded fetches (but be alert for repositories that fail to download).&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Users trying to get a fresh build system running can skip this section; this may be useful for those who have previously set up an Android repository or who wish to host their own manifest.&lt;br /&gt;
&lt;br /&gt;
To update from a previous android installation, simply issue these commands in your top-level directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repository Management ===&lt;br /&gt;
A manifest file is a XML file that describes a set of git repositories that, collectively, make up a project. In this case, most of the repositories are cloned directly from [http://android.git.kernel.org/ Google], OMAP3-specific tweaks come from the [http://gitorious.org/rowboat rowboat-android repositories], and items like the kernel and the bootloaders are pulled from [https://github.com/search?q=android&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1 Gumstix repositories]. To update the manifest and source code, simple issue the 'repo sync' command.&lt;br /&gt;
Manifests are themselves stored in a git repository so it is possible to use a manifest from a different git branch or commit.&lt;br /&gt;
To specify a new repository source, specify a new argument for the '-u' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u &amp;lt;git repository source URI&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To specify a different branch or revision, specify a new argument for the '-b' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -b &amp;lt;branch name&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
By default, the repo expects to use a file named ''default.xml'' as the manifest but it is possible to specify the specific manifest file to use.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -m &amp;lt;manifest.xml&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By forking the repository on github, it should be very easy to set up your own repository. For a look under the hood, navigate to the ''.repo'' directory.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
All required binaries and a root file system can be built for the Overo COM using the pre-built armel cross-compilers downloaded by repo.&lt;br /&gt;
&lt;br /&gt;
=== Root File System ===&lt;br /&gt;
In the simple case, just calling 'make PRODUCT-overo-eng' will build an [http://source.android.com/porting/build_system.html#androidBuildVariants engineering build] of the Overo target defined in ''device/gumstix/overo/AndroidBoard.mk''. As usual, the '-j&amp;lt;#&amp;gt;' switch allows for a multi-threaded build. However, the following commands actually pull in some convenient macros, select a predefined combination (see the ''device/gumstix/overo/vendorsetup.mk''; use ''choosecombo'' to select your own) and use the 'm' alias for make to build the root filesystem.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source build/envsetup.sh&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;lunch overo-eng&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The current build will not compile with out this hack, whoever maintains the sources should look into fixing this.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;make update-api&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f -name '*.mk' -exec sed -i &amp;quot;s/Werror=strict-aliasing/Wall/g&amp;quot; '{}' \;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then compile!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;m -j1&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' Those building with a 32-bit system will get angry warnings on the first build.  These can be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' To build a specific directory, navigate there and use the 'mm' macro or use the 'mmm' macro with the directory path as an argument.  As explained, 'make clean' and 'make clobber' will clean up any messes.&lt;br /&gt;
&lt;br /&gt;
After an hour or two, the build should complete with populated ''root'' and ''system'' directories in the ''out/target/product/overo'' directory.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders, Kernel, and SGX support ===&lt;br /&gt;
The x-load and u-boot bootloaders, the linux kernel, and the SGX graphics code each have their own build system. These have been crudely integrated with Android: repo fetches the necessary files and a simple script can be called to perform a clean build of each of these component:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumcompile&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' This also generates a ''boot.scr'' u-boot bootloader script to set the necessary environment variables on boot.  To change this script, modify ''utils/androidboot.cmd''.&lt;br /&gt;
For more fine-grained control, use the corresponding build systems directly (though looking at this script prove helpful).&lt;br /&gt;
&lt;br /&gt;
== Create a Tarball ==&lt;br /&gt;
The final step is wrapping all the generated files into a tarball with appropriate permissions.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/genrootfs&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ''out/target/product/overo'' directory, you should find the following files needed to make a [[Android_Prebuilt | bootable microSD card]].&lt;br /&gt;
* MLO&lt;br /&gt;
* u-boot.bin&lt;br /&gt;
* boot.scr&lt;br /&gt;
* uImage&lt;br /&gt;
* rootfs.tar.bz2&lt;br /&gt;
&lt;br /&gt;
''Note'': At the moment, the MLO built by the gumcompile will intermittently fail to boot a COM.  As such, the MLO found in the output directory is copied from a known good pre-built binary in the ''utils/'' directory.&lt;br /&gt;
&lt;br /&gt;
== Help and Help Out ==&lt;br /&gt;
These steps have refined from the [[http://code.google.com/p/rowboat/wiki/Main rowboat-android]] wiki and from [http://source.android.com google] documentation. Other useful links include:&lt;br /&gt;
* http://omapzoom.org/wiki/OMAP_Android_Main&lt;br /&gt;
* http://groups.google.com/group/android-porting?pli=1&lt;br /&gt;
&lt;br /&gt;
Patches, suggestions and improvements are most welcome---please send to ash (at) gumstix.com. Pull requests on the github repositories are likewise appreciated.&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5723</id>
		<title>Android Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5723"/>
				<updated>2011-12-01T17:34:52Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: /* Root File System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build Android from source [[Android_Source#Setup | from fresh]] or to update an [[Android_Source#Updating | existing source build]].  If you just want to [[Android_Usage | test drive Android]], you may prefer to use [[Android_Prebuilt | prebuilt images]].&lt;br /&gt;
&lt;br /&gt;
All the source code is freely available for download, customization, and improvement. This section explains how to set up a development machine to build all the required components from source. These instructions have been tested on Ubuntu Maverick (10.10) 32 and 64 bit machines; as a rough estimate, this process requires 10GB of hard drive space and takes 4 hours (30 minutes of setup, 1.5 hours to download code, and 2 hours to build) on a moderate development machine. Users with existing Android source can [[Android_Source#Updating | rapidly update]].&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Android requires Sun(tm) Java and some additional software packages. These instructions assume an Ubuntu system however for other systems, see [http://source.android.com/source/download.html these pointers]. Begin by adding the official java repository for your system ('lucid' is fine, even if you are using a different Ubuntu version) and installing a new version of Java (you'll need to agree to the license agreement).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get update&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install sun-java6-jdk&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo update-java-alternatives -s java-6-sun&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note, it is normal to get some ''error: no alternatives for...'' messages.&lt;br /&gt;
&lt;br /&gt;
Now, install other required software.  If you are building on a 64-bit machine (i.e. &amp;lt;code&amp;gt;&amp;lt;strong&amp;gt;uname -a|grep x86_64&amp;lt;/strong&amp;gt;&amp;lt;/code&amp;gt;), these packages are required:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For 32-bit machines, use these packages instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, install the '''repo''' tool. Repo is a tool to manage multiple Git repositories. You can install it wherever you like but if you have administrator rights, you might find this convenient:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &amp;gt; repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;chmod a+x repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo mv repo /usr/bin/repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetch Source Code ==&lt;br /&gt;
With Repo installed, it is possible to use a single manifest file that describes all the git repositories to be fetched.  More information about repo can be found [http://source.android.com/source/git-repo.html here]. These instructions place everything in a ''~/android'' directory but there is no restriction where this code is located.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;mkdir ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;cd ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Respond to the prompted questions to finish the initialization. This next step fetches all the code and may take an hour or so. If a particular repository checkout fails, re-issue this command until everything has been successfully fetched (and most regrettably, it can takes a few tries).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Tip:''' Use &amp;lt;code&amp;gt;repo sync -j2&amp;lt;/code&amp;gt; to do multi-threaded fetches (but be alert for repositories that fail to download).&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Users trying to get a fresh build system running can skip this section; this may be useful for those who have previously set up an Android repository or who wish to host their own manifest.&lt;br /&gt;
&lt;br /&gt;
To update from a previous android installation, simply issue these commands in your top-level directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repository Management ===&lt;br /&gt;
A manifest file is a XML file that describes a set of git repositories that, collectively, make up a project. In this case, most of the repositories are cloned directly from [http://android.git.kernel.org/ Google], OMAP3-specific tweaks come from the [http://gitorious.org/rowboat rowboat-android repositories], and items like the kernel and the bootloaders are pulled from [https://github.com/search?q=android&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1 Gumstix repositories]. To update the manifest and source code, simple issue the 'repo sync' command.&lt;br /&gt;
Manifests are themselves stored in a git repository so it is possible to use a manifest from a different git branch or commit.&lt;br /&gt;
To specify a new repository source, specify a new argument for the '-u' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u &amp;lt;git repository source URI&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To specify a different branch or revision, specify a new argument for the '-b' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -b &amp;lt;branch name&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
By default, the repo expects to use a file named ''default.xml'' as the manifest but it is possible to specify the specific manifest file to use.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -m &amp;lt;manifest.xml&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By forking the repository on github, it should be very easy to set up your own repository. For a look under the hood, navigate to the ''.repo'' directory.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
All required binaries and a root file system can be built for the Overo COM using the pre-built armel cross-compilers downloaded by repo.&lt;br /&gt;
&lt;br /&gt;
=== Root File System ===&lt;br /&gt;
In the simple case, just calling 'make PRODUCT-overo-eng' will build an [http://source.android.com/porting/build_system.html#androidBuildVariants engineering build] of the Overo target defined in ''device/gumstix/overo/AndroidBoard.mk''. As usual, the '-j&amp;lt;#&amp;gt;' switch allows for a multi-threaded build. However, the following commands actually pull in some convenient macros, select a predefined combination (see the ''device/gumstix/overo/vendorsetup.mk''; use ''choosecombo'' to select your own) and use the 'm' alias for make to build the root filesystem.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source build/envsetup.sh&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;lunch overo-eng&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The current build will not compile with out this hack, whoever maintains the sources should look into fixing this.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f -name '*.mk' -exec sed -i &amp;quot;s/Werror=strict-aliasing/Wall/g&amp;quot; '{}' \;&amp;lt;/strong&amp;gt;&lt;br /&gt;
$ &amp;lt;strong&amp;gt;make update-api&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then compile!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;m -j1&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' Those building with a 32-bit system will get angry warnings on the first build.  These can be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' To build a specific directory, navigate there and use the 'mm' macro or use the 'mmm' macro with the directory path as an argument.  As explained, 'make clean' and 'make clobber' will clean up any messes.&lt;br /&gt;
&lt;br /&gt;
After an hour or two, the build should complete with populated ''root'' and ''system'' directories in the ''out/target/product/overo'' directory.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders, Kernel, and SGX support ===&lt;br /&gt;
The x-load and u-boot bootloaders, the linux kernel, and the SGX graphics code each have their own build system. These have been crudely integrated with Android: repo fetches the necessary files and a simple script can be called to perform a clean build of each of these component:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumcompile&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' This also generates a ''boot.scr'' u-boot bootloader script to set the necessary environment variables on boot.  To change this script, modify ''utils/androidboot.cmd''.&lt;br /&gt;
For more fine-grained control, use the corresponding build systems directly (though looking at this script prove helpful).&lt;br /&gt;
&lt;br /&gt;
== Create a Tarball ==&lt;br /&gt;
The final step is wrapping all the generated files into a tarball with appropriate permissions.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/genrootfs&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ''out/target/product/overo'' directory, you should find the following files needed to make a [[Android_Prebuilt | bootable microSD card]].&lt;br /&gt;
* MLO&lt;br /&gt;
* u-boot.bin&lt;br /&gt;
* boot.scr&lt;br /&gt;
* uImage&lt;br /&gt;
* rootfs.tar.bz2&lt;br /&gt;
&lt;br /&gt;
''Note'': At the moment, the MLO built by the gumcompile will intermittently fail to boot a COM.  As such, the MLO found in the output directory is copied from a known good pre-built binary in the ''utils/'' directory.&lt;br /&gt;
&lt;br /&gt;
== Help and Help Out ==&lt;br /&gt;
These steps have refined from the [[http://code.google.com/p/rowboat/wiki/Main rowboat-android]] wiki and from [http://source.android.com google] documentation. Other useful links include:&lt;br /&gt;
* http://omapzoom.org/wiki/OMAP_Android_Main&lt;br /&gt;
* http://groups.google.com/group/android-porting?pli=1&lt;br /&gt;
&lt;br /&gt;
Patches, suggestions and improvements are most welcome---please send to ash (at) gumstix.com. Pull requests on the github repositories are likewise appreciated.&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5722</id>
		<title>Android Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5722"/>
				<updated>2011-12-01T17:00:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: /* Updating */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build Android from source [[Android_Source#Setup | from fresh]] or to update an [[Android_Source#Updating | existing source build]].  If you just want to [[Android_Usage | test drive Android]], you may prefer to use [[Android_Prebuilt | prebuilt images]].&lt;br /&gt;
&lt;br /&gt;
All the source code is freely available for download, customization, and improvement. This section explains how to set up a development machine to build all the required components from source. These instructions have been tested on Ubuntu Maverick (10.10) 32 and 64 bit machines; as a rough estimate, this process requires 10GB of hard drive space and takes 4 hours (30 minutes of setup, 1.5 hours to download code, and 2 hours to build) on a moderate development machine. Users with existing Android source can [[Android_Source#Updating | rapidly update]].&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Android requires Sun(tm) Java and some additional software packages. These instructions assume an Ubuntu system however for other systems, see [http://source.android.com/source/download.html these pointers]. Begin by adding the official java repository for your system ('lucid' is fine, even if you are using a different Ubuntu version) and installing a new version of Java (you'll need to agree to the license agreement).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get update&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install sun-java6-jdk&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo update-java-alternatives -s java-6-sun&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note, it is normal to get some ''error: no alternatives for...'' messages.&lt;br /&gt;
&lt;br /&gt;
Now, install other required software.  If you are building on a 64-bit machine (i.e. &amp;lt;code&amp;gt;&amp;lt;strong&amp;gt;uname -a|grep x86_64&amp;lt;/strong&amp;gt;&amp;lt;/code&amp;gt;), these packages are required:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For 32-bit machines, use these packages instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, install the '''repo''' tool. Repo is a tool to manage multiple Git repositories. You can install it wherever you like but if you have administrator rights, you might find this convenient:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &amp;gt; repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;chmod a+x repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo mv repo /usr/bin/repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetch Source Code ==&lt;br /&gt;
With Repo installed, it is possible to use a single manifest file that describes all the git repositories to be fetched.  More information about repo can be found [http://source.android.com/source/git-repo.html here]. These instructions place everything in a ''~/android'' directory but there is no restriction where this code is located.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;mkdir ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;cd ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Respond to the prompted questions to finish the initialization. This next step fetches all the code and may take an hour or so. If a particular repository checkout fails, re-issue this command until everything has been successfully fetched (and most regrettably, it can takes a few tries).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Tip:''' Use &amp;lt;code&amp;gt;repo sync -j2&amp;lt;/code&amp;gt; to do multi-threaded fetches (but be alert for repositories that fail to download).&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Users trying to get a fresh build system running can skip this section; this may be useful for those who have previously set up an Android repository or who wish to host their own manifest.&lt;br /&gt;
&lt;br /&gt;
To update from a previous android installation, simply issue these commands in your top-level directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repository Management ===&lt;br /&gt;
A manifest file is a XML file that describes a set of git repositories that, collectively, make up a project. In this case, most of the repositories are cloned directly from [http://android.git.kernel.org/ Google], OMAP3-specific tweaks come from the [http://gitorious.org/rowboat rowboat-android repositories], and items like the kernel and the bootloaders are pulled from [https://github.com/search?q=android&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1 Gumstix repositories]. To update the manifest and source code, simple issue the 'repo sync' command.&lt;br /&gt;
Manifests are themselves stored in a git repository so it is possible to use a manifest from a different git branch or commit.&lt;br /&gt;
To specify a new repository source, specify a new argument for the '-u' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u &amp;lt;git repository source URI&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To specify a different branch or revision, specify a new argument for the '-b' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -b &amp;lt;branch name&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
By default, the repo expects to use a file named ''default.xml'' as the manifest but it is possible to specify the specific manifest file to use.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -m &amp;lt;manifest.xml&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By forking the repository on github, it should be very easy to set up your own repository. For a look under the hood, navigate to the ''.repo'' directory.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
All required binaries and a root file system can be built for the Overo COM using the pre-built armel cross-compilers downloaded by repo.&lt;br /&gt;
&lt;br /&gt;
=== Root File System ===&lt;br /&gt;
In the simple case, just calling 'make PRODUCT-overo-eng' will build an [http://source.android.com/porting/build_system.html#androidBuildVariants engineering build] of the Overo target defined in ''device/gumstix/overo/AndroidBoard.mk''. As usual, the '-j&amp;lt;#&amp;gt;' switch allows for a multi-threaded build. However, the following commands actually pull in some convenient macros, select a predefined combination (see the ''device/gumstix/overo/vendorsetup.mk''; use ''choosecombo'' to select your own) and use the 'm' alias for make to build the root filesystem.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source build/envsetup.sh&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;lunch overo-eng&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The current build will not compile with out this hack, whoever maintains the sources should look into fixing this.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f -name '*.mk' -exec sed -i &amp;quot;s/Werror=strict-aliasing/Wall/g&amp;quot; '{}' \;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then compile!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;m -j1&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' Those building with a 32-bit system will get angry warnings on the first build.  These can be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' To build a specific directory, navigate there and use the 'mm' macro or use the 'mmm' macro with the directory path as an argument.  As explained, 'make clean' and 'make clobber' will clean up any messes.&lt;br /&gt;
&lt;br /&gt;
After an hour or two, the build should complete with populated ''root'' and ''system'' directories in the ''out/target/product/overo'' directory.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders, Kernel, and SGX support ===&lt;br /&gt;
The x-load and u-boot bootloaders, the linux kernel, and the SGX graphics code each have their own build system. These have been crudely integrated with Android: repo fetches the necessary files and a simple script can be called to perform a clean build of each of these component:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumcompile&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' This also generates a ''boot.scr'' u-boot bootloader script to set the necessary environment variables on boot.  To change this script, modify ''utils/androidboot.cmd''.&lt;br /&gt;
For more fine-grained control, use the corresponding build systems directly (though looking at this script prove helpful).&lt;br /&gt;
&lt;br /&gt;
== Create a Tarball ==&lt;br /&gt;
The final step is wrapping all the generated files into a tarball with appropriate permissions.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/genrootfs&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ''out/target/product/overo'' directory, you should find the following files needed to make a [[Android_Prebuilt | bootable microSD card]].&lt;br /&gt;
* MLO&lt;br /&gt;
* u-boot.bin&lt;br /&gt;
* boot.scr&lt;br /&gt;
* uImage&lt;br /&gt;
* rootfs.tar.bz2&lt;br /&gt;
&lt;br /&gt;
''Note'': At the moment, the MLO built by the gumcompile will intermittently fail to boot a COM.  As such, the MLO found in the output directory is copied from a known good pre-built binary in the ''utils/'' directory.&lt;br /&gt;
&lt;br /&gt;
== Help and Help Out ==&lt;br /&gt;
These steps have refined from the [[http://code.google.com/p/rowboat/wiki/Main rowboat-android]] wiki and from [http://source.android.com google] documentation. Other useful links include:&lt;br /&gt;
* http://omapzoom.org/wiki/OMAP_Android_Main&lt;br /&gt;
* http://groups.google.com/group/android-porting?pli=1&lt;br /&gt;
&lt;br /&gt;
Patches, suggestions and improvements are most welcome---please send to ash (at) gumstix.com. Pull requests on the github repositories are likewise appreciated.&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5721</id>
		<title>Android Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5721"/>
				<updated>2011-12-01T16:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: /* Root File System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build Android from source [[Android_Source#Setup | from fresh]] or to update an [[Android_Source#Updating | existing source build]].  If you just want to [[Android_Usage | test drive Android]], you may prefer to use [[Android_Prebuilt | prebuilt images]].&lt;br /&gt;
&lt;br /&gt;
All the source code is freely available for download, customization, and improvement. This section explains how to set up a development machine to build all the required components from source. These instructions have been tested on Ubuntu Maverick (10.10) 32 and 64 bit machines; as a rough estimate, this process requires 10GB of hard drive space and takes 4 hours (30 minutes of setup, 1.5 hours to download code, and 2 hours to build) on a moderate development machine. Users with existing Android source can [[Android_Source#Updating | rapidly update]].&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Android requires Sun(tm) Java and some additional software packages. These instructions assume an Ubuntu system however for other systems, see [http://source.android.com/source/download.html these pointers]. Begin by adding the official java repository for your system ('lucid' is fine, even if you are using a different Ubuntu version) and installing a new version of Java (you'll need to agree to the license agreement).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get update&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install sun-java6-jdk&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo update-java-alternatives -s java-6-sun&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note, it is normal to get some ''error: no alternatives for...'' messages.&lt;br /&gt;
&lt;br /&gt;
Now, install other required software.  If you are building on a 64-bit machine (i.e. &amp;lt;code&amp;gt;&amp;lt;strong&amp;gt;uname -a|grep x86_64&amp;lt;/strong&amp;gt;&amp;lt;/code&amp;gt;), these packages are required:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For 32-bit machines, use these packages instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, install the '''repo''' tool. Repo is a tool to manage multiple Git repositories. You can install it wherever you like but if you have administrator rights, you might find this convenient:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &amp;gt; repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;chmod a+x repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo mv repo /usr/bin/repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetch Source Code ==&lt;br /&gt;
With Repo installed, it is possible to use a single manifest file that describes all the git repositories to be fetched.  More information about repo can be found [http://source.android.com/source/git-repo.html here]. These instructions place everything in a ''~/android'' directory but there is no restriction where this code is located.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;mkdir ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;cd ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Respond to the prompted questions to finish the initialization. This next step fetches all the code and may take an hour or so. If a particular repository checkout fails, re-issue this command until everything has been successfully fetched (and most regrettably, it can takes a few tries).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Tip:''' Use &amp;lt;code&amp;gt;repo sync -j2&amp;lt;/code&amp;gt; to do multi-threaded fetches (but be alert for repositories that fail to download).&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Users trying to get a fresh build system running can skip this section; this may be useful for those who have previously set up an Android repository or who wish to host their own manifest.&lt;br /&gt;
&lt;br /&gt;
To update from a previous android installation, simply issue these commands in your top-level directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repository Management ===&lt;br /&gt;
A manifest file is a XML file that describes a set of git repositories that, collectively, make up a project. In this case, most of the repositories are cloned directly from [http://android.git.kernel.org/ Google], OMAP3-specific tweaks come from the [http://gitorious.org/rowboat rowboat-android repositories], and items like the kernel and the bootloaders are pulled from [https://github.com/search?q=android&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1 Gumstix repositories]. To update the manifest and source code, simple issue the 'repo sync' command.&lt;br /&gt;
Manifests are themselves stored in a git repository so it is possible to use a manifest from a different git branch or commit.&lt;br /&gt;
To specify a new repository source, specify a new argument for the '-u' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u &amp;lt;git repository source URI&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To specify a different branch or revision, specify a new argument for the '-b' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -b &amp;lt;branch name&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
By default, the repo expects to use a file named ''default.xml'' as the manifest but it is possible to specify the specific manifest file to use.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -m &amp;lt;manifest.xml&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By forking the repository on github, it should be very easy to set up your own repository. For a look under the hood, navigate to the ''.repo'' directory.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
All required binaries and a root file system can be built for the Overo COM using the pre-built armel cross-compilers downloaded by repo.&lt;br /&gt;
&lt;br /&gt;
=== Root File System ===&lt;br /&gt;
In the simple case, just calling 'make PRODUCT-overo-eng' will build an [http://source.android.com/porting/build_system.html#androidBuildVariants engineering build] of the Overo target defined in ''device/gumstix/overo/AndroidBoard.mk''. As usual, the '-j&amp;lt;#&amp;gt;' switch allows for a multi-threaded build. However, the following commands actually pull in some convenient macros, select a predefined combination (see the ''device/gumstix/overo/vendorsetup.mk''; use ''choosecombo'' to select your own) and use the 'm' alias for make to build the root filesystem.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source build/envsetup.sh&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;lunch overo-eng&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The current build will not compile with out this hack, whoever maintains the sources should look into fixing this.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f -name '*.mk' -exec sed -i &amp;quot;s/Werror=strict-aliasing/Wall/g&amp;quot; '{}' \;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then compile!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;m -j1&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' Those building with a 32-bit system will get angry warnings on the first build.  These can be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' To build a specific directory, navigate there and use the 'mm' macro or use the 'mmm' macro with the directory path as an argument.  As explained, 'make clean' and 'make clobber' will clean up any messes.&lt;br /&gt;
&lt;br /&gt;
After an hour or two, the build should complete with populated ''root'' and ''system'' directories in the ''out/target/product/overo'' directory.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders, Kernel, and SGX support ===&lt;br /&gt;
The x-load and u-boot bootloaders, the linux kernel, and the SGX graphics code each have their own build system. These have been crudely integrated with Android: repo fetches the necessary files and a simple script can be called to perform a clean build of each of these component:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumcompile&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' This also generates a ''boot.scr'' u-boot bootloader script to set the necessary environment variables on boot.  To change this script, modify ''utils/androidboot.cmd''.&lt;br /&gt;
For more fine-grained control, use the corresponding build systems directly (though looking at this script prove helpful).&lt;br /&gt;
&lt;br /&gt;
== Create a Tarball ==&lt;br /&gt;
The final step is wrapping all the generated files into a tarball with appropriate permissions.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/genrootfs&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ''out/target/product/overo'' directory, you should find the following files needed to make a [[Android_Prebuilt | bootable microSD card]].&lt;br /&gt;
* MLO&lt;br /&gt;
* u-boot.bin&lt;br /&gt;
* boot.scr&lt;br /&gt;
* uImage&lt;br /&gt;
* rootfs.tar.bz2&lt;br /&gt;
&lt;br /&gt;
''Note'': At the moment, the MLO built by the gumcompile will intermittently fail to boot a COM.  As such, the MLO found in the output directory is copied from a known good pre-built binary in the ''utils/'' directory.&lt;br /&gt;
&lt;br /&gt;
== Help and Help Out ==&lt;br /&gt;
These steps have refined from the [[http://code.google.com/p/rowboat/wiki/Main rowboat-android]] wiki and from [http://source.android.com google] documentation. Other useful links include:&lt;br /&gt;
* http://omapzoom.org/wiki/OMAP_Android_Main&lt;br /&gt;
* http://groups.google.com/group/android-porting?pli=1&lt;br /&gt;
&lt;br /&gt;
Patches, suggestions and improvements are most welcome---please send to ash (at) gumstix.com. Pull requests on the github repositories are likewise appreciated.&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5720</id>
		<title>Android Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5720"/>
				<updated>2011-12-01T16:52:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: /* Root File System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build Android from source [[Android_Source#Setup | from fresh]] or to update an [[Android_Source#Updating | existing source build]].  If you just want to [[Android_Usage | test drive Android]], you may prefer to use [[Android_Prebuilt | prebuilt images]].&lt;br /&gt;
&lt;br /&gt;
All the source code is freely available for download, customization, and improvement. This section explains how to set up a development machine to build all the required components from source. These instructions have been tested on Ubuntu Maverick (10.10) 32 and 64 bit machines; as a rough estimate, this process requires 10GB of hard drive space and takes 4 hours (30 minutes of setup, 1.5 hours to download code, and 2 hours to build) on a moderate development machine. Users with existing Android source can [[Android_Source#Updating | rapidly update]].&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Android requires Sun(tm) Java and some additional software packages. These instructions assume an Ubuntu system however for other systems, see [http://source.android.com/source/download.html these pointers]. Begin by adding the official java repository for your system ('lucid' is fine, even if you are using a different Ubuntu version) and installing a new version of Java (you'll need to agree to the license agreement).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get update&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install sun-java6-jdk&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo update-java-alternatives -s java-6-sun&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note, it is normal to get some ''error: no alternatives for...'' messages.&lt;br /&gt;
&lt;br /&gt;
Now, install other required software.  If you are building on a 64-bit machine (i.e. &amp;lt;code&amp;gt;&amp;lt;strong&amp;gt;uname -a|grep x86_64&amp;lt;/strong&amp;gt;&amp;lt;/code&amp;gt;), these packages are required:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For 32-bit machines, use these packages instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, install the '''repo''' tool. Repo is a tool to manage multiple Git repositories. You can install it wherever you like but if you have administrator rights, you might find this convenient:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &amp;gt; repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;chmod a+x repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo mv repo /usr/bin/repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetch Source Code ==&lt;br /&gt;
With Repo installed, it is possible to use a single manifest file that describes all the git repositories to be fetched.  More information about repo can be found [http://source.android.com/source/git-repo.html here]. These instructions place everything in a ''~/android'' directory but there is no restriction where this code is located.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;mkdir ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;cd ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Respond to the prompted questions to finish the initialization. This next step fetches all the code and may take an hour or so. If a particular repository checkout fails, re-issue this command until everything has been successfully fetched (and most regrettably, it can takes a few tries).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Tip:''' Use &amp;lt;code&amp;gt;repo sync -j2&amp;lt;/code&amp;gt; to do multi-threaded fetches (but be alert for repositories that fail to download).&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Users trying to get a fresh build system running can skip this section; this may be useful for those who have previously set up an Android repository or who wish to host their own manifest.&lt;br /&gt;
&lt;br /&gt;
To update from a previous android installation, simply issue these commands in your top-level directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repository Management ===&lt;br /&gt;
A manifest file is a XML file that describes a set of git repositories that, collectively, make up a project. In this case, most of the repositories are cloned directly from [http://android.git.kernel.org/ Google], OMAP3-specific tweaks come from the [http://gitorious.org/rowboat rowboat-android repositories], and items like the kernel and the bootloaders are pulled from [https://github.com/search?q=android&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1 Gumstix repositories]. To update the manifest and source code, simple issue the 'repo sync' command.&lt;br /&gt;
Manifests are themselves stored in a git repository so it is possible to use a manifest from a different git branch or commit.&lt;br /&gt;
To specify a new repository source, specify a new argument for the '-u' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u &amp;lt;git repository source URI&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To specify a different branch or revision, specify a new argument for the '-b' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -b &amp;lt;branch name&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
By default, the repo expects to use a file named ''default.xml'' as the manifest but it is possible to specify the specific manifest file to use.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -m &amp;lt;manifest.xml&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By forking the repository on github, it should be very easy to set up your own repository. For a look under the hood, navigate to the ''.repo'' directory.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
All required binaries and a root file system can be built for the Overo COM using the pre-built armel cross-compilers downloaded by repo.&lt;br /&gt;
&lt;br /&gt;
=== Root File System ===&lt;br /&gt;
In the simple case, just calling 'make PRODUCT-overo-eng' will build an [http://source.android.com/porting/build_system.html#androidBuildVariants engineering build] of the Overo target defined in ''device/gumstix/overo/AndroidBoard.mk''. As usual, the '-j&amp;lt;#&amp;gt;' switch allows for a multi-threaded build. However, the following commands actually pull in some convenient macros, select a predefined combination (see the ''device/gumstix/overo/vendorsetup.mk''; use ''choosecombo'' to select your own) and use the 'm' alias for make to build the root filesystem.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source build/envsetup.sh&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;lunch overo-eng&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The current build will not compile with out this hack, whoever maintains the sources should look into fixing this.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;find  . -type f -name '*.mk' -exec sed -i &amp;quot;s/Werror=strict-aliasing/Wall/g&amp;quot; '{}' \;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Then compile!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;m -j8&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' Those building with a 32-bit system will get angry warnings on the first build.  These can be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' To build a specific directory, navigate there and use the 'mm' macro or use the 'mmm' macro with the directory path as an argument.  As explained, 'make clean' and 'make clobber' will clean up any messes.&lt;br /&gt;
&lt;br /&gt;
After an hour or two, the build should complete with populated ''root'' and ''system'' directories in the ''out/target/product/overo'' directory.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders, Kernel, and SGX support ===&lt;br /&gt;
The x-load and u-boot bootloaders, the linux kernel, and the SGX graphics code each have their own build system. These have been crudely integrated with Android: repo fetches the necessary files and a simple script can be called to perform a clean build of each of these component:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumcompile&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' This also generates a ''boot.scr'' u-boot bootloader script to set the necessary environment variables on boot.  To change this script, modify ''utils/androidboot.cmd''.&lt;br /&gt;
For more fine-grained control, use the corresponding build systems directly (though looking at this script prove helpful).&lt;br /&gt;
&lt;br /&gt;
== Create a Tarball ==&lt;br /&gt;
The final step is wrapping all the generated files into a tarball with appropriate permissions.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/genrootfs&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ''out/target/product/overo'' directory, you should find the following files needed to make a [[Android_Prebuilt | bootable microSD card]].&lt;br /&gt;
* MLO&lt;br /&gt;
* u-boot.bin&lt;br /&gt;
* boot.scr&lt;br /&gt;
* uImage&lt;br /&gt;
* rootfs.tar.bz2&lt;br /&gt;
&lt;br /&gt;
''Note'': At the moment, the MLO built by the gumcompile will intermittently fail to boot a COM.  As such, the MLO found in the output directory is copied from a known good pre-built binary in the ''utils/'' directory.&lt;br /&gt;
&lt;br /&gt;
== Help and Help Out ==&lt;br /&gt;
These steps have refined from the [[http://code.google.com/p/rowboat/wiki/Main rowboat-android]] wiki and from [http://source.android.com google] documentation. Other useful links include:&lt;br /&gt;
* http://omapzoom.org/wiki/OMAP_Android_Main&lt;br /&gt;
* http://groups.google.com/group/android-porting?pli=1&lt;br /&gt;
&lt;br /&gt;
Patches, suggestions and improvements are most welcome---please send to ash (at) gumstix.com. Pull requests on the github repositories are likewise appreciated.&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5719</id>
		<title>Android Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Android_Source&amp;diff=5719"/>
				<updated>2011-12-01T16:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kevin Harrington: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains how to build Android from source [[Android_Source#Setup | from fresh]] or to update an [[Android_Source#Updating | existing source build]].  If you just want to [[Android_Usage | test drive Android]], you may prefer to use [[Android_Prebuilt | prebuilt images]].&lt;br /&gt;
&lt;br /&gt;
All the source code is freely available for download, customization, and improvement. This section explains how to set up a development machine to build all the required components from source. These instructions have been tested on Ubuntu Maverick (10.10) 32 and 64 bit machines; as a rough estimate, this process requires 10GB of hard drive space and takes 4 hours (30 minutes of setup, 1.5 hours to download code, and 2 hours to build) on a moderate development machine. Users with existing Android source can [[Android_Source#Updating | rapidly update]].&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Android requires Sun(tm) Java and some additional software packages. These instructions assume an Ubuntu system however for other systems, see [http://source.android.com/source/download.html these pointers]. Begin by adding the official java repository for your system ('lucid' is fine, even if you are using a different Ubuntu version) and installing a new version of Java (you'll need to agree to the license agreement).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get update&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install sun-java6-jdk&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo update-java-alternatives -s java-6-sun&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note, it is normal to get some ''error: no alternatives for...'' messages.&lt;br /&gt;
&lt;br /&gt;
Now, install other required software.  If you are building on a 64-bit machine (i.e. &amp;lt;code&amp;gt;&amp;lt;strong&amp;gt;uname -a|grep x86_64&amp;lt;/strong&amp;gt;&amp;lt;/code&amp;gt;), these packages are required:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
For 32-bit machines, use these packages instead:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib x11proto-core-dev libx11-dev expect uboot-mkimage&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, install the '''repo''' tool. Repo is a tool to manage multiple Git repositories. You can install it wherever you like but if you have administrator rights, you might find this convenient:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo &amp;gt; repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;chmod a+x repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;sudo mv repo /usr/bin/repo&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetch Source Code ==&lt;br /&gt;
With Repo installed, it is possible to use a single manifest file that describes all the git repositories to be fetched.  More information about repo can be found [http://source.android.com/source/git-repo.html here]. These instructions place everything in a ''~/android'' directory but there is no restriction where this code is located.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;mkdir ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;cd ~/android&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git -b linaro&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Respond to the prompted questions to finish the initialization. This next step fetches all the code and may take an hour or so. If a particular repository checkout fails, re-issue this command until everything has been successfully fetched (and most regrettably, it can takes a few tries).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Tip:''' Use &amp;lt;code&amp;gt;repo sync -j2&amp;lt;/code&amp;gt; to do multi-threaded fetches (but be alert for repositories that fail to download).&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Users trying to get a fresh build system running can skip this section; this may be useful for those who have previously set up an Android repository or who wish to host their own manifest.&lt;br /&gt;
&lt;br /&gt;
To update from a previous android installation, simply issue these commands in your top-level directory.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u git://github.com/gumdroid/android-manifest.git&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo sync&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repository Management ===&lt;br /&gt;
A manifest file is a XML file that describes a set of git repositories that, collectively, make up a project. In this case, most of the repositories are cloned directly from [http://android.git.kernel.org/ Google], OMAP3-specific tweaks come from the [http://gitorious.org/rowboat rowboat-android repositories], and items like the kernel and the bootloaders are pulled from [https://github.com/search?q=android&amp;amp;type=Everything&amp;amp;repo=&amp;amp;langOverride=&amp;amp;start_value=1 Gumstix repositories]. To update the manifest and source code, simple issue the 'repo sync' command.&lt;br /&gt;
Manifests are themselves stored in a git repository so it is possible to use a manifest from a different git branch or commit.&lt;br /&gt;
To specify a new repository source, specify a new argument for the '-u' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -u &amp;lt;git repository source URI&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To specify a different branch or revision, specify a new argument for the '-b' switch.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -b &amp;lt;branch name&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
By default, the repo expects to use a file named ''default.xml'' as the manifest but it is possible to specify the specific manifest file to use.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;repo init -m &amp;lt;manifest.xml&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By forking the repository on github, it should be very easy to set up your own repository. For a look under the hood, navigate to the ''.repo'' directory.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
All required binaries and a root file system can be built for the Overo COM using the pre-built armel cross-compilers downloaded by repo.&lt;br /&gt;
&lt;br /&gt;
=== Root File System ===&lt;br /&gt;
In the simple case, just calling 'make PRODUCT-overo-eng' will build an [http://source.android.com/porting/build_system.html#androidBuildVariants engineering build] of the Overo target defined in ''device/gumstix/overo/AndroidBoard.mk''. As usual, the '-j&amp;lt;#&amp;gt;' switch allows for a multi-threaded build. However, the following commands actually pull in some convenient macros, select a predefined combination (see the ''device/gumstix/overo/vendorsetup.mk''; use ''choosecombo'' to select your own) and use the 'm' alias for make to build the root filesystem.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source build/envsetup.sh&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;lunch overo-eng&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;m -j8&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' Those building with a 32-bit system will get angry warnings on the first build.  These can be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' To build a specific directory, navigate there and use the 'mm' macro or use the 'mmm' macro with the directory path as an argument.  As explained, 'make clean' and 'make clobber' will clean up any messes.&lt;br /&gt;
&lt;br /&gt;
After an hour or two, the build should complete with populated ''root'' and ''system'' directories in the ''out/target/product/overo'' directory.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders, Kernel, and SGX support ===&lt;br /&gt;
The x-load and u-boot bootloaders, the linux kernel, and the SGX graphics code each have their own build system. These have been crudely integrated with Android: repo fetches the necessary files and a simple script can be called to perform a clean build of each of these component:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/gumcompile&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
'''Note:''' This also generates a ''boot.scr'' u-boot bootloader script to set the necessary environment variables on boot.  To change this script, modify ''utils/androidboot.cmd''.&lt;br /&gt;
For more fine-grained control, use the corresponding build systems directly (though looking at this script prove helpful).&lt;br /&gt;
&lt;br /&gt;
== Create a Tarball ==&lt;br /&gt;
The final step is wrapping all the generated files into a tarball with appropriate permissions.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ &amp;lt;strong&amp;gt;source utils/genrootfs&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ''out/target/product/overo'' directory, you should find the following files needed to make a [[Android_Prebuilt | bootable microSD card]].&lt;br /&gt;
* MLO&lt;br /&gt;
* u-boot.bin&lt;br /&gt;
* boot.scr&lt;br /&gt;
* uImage&lt;br /&gt;
* rootfs.tar.bz2&lt;br /&gt;
&lt;br /&gt;
''Note'': At the moment, the MLO built by the gumcompile will intermittently fail to boot a COM.  As such, the MLO found in the output directory is copied from a known good pre-built binary in the ''utils/'' directory.&lt;br /&gt;
&lt;br /&gt;
== Help and Help Out ==&lt;br /&gt;
These steps have refined from the [[http://code.google.com/p/rowboat/wiki/Main rowboat-android]] wiki and from [http://source.android.com google] documentation. Other useful links include:&lt;br /&gt;
* http://omapzoom.org/wiki/OMAP_Android_Main&lt;br /&gt;
* http://groups.google.com/group/android-porting?pli=1&lt;br /&gt;
&lt;br /&gt;
Patches, suggestions and improvements are most welcome---please send to ash (at) gumstix.com. Pull requests on the github repositories are likewise appreciated.&lt;/div&gt;</summary>
		<author><name>Kevin Harrington</name></author>	</entry>

	</feed>