1.适用范围
本文档主要介绍全志 T3 平台量产 SylixOS 系统的方法。区别于《AllWinnerT3量产使用手册.docx》,本文主要介绍如何生成可通过 Phoenixsuit 或 PhoenixCard 软件直接烧录的 img 文件。
2.准备工作
- T3 平台设备,已在 EMMC 上固化 SylixOS、APP、运行环境,等待打包
- USB 转串口设备一个
- Ubuntu 虚拟机
- T3 设备 lichee 开发环境
3.概述
整体打包流程大致由4步组成,如图 3.1所示。
图 3.1 整体打包流程
4.生成 EMMC 恢复镜像
在系统中使用 df 命令确认当前文件系统使用量,以确认需要保存的 EMMC 空间大小。如图 4.1所示,由此可知当前文件系统使用量不超过 100M,加上 80M 保留分区与 80M 启动分区,当前需要保存的 EMMC 空间为 260M。
图 4.1 查看EMMC使用情况
拷贝的 EMMC恢复镜像无法保存在 EMMC中,这里使用 nfs 方式。在 PC 段启动 NFS 服务器,在设备上使用如下命令挂载目录:
# mount -t nfs 192.168.1.12:/nfsroot /mnt/nfs
FTP传输t3_mking到apps目录内,执行如下命令在nfs中生成 EMMC 恢复镜像
# /apps/t3_mkimg -t mmc -s 260 -o /mnt/nfs/sylixos_emmc.bin
其中 260 表示拷贝 260M 空间,成功后可在 nfs 目录下看到对应的文件。
5.生成SylixOS量产镜像
根据《ROMFS 使用手册.docx》创建基于 RomFs 的镜像。在 RomFs 文件系统的 /apps/目录下放入 EMMC 恢复镜像和 t3_producer,/lib/ 目录下放入 libvpmpdm.so,/usr/bin/ 下放入 dd 可执行文件(libvpmpdm.so、dd 在 base 中生成)。
系统启动 main 函数中执行如下操作:
printf("updating emmc...\n");
system("/apps/t3_producer -i /apps/sylixos_emmc.bin -o mmc");
printf("update success! rebooting\n");
system("reboot");
最终生成 SylixOS 量产镜像 bspallwinnert3_cqr40.bin
6.生成烧录镜像
1、打开 Ubuntu 虚拟机,进入全志 SDK lichee 开发目录,先做一次编译,保证编译完成。
$ cd ttu-n_original
$ sudo ./build.sh
2、拷贝 SylixOS 量产镜像到全志编译 SDK 目录 ttu-n_original\tools\pack\SylixOS 下;
3、修改文件 ttu-n_original\tools\pack\pack
在 function do_common() 中 if [ "x${PACK_PLATFORM}" = "xdragonboard" ] ; 条件内增加拷贝系统镜像到 boot-resource/ 目录
cp ../SylixOS/bspallwinnert3_cqr40_cpu0.bin boot-resource/
如图 6.1所示。
图 6.1
4、修改文件 ttu-n_original\tools\pack\chips\sun8iw11p1\configs\default\env_dragon.cfg
添加:sylixos_run=fatload mmc 2:2 0x40100000 bspallwinnert3_cqr40_cpu0.bin;go 0x40100000;
并修改 bootcmd :
bootcmd=run sylixos_run
如图 6.2所示
图 6.2
5、修改文件 ttu-n_original\tools\pack\chips\sun8iw11p1\boot-resource\boot-resource.ini
改:
size=131072
为:
size=524288
如图 6.3所示
图 6.3
修改文件:
ttu-n_original\tools\pack\chips\sun8iw11p1\configs\magton-p1\sys_partition_dragonboard.fex
改:
[partition]
name = boot-res
size = 32768
downloadfile = "bootloader.fex"
user_type = 0x8000
为:
[partition]
name = boot-res
size = 1048576
downloadfile = "bootloader.fex"
user_type = 0x8000
注意:此处为创建自加载镜像临时修改,创建后需恢复
如图 6.4所示。
图 6.4
5、在根目录下打包生成新镜像
$ cd ttu-n_original
$ sudo ./build.sh pack
最终生成文件如图 6.5所示。
图 6.5
7.烧录过程
使用 Phoenixsuit 或 PhoenixCard 软件在新设备上直接烧录最终生成的 IMG 文件即可。这是演示 Phoenixsuit 通过 USB 烧录过程。
- 板卡断电,将 boot 引脚接地(根据不同板卡而定,可能是按键也可能是短接冒);
- 打开 Phoenixsuit 软件,选中“一键刷机”,选择需要烧录的镜像,如图 7.1所示;
图 7.1
- 板卡上电,插上 USB 线,Phoenixsuit 会自动提示是否刷机,确认即可(若没有提示可能是缺少 USB 驱动,在 Phoenixsuit 安装目录下运行 InstallUSBDrv.exe 即可);
- 烧录结束后,断开 USB 与 boot 脚,重新上电。
- 上电后 uboot 会先引导 SylixOS 量产镜像,SylixOS 量产镜像运行后会读取 EMMC 恢复镜像的内容并恢复到 EMMC 中,恢复结束后自动重启,新设备被烧录为目标状态。