NanoPC-T4 不仅是世界上最小的全功能接口 RK3399 一体化主板, 而且是一款完全开源的高性能计算平台。它的尺寸只有 100x64mm,标配4GB LPDDR3 内存和 16GB 闪存, 板载2.4G & 5G 双频 WiFi 模组, 带有标准完整的 M.2 PCIe 接口, 可直接安装使用 NVME SSD 高速固态硬盘。

NanoPC-T4 还带有 MIPI-CSI 双摄像头接口, MIPI-DSI 和 eDP 双显示接口, HDMI 2.0 视频输出口,并具备 Type-C/DP,USB 3.0, USB2.0,MicroSD, 千兆以太网口,3.5mm 音频输出口,红外接收等常见标准接口,以及AD输入,调试串口,40Pin 树莓派兼容扩展口。

RK3399 内置新一代高端图像处理器Mali-T860, 具有超强的 3D 处理和超高清 H.265/H.264 视频解析能力,并可支持双路摄像头同时输入,双 ISP 像素处理能力高达 800MPix/s。

一、安装编译依赖软件包

搭建用于编译 Android 的环境,建议使用 64 位的 Ubuntu 16.04,需要安装如下软件包:

sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zip
sudo apt-get install flex curl libncurses5-dev libssl-dev zlib1g-dev gawk minicom
sudo apt-get install openjdk-8-jdk
sudo apt-get install exfat-fuse exfat-utils device-tree-compiler liblz4-tool

二、安装交叉编译器

安装 aarch64-linux-gcc 6.4,该编译器可用来编译 Linux 内核和 u-boot 的,用以下命令下载并安装:

git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
cd prebuilts/gcc-x64
cat toolchain-6.4-aarch64.tar.gz* | sudo tar xz -C /

国内从 github clone 速度很慢,可以从 gitee clone。

git clone https://gitee.com/friendlyelec/prebuilts.git -b master --depth 1

然后将编译器的路径加入到 PATH 中,用 vi/vim 编辑 ~/.bashrc。

vim ~/.bashrc

在末尾加入以下内容:

export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin:$PATH
export GCC_COLORS=auto

执行一下 ~/.bashrc 脚本让设置立即在当前 shell 窗口中生效。

. ~/.bashrc

安装完成后,用以下命令可以验证是否安装成功。

aarch64-linux-gcc -v

安装成功输出如下:

Using built-in specs.
COLLECT_GCC=aarch64-linux-gcc
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/6.4-aarch64/libexec/gcc/aarch64-cortexa53-linux-gnu/6.4.0/lto-wrapper
Target: aarch64-cortexa53-linux-gnu
Configured with: /work/toolchain/build/aarch64-cortexa53-linux-gnu/build/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=aarch64-cortexa53-linux-gnu --prefix=/opt/FriendlyARM/toolchain/6.4-aarch64 --with-sysroot=/opt/FriendlyARM/toolchain/6.4-aarch64/aarch64-cortexa53-linux-gnu/sysroot --enable-languages=c,c++ --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-cpu=cortex-a53 --with-pkgversion=ctng-1.23.0-150g-FA --with-bugurl=http://www.friendlyarm.com/ --enable-objc-gc --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --disable-libmpx --with-gmp=/work/toolchain/build/aarch64-cortexa53-linux-gnu/buildtools --with-mpfr=/work/toolchain/build/aarch64-cortexa53-linux-gnu/buildtools --with-mpc=/work/toolchain/build/aarch64-cortexa53-linux-gnu/buildtools --with-isl=/work/toolchain/build/aarch64-cortexa53-linux-gnu/buildtools --enable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-target-optspace --disable-libstdcxx-pch --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-indirect-function --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-gold --with-libintl-prefix=/work/toolchain/build/aarch64-cortexa53-linux-gnu/buildtools --disable-multilib --with-local-prefix=/opt/FriendlyARM/toolchain/6.4-aarch64/aarch64-cortexa53-linux-gnu/sysroot --enable-long-long --enable-checking=release
Thread model: posix
gcc version 6.4.0 (ctng-1.23.0-150g-FA)

三、Clone Android 8.1 源代码

FriendlyARM 将整个系统代码 Push 到了 GitLab,我们需要 Clone 整个仓库。

git clone https://gitlab.com/friendlyelec/rk3399-android-8.1 --depth 1 -b master

四、编译并生成 Image 文件

这里千万注意,源码 Clone 以后,千万不要习惯性使用和 AOSP 编译一样的动作去做。而是使用厂家提供好的 sh 运行。

cd rk3399-android-8.1
./build-nanopc-t4.sh -F -M

后面的 -F 参数代表了生成所有的镜像,比如 system.img、recovery.img…

-M 参数代表编译 rockdev image。烧写的时候会使用,其实就是把所有镜像都放到了 rockdev 目录下。

rk3399-android-8.1 目录下的 build-nanopc-t4.sh 是一个软链接。链接到了 device/rockchip/rk3399/build-nanopc-t4.sh。

lrwxrwxrwx   1 snake snake    41 Jul  3 23:44 build-nanopc-t4.sh -> device/rockchip/rk3399/build-nanopc-t4.sh

