itop4412怎么编译linux镜像,Ubuntu 16.04下iTop4412环境搭建+Android4.0.3编译

系统:Ubuntu16.04.02

09a4db4ff1bc0be5491fe4a2474ce83d.png

安装库文件和JDK

使用cd 命令,进入解压出来的“Android_JDK” -->“jdk6”文件夹,运行脚本文件

“install-sun-java6.sh”。

进入解压出来的文件夹“Android_JDK”中运行脚本“install-devel-packages.sh”,安

装库文件。在Ubuntu 命令行中,执行命令“./install-devel-packages.sh”。

5d749c5a3397abb82a76089a01419e0f.png

解决:先删掉有问题的,最后安装它。

apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 g++-multilib tofrodos lib32ncurses5-dev python-markdown libxml2-utils xsltproc zlib1g-dev:i386

解决libgl1-mesa-glx-lts-quantal:i386:apt-get install libgl1-mesa-glx-lts-:i386(其中release的值拒取决于你的系统内核,比如的我使用16.04.2安装的ubuntu则release为wily,具体替换为什么值请参考:release)

解决libgl1-mesa-dev-lts-quantal:apt-get install libgl1-mesa-dev-lts-wily

5ecfc297812d09f1cf8486e4dac7bcf3.png

发现添加源后执行./install-devel-packages.sh不会报任何错误。

b77df4e7cf3429ff867a33995f2b66a2.png

494b6fec5e22e773b4bed5030b3bf45c.png

降低 GCC 版本

1.apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib

2.update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 100

3.update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50

4.update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 100

5.update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50

6.update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.4 100

7.update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-5 50

8.gcc -v

7080bab419f3b21ff0fb2e2c772ef7a5.png

Uboot编译:

9fe71c09a6c63df3bd28ddbed8e50be9.png

内核编译出错make zImage

e6f1830089e41e31dce888463c42f1eb.png

解决办法:

其实,提示的错误信息已经明确告诉你了,你应该省略defined().

这里,我们打开 kernel/timeconst.pl

@val = @{$canned_values{$hz}};

if (!defined(@val)) {

@val = compute_values($hz);

}

output($hz, @val);

将if (!defined(@val)) 改为if (!@val),再次编译就可以通过了。

查了一下更新,发现其中有一项是perl版本升级到了 v5.22.1,然后查了perl官方文档,发现官网因为一个bug,该版本将defined(@array)去掉了。可以直接使用数组判断非空。

0ada5f664d7cfdd81602ad5176442696.png

Android4.0.3编译:

d3a4bca95caef201af255232e4cf4fca.png

解决办法:

1.卸载make 4.1

apt-get install make

2.下载安装make 3.81

root@love-xin:/home/hou/下载# tar -xvzf make-3.81.tar.gz

root@love-xin:/home/hou/下载# cd make-3.81

root@love-xin:/home/hou/下载/make-3.81# ./configure --prefix=/home/hou(指定目录,要不然安装完后就是在usr/local/bin/make ,这样就是在/usr/bin/make 存在2个make)

root@love-xin:/home/hou/下载/make-3.81# sh build.sh

root@love-xin:/home/hou/下载/make-3.81# ./make install

root@love-xin:/home/hou/下载/make-3.81# cp /home/hou/bin/make /usr/bin/

c4c0ba71eaf7be0cbee658e5658b23c6.png

开始编译源码时间:2016年5月19日07:46:23

完成编译源码时间:2016年5月19日15:18:52(包括处理问题等其他事情)

出错1:

448e80fa2b59e1448e5a04629af597d1.png

解决方法是安装perl的switch库:(apt-get install libswitch-perl)

出错2:

c6c612dbd9be6cd0aee1b5a995c9b5ea.png

解决方法:

在dalvik/vm/native/dalvik_system_Zygote.cpp中间增加一个头文件定义#include

#include "Dalvik.h"

#include "native/InternalNativePriv.h"

#include

出错3:

48a79a412a73074ec93b71683c76a35a.png

问题是内存不足。我用的是2G运行内存,加大到3G继续。

出错4:

d1406dd4408cef880a60487f1b23fee6.png

解决方法:此问题是因为编译android4.0需要4GB的RAM或SWAP空间,而ubuntu默认的1GB的,所以,增加swap空间即可。

分配给虚拟机4G内存RAM,并且我在这里强烈建议,虚拟机的初始硬盘空间最好给60G以上

如果您的电脑内存实在是太小的话,可以使用SWAP命令去实现虚拟内存,实现的方法如下:

1.创建一个swap文件(大约需要10分钟)

sudo dd if=/dev/zero of=/boot/swapfile bs=1024 count=4194304

2.格式化文件,使其成为swap(交换设备)

sudo mkswap -v1 /boot/swapfile

3.将swap加入到现有系统中

sudo swapon /boot/swapfile

4.执行free命令

free

5.做永久性变更

sudo vi /etc/fstab

使用vi编辑器,打开fstab文件之后,在文件的末尾加上如下一行

/boot/swapfile swap swap defaults 1 1

出错5:

038359a77202b85dbf87bcd6ee576c1b.png

解决方案是:

1. 将 iTop4412_uboot_scp_20141224.tar

iTop4412_Kernel_3.0_20150403.tar

iTop4412_ICS_20150413.tar

解压出来的三个文件夹,放在同一个目录下

2. 将 uboot/tools/目录里面的 mkimage.c 和 mkimage.h 复制到 /usr/bin/ 目录下(或者在.bashrc文件中添加PATH路径)

3. 执行apt-get install u-boot-tools 命令

成功!

24712eb66813f89ddde9a783ceb1ca4c.png

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值