简体中文 | English
- 本仓库提供算能科技端侧芯片
SG200X
,CV181x
和CV180x
三个系列芯片的软件开发包(SDK)。 - 主要适用于官方 EVB 和 Duo 开发板。
.
├── build // 编译目录,存放编译脚本和板级配置
├── freertos // freertos 系统
├── fsbl // fsbl 启动固件
├── install // 执行一次完整编译后,镜像的存放路径
├── isp_tuning // 图像效果调试参数存放路径
├── linux_5.10 // 开源 Linux 内核
├── middleware // 自研多媒体框架,包含 so 与 ko
├── opensbi // 开源 opensbi 库
├── osdrv // 驱动程序
├── oss // 第三方库
├── ramdisk // 存放最小文件系统的预编译目录
└── u-boot-2021.10 // 开源 uboot 代码
-
在本地或虚拟机中安装 Ubuntu 系统,推荐
Ubuntu 22.04 LTS
。 -
安装串口工具:例如
MobaXterm
或Xshell
等,可根据自身喜好选择。 -
确保虚拟机联网,安装编译依赖:
sudo apt install pkg-config 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 device-tree-compiler libssl-dev ssh cpio squashfs-tools fakeroot libncurses5 flex bison
-
若执行后出现报错
无法定位软件包 android-sdk-ext4-utils
,请参考此页单独安装该软件包,具体架构可cat /proc/version
查看。 -
注意:cmake 最低版本要求为
3.16.5
,而在Ubuntu 20.04
中使用 apt 安装的 cmake 版本号为3.16.3
,不满足 SDK 的最低版本要求,因此需要手动安装最新版本。wget https://github.com/Kitware/CMake/releases/download/v3.27.6/cmake-3.27.6-linux-x86_64.sh chmod +x cmake-3.27.6-linux-x86_64.sh sudo sh cmake-3.27.6-linux-x86_64.sh --skip-license --prefix=/usr/local/
手动安装的 cmake 在
/usr/local/bin
目录下,使用cmake --version
命令可查看其版本号:cmake version 3.27.6
- 在clone仓库之前,请先参考这里配置好github SSH key。
或者,您可以使用HTTPS URL来克隆仓库,将
scritps/repo_clone.sh
脚本中SSH部分修改为REMOTE_URL=$(grep -o '<remote.*/>' ${dir} | sed 's/.*fetch="\([^"]*\)".*/\1/' | sed "s/ssh:\/\/\(.*\)/ssh:\/\/$USERNAME@\1/")
即可。REMOTE_URL=$(grep -o '<remote.*/>' ${dir} | sed 's/.*fetch="\([^"]*\)".*/\1/' | sed "s/git@\(.*\):/https:\/\/\1\//")`
- 设置git的全局postBuffer为一个足够大的值,
git config --global http.postBuffer 2147483648
,以免在拉取仓库时出现EOF错误。 - 本 SDK 仓库采用自动化脚本的方式管理子仓库,在拉取 SDK 时请使用如下的命令:
git clone https://github.com/sophgo/sophpi.git -b sg200x-evb
cd sophpi
./scripts/repo_clone.sh --gitclone scripts/subtree.xml
- 若以上的方式拉取失败,或者您当前是在 build 项目中查看本文档,您可以单独拉取每个子仓库,详见 #常见问题解答
- 如果本地已经有host-tools仓库,可以把subtree.xml中的host-tools删掉,拉取速度快点。
如果您在上一步中没有碰到任何问题,您可以跳过这一步。
- 获取工具链 默认拉取subtree.xml就会拉取host-tools仓库
git clone https://github.com/sophgo/host-tools.git
- 以
sg2000_duo_sd
为例,首先切换到 SDK 的根目录:
cd sophpi/
- 使用以下路径启用环境设置脚本:
source build/envsetup_soc.sh
- 会出现以下的提示:
-------------------------------------------------------------------------------------------------------
Usage:
(1) menuconfig - Use menu to configure your board.
ex: $ menuconfig
(2) defconfig $CHIP_ARCH - List EVB boards($BOARD) by CHIP_ARCH.
** sg200x ** -> ['sg2000', 'sg2002']
** cv181x ** -> ['cv1812cp', 'cv1812h', 'cv1813h']
** cv180x ** -> ['cv1800b']
ex: $ defconfig cv181x
(3) defconfig $BOARD - Choose EVB board settings.
ex: $ defconfig cv1813h_wevb_0007a_spinor
ex: $ defconfig cv1812cp_wevb_0006a_spinor
-------------------------------------------------------------------------------------------------------
- 根据以上的提示,输入
defconfig sg200x
,就会列出当前支持的开发板列表:
* sg200x * the avaliable cvitek EVB boards
sg2000 - sg2000_duo_sd [C906B + EMMC 8192MB + DDR 512MB]
sg2002 - sg2002_duo_sd [C906B + EMMC 8192MB + DDR 256MB]
- 选择对应的开发板型号,输入
clean_all && build_all
开始编译:
defconfig sg2000_duo_sd
clean_all && build_all
pack_burn_image
- 编译成功后即可在
install
目录下看到生成的镜像。若编译出现问题,请检查是否有文件缺失,参考#常见问题解决重新拉取相应仓库,并重新按步骤编译。
注意:烧录过程中会清除 SD 卡中的全部内容,请务必提前做好备份!
- 准备一张 SD 卡
- 在 Windows 下,可以使用
balenaEtcher
,Rufus
或Win32 Disk Imager
等工具将生成的镜像写入 SD 卡中。 - 在 Linux 下,可以使用 dd 命令将镜像写入 SD 卡中:
sudo dd if=sophpi-duo-XXX.img of=/dev/sdX
- 接好 EVB 板的串口线
- 将 SD 卡格式化为 FAT32 格式
- 将
install
目录下的upgrade.zip
压缩包解压缩并放入 SD 卡根目录,取决于具体开发板型号,压缩包中的文件可能不同:
soc_cv1812h_wevb_0007a_emmc
.
├── boot.emmc
├── cfg.emmc
├── fip.bin
├── META/
├── partition_emmc.xml
├── rootfs.emmc
├── system.emmc
└── utils/
soc_cv1800b_sophpi_duo_sd
.
├── boot.sd
├── META/
├── partition_sd.xml
├── rootfs.sd
└── utils/
- 将 SD 卡插入卡槽中
- 给开发板上电,开机就会自动进入烧录。
- 等待烧录成功后,拔掉 SD 卡,重新给开发板上电,即可进入系统。
如果您无法使用自动化脚本的方式拉取代码,也可以使用如下命令分别拉取各个子仓库:
mkdir sophpi -p && cd sophpi
git clone https://github.com/sophgo/build -b sg200x-dev
git clone https://github.com/sophgo/freertos -b sg200x-dev
git clone https://github.com/sophgo/FreeRTOS-Kernel -b sg200x-dev freertos/Source
git clone https://github.com/sophgo/Lab-Project-FreeRTOS-POSIX -b sg200x-dev freertos/Source/FreeRTOS-Plus-POSIX
git clone https://github.com/sophgo/fsbl -b sg200x-dev
git clone https://github.com/sophgo/isp_tuning -b sg200x-dev
git clone https://github.com/sophgo/linux_5.10 -b sg200x-dev
git clone https://github.com/sophgo/middleware -b sg200x-dev
git clone https://github.com/sophgo/opensbi -b sg200x-dev
git clone https://github.com/sophgo/osdrv -b sg200x-dev
git clone https://github.com/sophgo/oss
git clone https://github.com/sophgo/ramdisk -b sg200x-dev
git clone https://github.com/sophgo/u-boot-2021.10 -b sg200x-dev
之后按照即可按照正常程序获取 SDK 并编译。
如果您还有疑问,欢迎通过邮箱联系本仓库的维护者:
- sophpi-huashan: 一款基于CV1812H的开源硬件
- sophpi-duo:一款基于CV1800B的开源硬件
算能致力于成为全球领先的通用算力提供商。
算能专注于AI、RISC-V CPU等算力产品的研发和推广应用,以自研产品为核心打造了覆盖“云、边、端”的全场景应用矩阵 ,为城市大脑、智算中心、智慧安防、智慧交通、安全生产、工业质检、智能终端等应用提供算力产品及整体解决方案 。公司在北京、上海、深圳、青岛、厦门等国内 10 多个城市及美国、新加坡等国家设有研发中心。