下面是编译可以跟的所有参数,我们看一下它的源码。一目了然注释的很清楚了。

build-nanopc-t4.sh

function usage()
{echo "Usage: $0 [ARGS]"echoecho "Options:"echo "  -a         build Android"echo "  -B         build U-Boot"echo "  -K         build Linux kernel"echo "  -W         build Wi-Fi drivers (.ko)"echoecho "  -F, --all  build all (U-Boot, kernel, wifi, Android)"echo "  -M         make rockdev image"echo "  -u         generate update.img"echoecho "  -h         show this help message and exit"exit 1
}

我编译了大约 3 个多小时完成了,期间由于前面用了 AOSP 编译方法,编译没有成功,最后 make clean,再次运行 build-nanopc-t4.sh 编译通过了。

五、烧写 Image

编译完成后,image 文件会存放在 rk3399-android-8.1 目录的 rockdev/Image-nanopc_t4 子目录下,参考以下步骤更新到 NanoPC-T4 上:

5.1 通过 EFlasher 工具进行烧写

5.1.1 eFlasher 介绍

eFlasher (eMMC-flasher) 是 FriendlyElec 官方发布的工具,让用户能方便和轻松地将系统安装到板载的 eMMC 上运行,甚至可以抛开电脑,就能让你在多个系统中,选择并安装上你想要的系统。

eFlasher 同时为量产提供了灵活的设置选项,以方便工厂量产时安装定制系统。

eFlasher 为方便使用,提供了图形界面与命令行两个版本,为方便描述,这里为它们分别命名为: eflasher-gui 和 eflasher-console:

  1. eflasher-gui: 有图形界面的 eFlasher,推荐有 LCD 屏或者 HDMI 显示的用户使用,可以使用触摸屏操作,没有触摸屏时也可以使用鼠标操作;

  2. eflasher-console: 命令行版本的 eFlasher,可在串口终端或者 ssh 命令行上使用;

5.1.2 eFlasher 的使用

  • 第一步: 下载 Win32DiskImager 和 rk3399-eflasher-android8-20200623.img.zip

在 Windows 下制作 SD 卡,还需要下载 Windows 下的烧写工具: win32diskimager.rar,解压后直接运行 Win32DiskImager.exe。

  • 第二步: 用 eFlasher 固件制作 SD 启动卡

在 Windows 下插入 SDHC 卡(限 4G 及以上的卡),以管理员身份运行 Win32DiskImager,选择 Image File 载入固件(rk3399-eflasher-android8-20200623.img.zip),选择你的 SD 卡盘符,点 Write 即开始写 Image 到 SD 卡;

如果电脑用的是 Linux 系统,你也可以用 dd 命令将解压后得到的 .img 文件直接写入 SD 卡完成启动卡的制作。

  • 第三步: 启动 eFlasher 工具

将制作好的 SD 卡插入开发板,长按 NanoPC-T4 上的 Power 键直到板上的 PWR 灯亮,系统会从 SD 卡启动,并自动启动 EFlasher 烧写工具。

方法1: 连接 LCD 或 HDMI 显示屏,在图形界面上操作 EFlasher,如果屏幕不支持触摸,则需要使用 USB 鼠标来操作;



方法2: 将开发板通过网线接入局域网,通过 ssh 登录开发板,然后输入命令 eflasher,根据命令行的提示进行操作;(注: ssh 登录的用户是 root,密码为 fa,开发板 IP 可查看路由器后台获得)
方法3: 通过调试串口登录到串口终端,在终端上输入命令 eflasher 来操作;
方法4: 连接一个 lcd2usb 配件到 NanoPC-T4 上,按配件上面的 K1 键可以选择要烧写的系统,然后按 K2 键确定烧写,烧写进度会在 lcd2usb 上显示。

烧写完成后,轻按 Power 键关机,从 NanoPC-T4 端弹出 SD 卡。长按 Power 开机,会从 eMMC 启动你刚刚烧写的系统。

以后烧写按照以下步骤即可:

  1. 将 EFlasher 启动 SD 卡 通过读卡器插入电脑,下面是读出之前使用的文件;


2) 我们需要将 rockdev/Image-nanopc_t4/ 子目录下的所有文件,拷贝并覆盖到 SD 卡 FRIENDLYARM 分区里的 android8 目录(idbloader.img 和 info.conf 保持);

  1. 将SD 卡插入 NanoPC-T4,重新烧写 Android 系统即可。

5.2 通过 Rockchip 提供的工具进行烧写

通过 USB Type-C 数据线,在 Windows 下用 Rockchip 提供的工具进行烧写。

详细操作步骤如下:

  • 初次使用时,请先下载 DriverAssitant_v4.5.zip,解压后安装 USB 驱动;

  • 下载 AndroidTool_Release_v2.71.zip 并解压,以管理员身份运行 AndroidTool.exe。

  • 可根据 Android 开发工具手册.pdf,导入分区配置即固件中的 parameter.txt,然后指定各分区的烧写文件路径,如下图所示:

