7.1. 微服务器定制化软件包

适配场景

  1. 芯片:BM1688 CV186AH

  2. SDK版本:

    • 1688/cv186 V1.3以及之后版本(适配只打包功能和打包做包功能)

  3. 环境需求:

    • 外置存储:

      • 存储分区格式尽量保证ext4,防止特殊分区限制导致做包失败

      • 只打包功能要求外置存储至少是当前emmc使用总量的1.5倍以上

      • 打包做包功能要求外置存储至少是当前emmc使用总量的2.5倍以上

    • 设备需求:

      • 只打包功能要求除去打包设备外需要有一个ubuntu18/20的X86主机

      • 打包做包功能只要求有一个打包做包的设备

7.1.1. 功能一:打包做包功能

本功能84&X和1688/cv186x平台使用方式完全一致

  1. 使用如下命令下载打包需要使用的工具

pip3 install dfss --upgrade
python3 -m dfss --dflag=socbak

下载的文件是一个socbak.zip文件

  1. 将外置存储插入目标设备,然后执行如下操作。

sudo su
cd /
mkdir socrepack
# 这一步需要根据你的外置存储选择挂载设备路径,但是目标路径必须是/socrepack
mount /dev/sda1 /socrepack
chmod 777 /socrepack
cd /socrepack

然后将之前下载的socbak.zip传输到/socrepack目录下

  1. 执行如下命令进行打包

unzip socbak.zip
cd socbak
export SOC_BAK_ALL_IN_ONE=1
bash socbak.sh

等待一段时间

  1. 执行成功后会生成如下文件

root@sophon:/socrepack/socbak# tree -L 1
.
├── binTools
├── output
├── script
├── socbak.sh
├── socbak_log.log
└── socbak_md5.txt

3 directories, 3 files

其中socbak_log.log文件是执行的信息记录,刷机包在output/sdcard/路径下

7.1.2. 功能二:只打包功能

1688/186 V1.3以及之后版本

  1. 使用如下命令下载打包需要使用的工具

pip3 install dfss --upgrade
python3 -m dfss --dflag=socbak

下载的文件是一个socbak.zip文件

  1. 将外置存储插入目标设备,然后执行如下操作

sudo su
cd /
mkdir socrepack
# 这一步需要根据你的外置存储选择挂载设备路径,但是目标路径必须是/socrepack
mount /dev/sda1 /socrepack
chmod 777 /socrepack
cd /socrepack

然后将之前下载的socbak.zip传输到/socrepack目录下

  1. 执行如下命令进行打包

unzip socbak.zip
cd socbak
bash socBak.sh

等待一段时间

  1. 执行成功后会生成如下文件(这里的是一个示例,实际情况下生成的文件可能会多一些)

root@sophon:/socrepack/socbak# tree -L 1 .
.
├── binTools
├── boot.tgz
├── data.tgz
├── fip.bin
├── partition32G.xml
├── recovery.tgz
├── rootfs.tgz
├── script
├── socbak.sh
├── socbak_log.log
└── socbak_md5.txt

2 directories, 9 files
  1. 使用《针对SOC模式的交叉编译的docekr环境准备方式》(https://developer.sophgo.com/thread/682.html)搭建正确的交叉编译docker环境

  2. 下载最新的 bm1688_repack包,解压并进入

  3. 建立目录pack,然后将原始刷机包解压到这个目录下

  4. cd到depack.sh文件同目录,然后执行./depack.sh脚本进行解包

  5. 生成的各个分区压缩包会在update目录下生成,此时将socbak生成的所有文件都拷贝到这个目录下

  6. 修改完毕后cd到enpack.sh文件同目录,然后执行./enpack.sh sdcard 或者./enpack.sh tftp 命令进行打包

  7. 生成的新的刷机包在update/sdcard和update/tftp