需要注意使用的系统版本为ubuntu14.04,使用其他版本会导致各种错误!
准备文件
拿到SDK后解压得到以下文件:
需要用到的是SDK和toolchain
在Hi3516C V500R001C02SPC011\01.software\board目录下有Hi3516CV500_SDK_V2.0.1.1.tgz这个文件就是SDK
在toolchain目录下有一个arm-himix200-linux.tgz就是工具链
上传到虚拟机执行解压:
tar -zxvf Hi3516CV500_SDK_V2.0.1.1.tgz
tar -zxvf arm-himix200-linux.tgz
安装工具
进入工具链目录安装工具链,需要注意要把shell模式转换成dash模式执行,否则会提示找不到命令
sudo dpkg-reconfigure dash 转换shell模式
选择no
cd arm-himix200-linux
chmod +x arm-himix200-linux.install
sudo ./arm-himix200-linux.install 执行安装
source /etc/profile 配置环境变量
arm-himix200-linux-gcc --version 查看版本
work@ubuntu:~/hi3516/arm-himix200-linux$ arm-himix200-linux-gcc --version
arm-himix200-linux-gcc (HC&C V1R3C00SPC200B005_20190606) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
安装SDK
cd Hi3516CV500_SDK_V2.0.2.0
./sdk.unpack
下载必要源码包
由于开源工具整改,部分开源工具不再提供源码包,客户编译OSDRV时需要自行下载,这个在osdrv目录下面有说明
执行一下脚本下载文件包
#/bin/sh
osdrvdir="/home/work/hi3516/Hi3516CV500_SDK_V2.0.1.1/osdrv"
cd $osdrvdir/opensource/kernel
wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.9.37.tar.gz
cd $osdrvdir/tools/pc/mkyaffs2image/
wget https://github.com/dorigom/yaffs2utils/archive/refs/tags/0.2.9.tar.gz
mv 0.2.9.tar.gz yaffs2utils-0.2.9.tar.gz
cd $osdrvdir/tools/board/gdb/
wget http://ftp.gnu.org/gnu/gdb/gdb-7.9.1.tar.gz
wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
cd $osdrvdir/tools/pc/cramfs_tool/
wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.31/util-linux-2.31.tar.gz
cd $osdrvdir
执行编译
在osdrv目录下执行
make all
提示错误:
configure: WARNING: cannot find uuid library required for mkfs.ubifs
configure: mtd-utils can optionally be built without mkfs.ubifs
这说明缺少必要工具,安装工具后继续编译
sudo apt-get install libuuid1:i386
sudo apt-get install uuid-dev
编译成功后的固件在pub/hi3516dv300_spi_smp_image_glibc/目录下:
也可以单独编译,在osdrv/readme_cn.txt中有说明,但文件系统制作必须要先全部编译成功后才可以生成