这个表要自己根据 img 路径去填,每一项的地址和名字都要保证正确,不然打开工具会提示错误信息的。

连接好电源及显示设备,连接 Type-C 数据线到 PC,按住 Recovery 键再长按 1.5 s 以上 Power 键开机,AndroidTool 会显示“发现一个 LOADER 设备”。

a) 如果 eMMC 没有烧写过系统或 eMMC 的系统被擦除或损坏则会显示为 MASKROM 设备;

b) 也可以按住 BOOT 键再长按 Power 键开机,同时持续按住 BOOT 键 5 秒以上强制进入 MASKROM 模式;

c) 如果显示“没有发现设备”,请先检查是否已成功安装驱动,检查 Type-C 数据线然后按上述方法重新开机,或按住 Recovery 键再按 Reset 键;

d) 另外,如果已成功启动系统,可通过串口、adb 或 ssh 等方式在板子上运行 reboot loader 重启板子并进入 LOADER 模式。

点击 <执行> 即可下载固件到 eMMC,请耐心等待,烧写成功结束后将自动重启。

Android 8.1 【FriendlyARM】编译环境搭建与镜像烧写相关推荐

  1. android studio ndk HelloWorld 编译环境搭建

    android studio NDK helloworld 项目 第一步 android studio ndk 编译环境搭建 http://yunpan.cn/c3cCxxgwrqDaL 访问密码 6 ...

  2. Android系统源码编译环境搭建(清华镜像,想编译什么版本都可以,只是有JDK和make的版本要求)

    上一次,写得有点匆忙,现在补上清华镜像源码的详细下载方法. 编译Android 5.1源代码并烧录到Nexus4(用的是清华镜像的源) 环境准备: 基本环境:ubuntu-14.04-desktop- ...

  3. 嵌入式Linux之旅——环境搭建篇之烧写整个系统

    上一小结我们已经烧写完u-boot,我烧写的u-boot是板子厂家定制的,本小节将利用这个u-boot烧写整个系统.当然,在系统移植篇的时候也会涉及到如何定制一个u-boot. 烧写整个系统我们一个叫 ...

  4. 鸟人的Android揭秘(3)——Android 编译环境搭建

    一.主机环境要求 要顺利编译 Android 源代码,硬件环境和操作系统都必须满足一定的条件.官方推荐的硬件环境配置是: 编译 Gingerbread(2.3.x)及后续版本必须使用64位系统 需至少 ...

  5. Android源码编译环境搭建教程 (一) - Ubuntu系统构建

    Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...

  6. Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具)

    Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具) 在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一 ...

  7. rk3288 android编译环境搭建,RK3288系统编译及环境搭建

    准备工作 编译 Android 对机器的配置要求较高: 64 位 CPU 16GB 物理内存+交换内存 30GB 空闲的磁盘空间用于构建,源码树另外占用大约 8GB 官方推荐 Ubuntu 12.04 ...

  8. linux+4.4+android,Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法

    Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法跟Ubuntu 12.04 - 13.10 以及jellybean编译环境配置没多大区别, 顺便记录下而已: 64 ...

  9. ubuntu12.04平台下a80编译环境搭建

    如果出现unable to locate package ,则用sudo apt-get update 安装JDK6 下面开始安装jdk: 在网上查的一些资料上都是把jdk安装在/usr/lib/jv ...

最新文章

  1. android 6gb和8gb区别,手机6GB内存和8GB内存的差距到底有多大?你可能被忽悠了!...
  2. c++ websocket客户端_阿里面经WebSocket实时通信
  3. Fragment向ChildFragment传值
  4. 创意十足!25个服饰行业的网站设计作品
  5. python实时数据存储与显示_利用python进行数据加载和存储
  6. Centos7.x 安装JDK、Jenkins、Jmeter、ant
  7. DLL Injection and Hooking
  8. PPT设计制作与美化
  9. 基于3D关节点的人体动作识别综述
  10. tumblr android app,6 Best Tumblr Apps for Android and iOS (2018)
  11. C/C++ 机房预约系统
  12. ValueError: mode mismatch
  13. 使用CSS3实现圆形进度条
  14. 平面解析几何----余弦定理求焦点三角形的面积
  15. 如何在MSDN上下载操作系统
  16. 全自动软化水设备:25t/h全自动流量型软化水设备特点
  17. CSDN资源获取下载积分规则
  18. 有限差分法和有限体积法的区别
  19. 让AI玩俄罗斯方块 UCL ENGF2 CA4.1 作业
  20. nowcoder_A_放羊的贝贝_思维+数学

热门文章

  1. 【C语言】浮点型数据在内存中的存储方式
  2. Python使用numpy获取列表行数与列数
  3. Chrome双开(同一个版本配置两个独立的浏览器,附图)
  4. 关于umi dva的使用
  5. sqoop从oracle抽数到hive
  6. 数据分析 面经(已拿到offer)
  7. 利用蒲公英自动更新APP及其更新机制
  8. 国际短信平台接口调用的方法步骤,简单5步快速教程
  9. JS笔记_P72数组的四个主要方法
  10. 排序算法c语言描述---归并排序