Android源码编译(一)----------->TI-Android-GingerBread-2.3-DevKit-1.0 系统定制(just for beagleboard xm Rev B)
来源:互联网 发布:游戏编程入门自学 编辑:程序博客网 时间:2024/05/23 20:19
================================================================
转载请注明出处
================================================================
1.Installing the JDK
The Sun JDK is no longer in Ubuntu's main package repository. In order to download it, you need to add the appropriate repository and indicate to the system which JDK should be used.
Java 6: for Gingerbread and newer
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"$ sudo apt-get update$ sudo apt-get install sun-java6-jdk
Java 5: for Froyo and older
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper main multiverse"$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse"$ sudo apt-get update$ sudo apt-get install sun-java5-jdkNOTE: Android Gingerbread (2.3) needs Java 6 on ubuntu, whereas the previous version FroYo (2.2) was using Java 5.
(也可以直接下载:Eclipse---> http://www.eclipse.org/downloads/packages/release/galileo/sr2
JDK6----> http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u27-download-440405.html
android SDK:-----> http://developer.android.com/sdk/index.html)2.Installing required packages
To set up your development environment, install the following required packages:
$sudo apt-get install git-core gnupg gperf libsdl-dev libesd0-dev$sudo apt-get install libwxgtk2.6-dev zip curl minicom tftpd$sudo apt-get install uboot-mkimage libx11-dev libncurses-dev$sudo apt-get install expect bison build-essential flex zlib1g-dev
3.Installing Repo
Repo is a tool that makes it easier to work with Git in the context of Android. For more information about Repo, seeVersion Control.
To install, initialize, and configure Repo, follow these steps:
Make sure you have a bin/ directory in your home directory, and that it is included in your path:
$ mkdir ~/bin$ vim ~/.bashrc$ source ~/.bashrc
Download the Repo script and ensure it is executable:
$ curl https://android.git.kernel.org/repo > ~/bin/repo$ chmod a+x ~/bin/repo
The MD5 checksum for repo is bbf05a064c4d184550d71595a662e098
Download the Repo script and ensure it is executable:
$ curl https://android.git.kernel.org/repo > ~/bin/repo$ chmod a+x ~/bin/repo
The MD5 checksum for repo is bbf05a064c4d184550d71595a662e098
4.Initializing a Repo client
After installing Repo, set up your client to access the android source repository:
Create an empty directory to hold your working files:
$ mkdir rowboat-android $ cd rowboat-android
To check out a branch other than "master", specify it with -b or -m:
$ repo init -u git://gitorious.org/rowboat/manifest.git -m TI-Android-GingerBread-2.3-DevKit-1.0.xml$ repo sync
Initializing project bionic ...
remote: Counting objects: 5927, done.
remote: Compressing objects: 100% (2235/2235), done.
remote: Total 5927 (delta 4097), reused 5384 (delta 3631)
Receiving objects: 100% (5927/5927), 2.44 MiB | 57 KiB/s, done.
Resolving deltas: 100% (4097/4097), done. 。。。。(它就开是同步下载源码了!开心吧,你趁现在去喝杯咖啡吧!)
5.Verifying Git Tags
Load the following public key into your GnuPG key database. The key is used to sign annotated tags that represent releases.
$ gpg --import
Copy and paste the key(s) below, then enter EOF (Ctrl+D) to end the input and process the keys.
-----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v1.4.2.2 (GNU/Linux)mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSVlFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw78tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMDu4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0ZwNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5kcm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAlQN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806UphisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbkC2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMXLWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/MpK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7sKZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phbN8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjAvUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwoG1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQhN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0lEXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM==Wi5D-----END PGP PUBLIC KEY BLOCK-----
源码Tree 下载结束后,会有以下的文件:
This will generate the sources for
- Android File system
- Android Linux Kernel (in kernel directory)
- u-boot boot loader (in u-boot-omap3 directory)
- x-loader (in x-load-omap3 directory)
- Toolchain (prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin)
6.Tool chain setup
Setup the tool-chain path to point to arm-eabi- tools in prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin
$ export PATH=~/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin:$PATH
7.Compilation procedure(编译步骤)
To build x-loader
Execute the following commands
$ make CROSS_COMPILE=arm-eabi- distclean $ make CROSS_COMPILE=arm-eabi- omap3beagle_config $ make CROSS_COMPILE=arm-eabi-
This command will build the x-loader Image "x-load.bin"
To create the MLO file used for booting from a MMC/SD card, sign the x-loader image using the signGP tool found in the Tools/signGP directory of the Devkit.
$ ./signGP ./x-load.bin
The signGP tool will create a .ift file, rename the x-load.bin.ift to MLO
$ mv x-load.bin.ift MLO
To build boot loader (u-boot)
- Change directory to u-boot-omap3
$ cd u-boot-omap3
- Do the following to build u-boot for AM37x / DM3730 EVM
$ make CROSS_COMPILE=arm-eabi- distclean $ make CROSS_COMPILE=arm-eabi- omap3_beagle_config $ make CROSS_COMPILE=arm-eabi-
This command will generate the u-boot Image "u-boot.bin"
NOTE: Copy the "mkimage" from "tools" folder to ~/usr/bin folder on your host machine, this is needed for kernel uImage generation
To build Linux kernel
- Change directory to kernel
$ cd kernel
- Do the following to build sources for AM37x/DM3730 EVM
$ make ARCH=arm CROSS_COMPILE=arm-eabi- distclean $ make ARCH=arm CROSS_COMPILE=arm-eabi- omap3_beagle_android_defconfig $ make ARCH=arm CROSS_COMPILE=arm-eabi- uImageThis will generate uImage (kernel image) in kernel/arch/arm/boot folder
To build Android filesystem
To Build the root file system for AM37x and DM37x (Beagle XM, AM37x/DM37x REV G EVM)
$ make TARGET_PRODUCT= <product name> OMAPES=5.x -j8e.g:$ make TARGET_PRODUCT=beagleboard OMAPES=5.x -j4NOTE: product name can be beagleboard or omap3evm or am3517evmPrepare the root filesystem:
$ cd out/target/product/beagleboard $ mkdir android_rootfs $ cp -r root/* android_rootfs $ cp -r system android_rootfs $ sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2The rootfs.tar.bz2 is the android filesystem, it can be put on a SD/MMC Card or used our NFS.
To generate SD/MMC card to boot Android
These compiled Images can be copied to a SD / MMC card to boot Android on AM37x EVM
- Generate boot.scr using mk-bootscr from tools folder
$ ./mkbootscr
- Copy all the images to one folder
$ mkdir image_folder $ cp kernel/arch/arm/boot/uImage image_folder $ cp u-boot-omap3/u-boot.bin image_folder $ cp x-loader-omap3/MLO image_folder $ cp Tools/mk-bootscr/boot.scr image_folder $ cp out/target/product/omap3evm/rootfs.tar.bz2 image_folder $ cp media_clips image_folder $ cp Tools/mk-mmc/mkmmc-android.sh image_folder $ ./mkmmc-android <sd card mounted dev folder example:/dev/sdc> MLO u-boot.bin uImage boot.scr rootfs.tar.bz2 Media_Clips> netcfg lo UP 127.0.0.1 255.0.0.0 0x00000049 eth0 UP 172.24.190.59 255.255.252.0 0x00001043 > netcfg usb0 dhcp -- if u have dhcp enabled network this will assign ip to yuor beagle board dynamically> getprop net.usb0.dns1 -- This will give u the ip of the router > setprop net.dns1 (IP-- which u get from previous commnad)8.Installation RowboPERF
The RowboPERF application is already integrated to the pre-built file systems provided as part of Android FroYo DevKit. When building from sources, RowboPERF applications need to be integrated to the filesystem before preparing the rootfs tarball.
- Extract the Performance_Apps.tar.gz to some suitable director
#> tar -xvzf ~/Performance_Apps.tar
- Assume <rowboat-source>/out/target/product/omap3evm/android_rootfs is the android rootfs directory, Invoke the install_rowboperf.sh script provided inside the RowboPERF package pr android_rootfs directory as arguement.
#> cd ~/Performance_Apps #> ./install_rowboperf.sh ~/rowboat-android/out/target/product/beagleboard/android_rootfs$ sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2The rootfs.tar.bz2 is the android filesystem, it can be put on a SD/MMC Card or used our NFS.
- Android源码编译(一)----------->TI-Android-GingerBread-2.3-DevKit-1.0 系统定制(just for beagleboard xm Rev B)
- Android源码编译(二)----------->Android’s kernel for beagleboard-xm
- Android源码编译(三)----------->beagleboard-xm u-boot
- TI-Android-GingerBread-2.3.4-DevKit-2.1 PortingGuides
- TI-Android-GingerBread-2.3.4-DevKit-2.1 PortingGuides
- Android源码编译(四)----------->Beagleboard-xm — Initialization & x-load (DM3730 process)
- 移植Android GingerBread 2.3.4系统到BeagleBoard OMAP3530
- 编译Android Gingerbread(2.3)源码
- 编译Android 2.3 Gingerbread Source
- 从头开始为BeagleBoard编译Android系统
- 从头开始为BeagleBoard编译Android系统
- 在TI-Omap3530上移植Android GingerBread 2.3.4
- 在TI-Omap3530上移植Android GingerBread 2.3.4
- 玩转BeagleBoard xM——通过Repo下载Android 4.0 ICS源码
- 解决Android Gingerbread (2.3) 编译错误
- 如何将android(gingerbread)源码导入eclipse里面
- 如何将android(gingerbread)源码导入eclipse里面
- Beagleboard上android 4.0的移植(一)
- 【java】序列化
- 【原创】linux如何给自己写的脚本程序加个环境变量
- ubuntu/wireshark: There are no interfaces on which a capture can be done.故障解决
- Android高性能文件类MemoryFile
- java 读取另外一台局域网机器上的文件
- Android源码编译(一)----------->TI-Android-GingerBread-2.3-DevKit-1.0 系统定制(just for beagleboard xm Rev B)
- 青年人初入职场
- java基础问题----java中有几种方法可以实现一个线
- android 什么是appwidget
- 保存数据的一系列方法
- C关键字volatile
- Visual Studio 2010 和 Boost库编译、开发
- android的apk文件的xml提取
- SQLServer2005发布订阅(转)