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