Linux / 嵌入式 · 2021-11-29

搭建编译海思SDK环境

apt-get install u-boot-tools bison flex lib32z1-dev libncurses-dev

一、下载ubuntu16.04进行安装

ubuntu镜像下载地址

使用虚拟机进行安装,安装过程很简单,安装完毕把系统的软件包更新一下(注意不是升级系统到18.04)
二、开发包目录结构如下(可能你的开发包目录和我的不一样,我的开发包重命名了一些文件夹大致类似)

海思原厂开发包目录如下:

1、ReleaseDoc包含中英文的 开发文档,包括芯片管脚资料、开发手册、编译环境搭建等

2、sdk(我修改后的文件夹名字 原名:Hi3516C V500R001C02SPC002 太长了^_^),主要包含了原理图 pcb 软件驱动 开发包等,编译主要在这个包里面进行

3、SVP_PC 人工智能 计算机视觉需要用到的开发工具包和库(包括caffe模型的转换工具等)

4、toolchain 工具链,编译工具(需要安装到系统内)

三、安装toolchain

1、首先执行如下指令,主要解决sdk库内sdk.unpack报错的问题(bash和dash的选择问题)

sudo dpkg-reconfigure dash
选择否,如下图:

2、进入toolchain目录内,解压 arm-himix200-linux.tgz(如果用虚拟机尽量在windows环境下解压好复制到虚拟机下,因为虚拟机解压老是报错)

3、进入上一步解压好的 arm-himix200-linux 目录内,运行如下指令

sudo ./arm-himix200-linux.install
安装完毕后,执行如下指令,使环境生效

source /etc/profile
修改环境变量(如果没有安装vim的可以用vi)

sudo vim ~/.bashrc
在文件最后添加如下内容

export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH
export LC_ALL=C
如下图

保存,退出,然后执行如下指令,使环境生效

sudo source ~/.bashrc
验证是否编译工具是否安装成功,控制台输入

arm-himix200-linux-gcc -v
如下图即成功

四、编译SDK(uboot和内核)

1、进入如图所示目录(sdk目录修改后的参见上面内容)

执行如下指令

sudo ./sdk.unpack

2、执行完毕,该目录会多出一个osdrv文件夹(其实多了几个文件夹^_^),主要就关心这个osdrv

3、下载linux内核(最好是 4.9.37这个版本)

linux内核下载地址

依次进入,linux->kernel->v4.x,找到linux-4.9.37.tar.gz,下载保存到如下目录

4、在kernel目录内解压下载的内核文件到kernel目录(会生成一个linux-4.9.37文件夹)

5、将解压后的内核文件夹修改为 linux-4.9.y(如上图)

6、执行如下命令(在osdrv目录执行如下命令,该命令包含了3\4\5三步的操作)

cd opensource/kernel
tar -zxf linux-4.9.37.tar.gz
mv linux-4.9.37 linux-4.9.y
# 如果3 4 5已经完成从这一步开始操作
cd linux-4.9.y
patch -p1 < ../linux-4.9.37.patch
cd ../
tar -czf linux-4.9.y.tgz linux-4.9.y
cd ../../
7、回到osdrv所在目录

执行如下指令

sudo make clean
sudo make distclean
make all
8、错误解决办法
8.1 ./jre/bin/java 找不到


安装lib32z1-dev

sudo apt-get install lib32z1-dev
8.2 编译工具链找不到
su root
vim ~/.bashrc
如果不知道root密码,可以使用如下命令修改root密码

sudo passwd root
在文件最后新增内容如下

export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH
export LC_ALL=C
如下图所示:

保存退出,再依次执行

source ~/.bashrc
make clean
make distclean
make all
8.3 u-boot报错


依次执行如下指令

# xxx 你的用户名,也可以不切换用户,大家可以试试
su xxx
# 不切换用户的情况下是root用户可以不加sudo
sudo apt-get install u-boot-tools
su root
make clean
make distclean
make all
五、编译完成如下

finish osdrv work

 

查看编译后的文件

uImage
所在目录:osdrv/opensource/kernel/linux-4.9.y-smp/arch/arm/boot/uImage

u-boot-hi3516dv300.bin
所在目录:osdrv/opensource/uboot/u-boot-2016.11/u-boot-hi3516dv300.bin