[Tiny4412]ubuntu14编译Android5.0.2
说在前面
目标:友善之臂 tiny4412
操作系统:ubuntu14.04(建议使用16.04及以下版本,第一次搞的时候用的18,出现一大堆问题,其中最难搞的就是openjdk-7的安装,貌似tiny4412必须得用openjdk7)ubuntu镜像地址
Android内核版本:5.0.2(这没啥说的,板子要求用的,网盘地址,提取码 4ojs,分卷压缩,解压part1)
Linux内核:linux-3.0.86(提取码 ct9r 这个是板子的CD里面提供的)
交叉编译器: arm-linux-gcc-4.5.1(提取码 ct9r 这个也是板子的CD里面提供的)
openjdk版本: openjdk-7-jdk (在ubuntu里面进行安装)
然后开始吧!
第一步:安装操作系统
ubuntu可以选择使用虚拟机或者直接装双系统,这里选择双系统(由于编译过程太过艰难,选择双系统应该好一点)
具体过程可以参考下面的教程:
但是一定要注意,分配给ubuntu的空间要足够大,不然编译过程中出现空间不足的情况就惨了(我两次编译都出现了这个情况,太惨了),大小至少50G+,笔者分配了80G,同时建议只分三个区(/ --根目录 /boot --引导 swap --交换区)
(在搞完整个编译过程后,若对ubuntu不敢兴趣了,还可以直接删了,也不是很麻烦,所以和虚拟机比起来也不会太复杂,这个)
第二步:安装编译环境
- 添加镜像源
gedit /etc/apt/sources.list (root权限相关)
在文件最后添加如下代码:
deb http://ftp.sjtu.edu.cn/ubuntu trusty main universe
apt-get upgrade
apt-get update
- 安装openjdk
add-apt-repository ppa:openjdk-r/ppa
apt-get update
apt-get install openjdk-7-jdk
(若install出错,请尝试 apt-get install openjdk-7-jdk --fix-missing; 若出现缺失build-essential,也可使用 apt-get install build-essential)
验证安装:java -version
- 安装工具包
./install-devel-packages.sh (这个放在网盘了,和交叉编译器放在一块,这里可能会出错,但是忘记是啥了)
- 配置交叉编译器
tar -xvsf arm-linux-gcc-xxxx-tgz -C / (最后面-C /注意一下)
设置环境变量
gedit /etc/environment
在末尾添加 /opt/FriendlyARM/toolschain/4.5.1/bin
重启系统后
arm-linux-gcc -v
第三步:编译Linux内核
tar -xvfz linux-3.0.86-xxxx.tgz -C / (路径随意)
cd /linux-3.0.86 (刚刚解压的文件夹里)
cp tiny4412_android_defconfig .config (注意那个点)
apt-get install libncurses5 libncurses5-dev
make menuconfig
选择exit
make -j8
linux-3.0.86文件夹下内容
第四步:编译Android
tar -xvfz android-5.0.2-xxxx.tar.gz -C / (这东西解压后就10G+,来个强大点的电脑啊)
cd /android-5.0.2 (进入刚刚解压的文件夹)
source setenv
cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
make -j8 (这个过程大概用了4小时,对电脑配置依赖挺大的)
(开始极其艰难的编译过程,可能会出现各种意料之外的错误,若出错,可以尝试一下make update-api,然后继续make -j8;如果不行,那只能百度/google看看了;另外,make update-api 不需要在第一次make 前执行,在出错后执行即可,并且该命令执行时间不长)
编译完成后的android-5.0.2文件夹属性,大小41.5GB,842539项,所以一定要预留足够的空间啊!!!
第五步:生成镜像文件
还是android那个文件夹;
apt-get install u-boot-tools
./gen_img.sh
终于折腾完了!