Android底层开发(一)Android源码编译

Android源码编译分为三部分:uboot编译,内核编译,文件系统制作
一、编译uboot—-路径是/home/george/src_210
1》拷贝到ubuntu,并解压
tar -xvf uboot-fs210_V5.tar.bz2
这里写图片描述
2》修改交叉编译器——vim Makefile
149 CROSS_COMPILE = /opt/toolchain/toolchain-4.3.2-farsight/bin/arm-none-linux-gnueabi-
3》选择平台—-开发板
make fs210_nand_config
Configuring for fs210_nand board…
4》编译
make -j2
生成 —- u-boot.bin
/opt/toolchain/toolchain-4.3.2-farsight/bin/arm-none-linux-gnueabi-objcopy –gap -fill=0xff -O binary u-boot u-boot.bin
/opt/toolchain/toolchain-4.3.2-farsight/bin/arm-none-linux-gnueabi-objdump -d u- boot > u-boot.dis

二、编译内核——路径是/home/george/src_210/linux-3.0.8-FS210
1》拷贝到ubuntu,并解压
tar -xvf linux-3.0.8-FS210.tar.bz2
2》修改交叉编译器vim Makefile
195 ARCH ?= arm
196 CROSS_COMPILE ?= /opt/toolchain/toolchain-4.5.1-farsight/bin/arm-none-linux-gnueabi-
3》选择soc
cp config_for_FS210_Android_v1.0 .config
4》执行 make menuconfig
或者vim arch/arm/mach-s5pv210/mach-fs210.c
修改下面结构体:
static struct dm9000_plat_data smdkv210_dm9000_platdata = {
.flags = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM,
.dev_addr = { 0x00, 0xe9, 0x00, 0xff, 0xec, 0xee },//修改0xee为0x55
};

5》编译 make uImage

三、编译Android源码——路径是/home/george/src_210/android4.0-fs210_v2
1》设置初始化编译环境,执行脚本——设置交叉编译器,同时会生成一个命令:lunch

        george@George-JI:~/src_210/android4.0-fs210_v2$ source ./build/envsetup.sh    //每一次打开终端时,都必须执行
        including device/farsight/fs210/vendorsetup.sh
        including device/moto/stingray/vendorsetup.sh
        including device/moto/wingray/vendorsetup.sh
        including sdk/bash_completion/adb.bash
2》选择一个产品 ------ 开发板

george@George-JI:~/src_210/android4.0-fs210_v2$ lunch 或者 lunch full_fs210-eng
full —- 将一个标准的Android系统中必须有的输入法等一些内置应用全部编译出来
fs210—- 产品名,华清,华为,小米等
eng—-工程师
* 注意:每一次打开一个新的终端,都要执行上面两个步骤.*
Android底层开发(一)Android源码编译_第1张图片

3》编译Android源码 make( 如果源码已经编译过了,跳过这步骤)

你可能感兴趣的:(Android)