在开始之前,先要交代下环境.
系统和软件配置:与NanoPi K2编译环境一致.(包括JDK和基本软件都要安装)
磁盘空间:100GB+ (需要CCACHE则多附加100GB)
软件包:NanoPC_T2-T3_Sources.tar.xz
注意:切换目标,应经常make clean等操作.最好就是一套源码,只为一个板子.出现问题最好能dd清空SD卡.
接着还要对软件目录有个概念认知,因为官方描述实在太模糊,所以让我很不解.而且官方分到了很多个文件,更是烦人.
我已经全部整合了一下.但是未做任何功能修改(有些不改编译不过的还是改了,但是功能绝对还是在的.代码里面还很多垃圾文件,也从来未管过.)
android_kitkat_4.4.2 => 安卓4.4源码,只适用于NanoPC-T2
android_lollipop_5.1.1_r6 => 安卓5.1源码,通用.
debian_nanopi2 => 生成boot.img重要工具,通用.
linux-3.4 => Android 内核(也可以用于Linux,不推荐.),通用.
linux-4.4 => Linux内核,通用.
nexell_linux_platform => 也许是三星特有代码,通用.
prebuilts => 预置工具链,Linux平台,通用.
sd-fuse_s5p4418 => 内置软件包的NanoPC-T2烧写工具.
sd-fuse_s5p6818 => 内置软件包的NanoPC-T3烧写工具.
u-boot-v2014.07 => 安卓用引导(也可以用于Linux,不推荐.),通用.
u-boot-v2016.01 => Linux用引导,通用.
我们先看看烧写镜像,写入方法很多,其中sd-fuse是其中一种.支持的系统也有所不同.具体烧写命令格式如下.(sd-fuse_s5pXXXX 是烧写工具目录,切换到该目录下执行.)
sudo ./fusing.sh /dev/sdb lubuntu
如下图,红框就是支持的系统.(注意这里是不同平台,eflasher是烧写到EMMC用的.)
烧写是非常简单的操作,每个文件夹里面就是要写入的文件,后面会用到.(如果要替换里面的内容,直接替换就可以了.)
一般系统镜像烧写是非常简单的,写入后就可以启动,可能复杂一点,也许就是eflash的吧.(他本质是个烧写器.专门烧写EMMC的.),他烧写后启动,有提示,要自己放镜像,就没有再继续测试了.
PS:烧写elflash提示缺少一个文件,实际测试无影响.
那么接下来记录下如何编译各种,这个板子的最初级BL不是开源的,GPU本身也不开源,要自己做rootfs并且适配GPU,只能复制对应文件.首先当然是准备环境.把工具链位置加入PATH.(我是临时运行一下,临时配置环境.)
export PATH=/home/tater/android/prebuilts/gcc-x64/aarch64-cortexa53-linux-gnu-6.4/bin:/home/tater/android/prebuilts/gcc-x64/arm-cortexa9-linux-gnueabihf-4.9.3/bin:$PATH
我们到linux-4.4目录,尝试编译Linux 4.4内核.有两个主要目标,根据平台选择.(虽然是这样,但是同时只能存在一个平台配置.)
make ARCH=arm nanopi2_linux_defconfig
m