软件安装

软件更新

BM1688 出厂时已经预装系统软件,在Ubuntu下可通过如下命令检查其版本:

linaro@sophon:~$ bm_version
SophonSDK(BM1688) 1.7
sophon-soc-libsophon : 0.4.9
sophon-soc-libsophon-dev : 0.4.9
sophon-media-soc-sophon-ffmpeg : 1.7.0
sophon-media-soc-sophon-opencv : 1.7.0
BL2 bm1688:g 2024-07-23T07:28:45+00:00
BL31 bm1688:gc3fb9f5-dirty 2024-07-22T15:27:39+08:00
U-Boot 2021.10 (Jul 23 2024 -07:28:41 +0000) cvitek_sophgo
Kernelversion : Linux sophon 5.10.4-sophon-custom #1 SMP Tue Jul 23 07:28:49 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
Mode: soc mode
MCUVersion: 0.17.19

BM1688 目前提供两种更新方式:SD卡刷机,USB烧录。其中SD卡刷机会重写整个eMMC,也即您存储在eMMC的数据全部会丢失。这种方式最为干净可靠,理论上只要您的 BM1688 没有硬件损坏,都可以进行SD卡刷机。文件替换方式是指在Ubuntu下通过替换对应文件的方式分别升级bootloader、kernel和其它软件。这种方式有一定的风险,如不同软件组件之间的版本匹配、文件损坏等。以下分别介绍两种软件更新方式的操作:

  1. SD卡刷机

请将SD卡格式化为FAT32格式(如果SD卡上有多个分区,只能使用第一个分区),大小为1GB以上。

请下载 BM1688 最新刷机包,地址为算能官网

https://developer.sophgo.com/site/index/material/all/all.html:

请将下载的sdcard.tgz解压到SD卡根目录。确认文件如下(数量不一定相同):

_images/image10.png

请将 BM1688 断电,插入SD卡,并连接串口终端,然后给 BM1688 上电。您将看到 BM1688 自动进入刷机流程:

_images/image12.png

刷机通常耗时约3分钟,结束后,会看到拔掉SD卡并重启 BM1688 的提示,请依照操作即可:

_images/image13.png

请注意:刷机后Ubuntu系统第一次启动时会进行文件系统初始化等关键动作,请勿随意断电,待开机进入命令行后使用sudo poweroff命令关机。

  1. USB烧录

注意事项

1、usb烧录的时候不能插入sd卡

2、usb_dl.exe要和cv_dl_magic.bin在同一目录下

3、usb_dl.exe所在的路径和要烧录的固件的路径不能有中文

硬件连接

1、使用跳线帽短路如图的位置(J2503 短接顺着字体的右侧两个脚)

2、准备一根typec USB线,一端接到板子的typec母口,另一端接到PC

_images/image20.png

安装windows驱动

运行CviUsbDownloadInstallDriver.exe,点击下一步,然后再点击完成即可

烧录步骤

1、打开windows控制台

2、把usb烧录工具放到本地(usb烧录工具的路径为<SDK>/build/tools/<chip>/usb_dl)

3、在usb_dl相同的目录新建文件夹fw,放入要升级的文件

4、执行升级命令:usb_dl.exe -c cv186x -s ubuntu -i ../fw

输入命令后,打印如下图

_images/image24.png

表示等待板子连接

5、用usb数据线连接电脑和设备

6、对设备重新上下电(如果usb数据线也会供电,则在下电的时候,还要拔出usb线)

构建安装包

除了使用已有的安装包进行升级外,也可以自行构建安装包。

ubuntu安装

推荐安装ubuntu 20.04

安装配置repo

1、配置repo安装路径

mkdir ~/bin

2、增加环境变量

vim ~/.profile

在文件的最后添加PATH=~/bin:$PATH

3、安装repo

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

docker导入

1、安装相关软件包

sudo apt-get update

sudo apt-get install -y build-essential ninja-build
automake autoconf libtool wget curl git gcc libssl-dev bc slib
squashfs-tools android-sdk-libsparse-utils android-sdk-ext4-utils jq
cmake python3-distutils tcl scons parallel openssh-client tree python3-dev
python3-pip ssh libncurses5 pkg-config lzop bison flex rsync kmod cpio
sudo fakeroot dpkg-dev device-tree-compiler u-boot-tools uuid-dev
libxml2-dev debootstrap qemu-user-static kpartx

2、安装升级python库

pip3 install dfss --upgrade

3、 运行dfss,如果python不能用就用python3

python -m dfss --url=open@sophgo.com:/gemini-sdk/docker/ubuntu_bm1688.tar

4、导入docker镜像,有导入过的可以不用操作

sudo cat ubuntu_bm1688.tar | docker import - bm1688

5、将以下命令添加到~/.bashrc,并执行source ~/.bashrc

function run_docker() {
    docker run  -e LOCAL_USER_ID=`id -u $USER_ID` --privileged -itd -v $2:/project/$1 --name $1  bm1688:latest /bin/bash
}

6、进入docker目录工作目录会转换成/project/user.name/,这里请在进入docker前将代码下载到/your/workspace/path

run_docker sophon /your/workspace/path

7、进入docker容器中的shell

docker exec -it sophon /bin/bash

8、安装jinja2

pip install jinja2

获取源码

提供两种源码的方式

a.从github获取

在github建立个人账号,并配置好ssh key,下载代码需要用到个人github账号

  1. 设置账号邮箱

    git config --global user.name "your_name"
    
    git config --global user.email "your_email@example.com"
    
  2. 配置密钥

    ssh-keygen -t ed25519 -C "your_email@example.com"
    
    cat ~/.ssh/id_ed25519.pub
    

将公钥添加到github

_images/image26.png

验证ssh是否配置成功

ssh -T git@github.com
  1. 使用repo拉取最新SDK源码

    repo init -u https://github.com/sophgo/manifest.git -m release/edge.xml
    
    repo sync
    

b.从算能官网获取

从算能官网 (https://developer.sophgo.com/site/index/material/81/all.html) 下载SDK,然后执行下面的命令可获取SDK最新版本

unzip sophonsdk_edge_v1.6_offical_release.zip

cd sophonsdk_edge_v1.6_offical_release/sdk_release

tar -xvf bm1688_v1.6_source.tar.gz

repo sync

文件结构

SDK文件结构说明如下:

top
├── build       ## 编译脚本
├── fsbl        ## ATF
├── host-tools  ## 编译工具链
├── isp_tuning  ## isp tuning
├── libsophon   ## 多媒体 及tpu库
├── linux_5.10  ## linux内核
├── middleware  ## isp库
├── osdrv       ## 驱动
├── oss         ##开源代码库
├── ramdisk     ## ram disk
├── sophon_media ## ffmpeg 与opencv库
├── u-boot-2021.10 ##uboot
└── ubuntu

编译BM1688固件

source build/envsetup_soc.sh

defconfig  bm1688_wevb_emmc

build_bm1688_all

注:需要有root权限或者使用docker, 生成的升级包在install/soc_bm1688_wevb_emmc/

package_edge/sdcard