最近,入手了一部 NanoPi R5S ,官方是提供了 Anroid 12 的系统镜像,但是却没有给出相应的源代码(2023年10月12日,NanoPi 官方已经给出了Android 12的源代码,整个共享目录大约130GB左右,建议直接使用官方源代码进行编译)。尝试用官方提供的 Anroid 11 编译,结果编译出的系统镜像无法正常运行。
凑巧看到 研华科技 放出了 RSB-4810 开发板的 Anroid 12 编译指南,两者的配置差不多,试了一下,竟然可以正常运行!!
系统要求,内存不低于 32GB,否则编译过程中可能会由于内存不足,造成编译失败。
研华科技 官方文档是通过 docker 利用 ubuntu 18.04 进行编译的,如下:
1. 配置 docker 运行环境
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo apt-get install docker $ sudo docker pull advrisc/u18.04-rk3399abv10:latest; # 注意,创建的目录必须是home的子目录,否则会在挂载的时候报错 # docker: Error response from daemon: error while creating mount source path '/data/r5s': mkdir /data: read-only file system. $ mkdir r5s $ sudo docker run --privileged -it --name android_S12 -v ~/r5s:/home/adv/BSP:rw advrisc/u18.04-rk3399abv10 /bin/bash $ sudo chown adv:adv -R BSP |
2. 下载源代码并进行编译
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ cd ~/BSP $ git clone https://github.com/ADVANTECH-Rockchip/repo.git $ mkdir rk3568_android_S12 $ cd rk3568_android_S12 $ git config --global user.name 'Your Name' $ git config --global user.email you@example.com $ git config --global http.postBuffer 52428800000 $ git config --global http.maxRequestBuffer 100M $ git config --global core.compression 0 $ ../repo/repo init -u https://dev.azure.com/AIM-Linux/RISC-RK3568-Android/_git/android-manifest -b rk3568-androidS12 -m RK3568_S12_AIV0001.xml $ ../repo/repo sync -c -f --no-clone-bundle -j16 |
3. 下载并解压缩编译工具( prebuilts.tar.gz 密码: 1234)
1 2 3 4 5 6 7 |
Exit docker and copy the file to /home/your-name/myandroid $ cp prebuilts.tar.gz ~/r5s/rk3568_android_S12/android In container and Unzip file $ docker attach android_S12 $ tar zxvf ~/BSP/rk3568_android_S12/android/prebuilts.tar.gz |
4. 编译代码
1 2 3 |
$ source build/envsetup.sh;lunch rsb4810_s-userdebug; $./build.sh -AUCKu |
5. 核对编译后的文件
编译完成后的产物在 rockdev/Image-rsb4810_s/ 目录下,具体的文件列表如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
MiniLoaderAll.bin baseparameter.img boot-debug.img boot.img config.cfg dtbo.img misc.img parameter.txt pcba_small_misc.img pcba_whole_misc.img recovery.img resource.img super.img uboot.img update.img vbmeta.img |
5. 刷机
按照正常的流程刷机,整个流程走起来会比较繁琐,此处给相对简单的做法。
-
- 到NanoPi R5S官方WIKI 去下载已经编译好的镜像
- 如果是需要SD卡刷机,则直接把下载到的镜像文件写入准备好的数据卡
- 用刚刚编译出的文件替换SD卡上的android12目录下的同名文件,注意,只替换同名文件,里面的配置文件不要删除
- 插上SD卡,重启即可完成刷机
- 如果使用USB刷机,则也可以通过替换文件的方式达到相同的目的