Updated instructions to use Android on the Beagle board These instructions are derived from Embinux.org’s Android Porting Guide to Beagle Board, based on their work to port Android on the Beagle board. They correct multiple inaccuracies in this guide, and also add many useful details.
These instructions were tested on xubuntu 9.04. There shouldn’t be many differences if you use other recent Ubuntu or Debian versions.
Install needed software packages
At the time of this writing, note that Android requires Sun’s Java5 JDK, and doesn’t support the Java6 one.
apt-get update apt-get dist-upgrade apt-get install git-core bison sun-java5-jdk flex g++ zlib1g-dev apt-get install libx11-dev libncurses5-dev gperf uboot-mkimage
Android also uses its own
repo
script as a git front-end:mkdir -p ~/bin cd ~/bin wget http://android.git.kernel.org/repo chmod +x repoWe are also going to need a 2007q3 toolchain from Code Sourcery
cd wget http://www.codesourcery.com/sgpp/lite/arm/portal/package1787/public/arm-none-linux-gnueabi/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 cd /opt sudo tar jxf arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2You could also get this toolchain from our website:
cd wget http://free-electrons.com/pub/demos/beagleboard/android/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.lzma cd /opt sudo tar --lzma -xf ~/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.lzma
Download sources
Our instructions create a directory in your home directory, but of course, it can be placed anywhere!
If your corporate network doesn’t let you use the git protocol, you can use our snapshot available on http://free-electrons.com/pub/demos/beagleboard/android/:
mkdir ~/beagledroid cd ~/beagledroid repo init -u git://labs.embinux.org/repo/android/platform/beaglemanifest.git/ repo syncCaution: this can take a lot of time, as this downloads and extracts 2.4 GB of data. On a fast workstation with a 500KB/s Internet connection, it took about 90 minutes.
If your corporate network doesn’t let you use the git protocol, you can use our snapshot available on http://free-electrons.com/pub/demos/beagleboard/android/:
cd tar --lzma -xvf beagledroid-git-20090603.tar.lzma
Building Android
makeIf your workstation has multiple CPUs, you could save a lot of time by running multiple jobs in parallel:
make -j 4On our machine, this took about 4 hours!
Building the kernel
export CC_PATH=/opt/arm-2007q3/bin/arm-none-linux-gnueabi- cd ~/beagledroid/kernel ../vendor/embinux/support-tools/beagle_build_kernel.sh
Copying the Android root filesystem
Android’s root file system is generated in ~/beagledroid/out/target/product/generic
cd ~/beagledroid/out/target/product/generic mkdir ~/beagledroid/rootfs cp -a root/* ~/beagledroid/rootfs/ cp -a system/* ~/beagledroid/rootfs/system/ cd ~/beagledroid/rootfs sudo chown -R root.root . sudo chmod -R a+rwX data system
Formatting an MMC/SD card
First connect your card reader to your workstation, with the MMC/SD card inside. Type the
Type the
In a terminal edit partitions with
Now, create the boot partition:
Now, format the partitions in your card:
dmesg
command to see which device is used by your workstation. Let’s assume that this device is /dev/sdb
Type the
mount
command to check your currently mounted partitions. If MMC/SD partitions are mounted, unmount them.In a terminal edit partitions with
fdisk
:sudo fdisk /dev/sdbDelete any existing partition with the
d
command.Now, create the boot partition:
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-239, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-239, default 239): +64MChange its type to FAT32:
Command (m for help): t Selected partition 1 Hex code (type L to list codes): c Changed system type of partition 1 to c (W95 FAT32 (LBA))Using the
n
command again, create a second partition filling up the rest of your card (just accept default values).Now, format the partitions in your card:
sudo mkfs.vfat -n beagleboot -F 32 /dev/sdb1 sudo mkfs.ext3 /dev/sdb2Remove and insert your card again. Your new partitions should be mounted automatically.
Copying data to the MMC/SD card
Start by copying the X-loader and U-boot on the first partition.
cd /media/beagleboot wget http://free-electrons.com/pub/demos/beagleboard/android/MLO http://free-electrons.com/pub/demos/beagleboard/android/u-boot.bin cp ~/beagledroid/kernel/arch/arm/boot/uImage .Now copy the Android root filesystem to the second partition (assuming it is mounted on
/media/disk
:sudo rsync -a ~/beagledroid/rootfs/ /media/disk/Finish by unmounting your MMC/SD partitions:
sudo umount /media/beagleboot sudo umount /media/disk
Boot setup
The last thing left to do is to specify how the board boots Linux.
Plug the Beagle board on your computer, and also connect it to a DVI-D monitor. Start
First, stop Minicom from truncating long lines by typing
In the U-boot prompt, make the board boot automatically on the MMC/SD card:
Plug the Beagle board on your computer, and also connect it to a DVI-D monitor. Start
minicom
(corresponding to Hyperterminal in Windows) on /dev/ttyS0
, or on /dev/ttyUSB0
if you are using a serial to USB adapter. Power up the board.First, stop Minicom from truncating long lines by typing
[Ctrl] [a]
followed by z
and w
.In the U-boot prompt, make the board boot automatically on the MMC/SD card:
setenv bootcmd 'mmc init;fatload mmc 0 80000000 uImage;bootm 80000000' saveenvNow set the kernel command line arguments:
setenv bootargs console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 video=omapfb.mode=dvi:1280x720MR-24@50 init=/init rootfstype=ext3 rw rootdelay=1 nohz=off androidboot.console=ttyS2You may need to adapt the video settings to the capabilities of your DVI display. You should now see Android boot!
No comments:
Post a Comment
Thank You , For Immediate Assistance Plz Put Email Copy to Deviceporting@gmail.com