1. 在获取到source code之后,需要准备起码100G的空间供一个版本完整编译。本地服务器编译8G足以,虚拟机则需要16G ram
2. ubuntu版本尽量在12.04或者14.04,64bit为宜
1. JDK: JDK5: froyo跟之前的版本;
JDK6: gingerbread跟KK之间的
JDK7: L跟之后的版本
2. 更新源:默认的ubuntu源不行。需要找一个新源
sudo gedit /etc/apt/sources.list
添加deb http://archive.ubuntu.com/ubuntu maverick main restricteduniverse multiverse
sudo apt-get update
3. 安装必要的包
sudo apt-get install git gnupg flex bison gperf build-essential zip curllibc6-dev libncurses5-dev:i386 x11proto-core-dev
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utilsxsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
sudo apt-get install flex bison gperf build-essential curl zlib1g-dev zlop
sudo apt-get install g++-multilib
sudo apt-get install g++-4.4-multilib
(默认安装最新的:需要手动回退到4.4
1. 装完后在/usr/bin目录下 $ ls -lgcc*
2. 发现gcc 链接到gcc-4.6, 需要将它改为链接到gcc-4.4
3. sudo mv gccgcc.bak
4. sudo ln -s gcc-4.4gcc 同理:g++也按上述处理)
sudo apt-get install lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev
sudo apt-get install lib32readline5-dev ***这个不装也可以
sudo apt-get install lib32z1-dev wine mingw32 tofrodos libgl1-mesa-dev
这里的包有很多。都装上去算了。
JDK
1) Install
# apt-get update
# apt-get install openjdk-7-jdk
2) Switch
Change Java compiler:
# update-alternatives --config java
# update-alternatives --config javadoc
# update-alternatives --config javac
Select java 1.7:
There are 2 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk-amd64/bin/javac 1061 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/bin/javac 1061 manual mode
* 2 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1051 manual mode
Update also your .bashrc file with PATH variable. It must point to the new 1.7 jvm :
#echo $PATH
/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin:/usr/share/ant/bin
And source it to take changes into account
# source .bashrc
sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
4. 安装SSH
sudo apt-get install openssh-server
sudo /etc/init.d/sshstart
5. 安装svn和kdesvn
sudo apt-get install subversion
sudo apt-get install kdesvn
6. 设置共享
sudo mkdir /share
sudo chmod 777 /share
sudo chown ***(youraccount) /share
7. 固态硬盘
安装好启动后,在disk工具里格式化并创建分区
ls -al/dev/disk/by-uuid
找到固态硬盘的uuid
sudo gedit /etc/fstab
拷贝普通硬盘的mount指令,并修改uuid,在optional里加上
discard,noatime,nodiratime,errors=remount-ro
8. 重启电脑
编译uboot
1. 必须要进入u-boot目录下
2. make rk3288_defconfig //#会产生.config文件
3. make //#这里不要加-J8
4. 如果编译失败,那就再修改下u-boot下的权限
5. make distclean
6. make rk3288_defconfig
7. make
8. 在u-boot目录下会产生RK3288Loader_uboot_V2.19.04.bin类似这样的文件
编译产生的文件分为两种:
1. 只有RK3288Loader_uboot_V2.19.04.bin
2. RK3288Loader_uboot_V2.19.04.bin 和 uboot.img
如果只有一个文件,那么,就是合并在一起了,烧写的时候就不需要额外的uboot.img。不然就需要两个一起。
-------------------------------------得到RK3288UbootLoader_V2.19.06.bin或者RK3288UbootLoader_V2.19.06+uboot.img这要看实际情况
编译kernel
1. 必须进入kernel文件夹
2. 直接使用make zm97f.img,即可生成kernel.img和resource.img
------------------------------得到kernel.img和resource.img
编译主要的几个img
文档声称不需要source 跟lunch。但是,基于google原始做法,以及更确定需要的脚本,这两步不要省略
1. source build/envsetup.sh
2. lunch rk3288_user //#eng就改成rk3288_eng
3. make -j8
4. ./mkimage.sh
5. cd rockdev/Image-rk3288
拷贝出 image-rk3288里头的image
------------------------------得到system.img, resource.img, misc.img, boot.img
6.
完结
如果一切顺利。这里就有了RK3288UbootLoader_V2.19.06.bin,kernel.img,resource.img,system.img, resource.img, misc.img, boot.img
还少一个lollipop_parameter.txt。这个文件,可以从RK平台Android开发者打包工具获得。
DriverAssitant_v4.2 //RK平台烧录驱动----------------------
BatchTool //用于机器烧录固件
FactoryToolV4.4 //用于解包 Android 4.4版本 及一下版本的工具
FWFactoryToolV5.0 // 用于解包Android5.0,5.1 固件
AndroidTool开发者打包工具 //用于编译后代码 分散的img 直接的烧写,也支持整个update.img的更新。
SDK下面有RKDocs和RKTools,这里可以找到你所需要的大部分。还需要有个RK常用的工具包