海思AI芯片(Hi3516DV300/CV500)开发(搭建Linux开发环境)

2021-01-19 14:58:17 浏览数 (1)

全文共 3425 个字,阅读本文大概需要 9 分钟。

目录

1、软件包安装

2、编译 arm-himix200 交叉编译器

3、编译 uboot 和 Kernel

前言:此篇搭建环境的 Linux 平台为 ubuntu16.0.4 64 位系统,sdk 的目标平台为Hi3519DV300CV500 系列。

1、软件包安装

步骤 1 配置默认使用 bash

执行

代码语言:javascript复制
#sudo dpkg-reconfigure dash

选择 no

步骤 2 安装软件包

执行:

代码语言:javascript复制
#sudo apt-get install make libc6:i386 lib32z1 lib32stdc  6 zlib1g-dev libncurses5-dev
ncurses-term libncursesw5-dev g   u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl
bc

步骤 3 创建 /etc/ld.so.preload 文件

并执行

代码语言:javascript复制
#echo "" > /etc/ld.so.preload

以解决 64 bit linuxserver 上某些第三方库编译失败的问题。

步骤 4 安装其他软件包

因为 Linux 交叉编译器是 32 位的,而 ubuntu16.0.4 是 64 位的,因此需要安装lib32ncurses5 和 lib32z1 兼容 x86 的运行库及环境。

代码语言:javascript复制
#sudo apt-get install lib32ncurses5
#sudo apt-get install lib32z1

为了解决 Hi3516DV300 sdk 编译提示 cannot find uuid library required for mkfs.ubifs 错误,安装 u-boot-tools libuuid1:i386 gperf 和 zlib1g-dev liblzo2-dev uuid-dev pkg-config 库。

代码语言:javascript复制
#sudo apt-get install  u-boot-tools libuuid1:i386 gperf
#sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config

2、编译 arm-himix200 交叉编译器

1)将 toolchainarm-himix200-linux.tgz 拷贝到 ubuntu16.0.4 系统中

2)解压 arm-himix200-linux.tgz

执行如下命令进行解压:

代码语言:javascript复制
#tar –xzf arm-himix200-linux.tgz

3)安装 arm-himix200-linux 交叉编译器

运行

代码语言:javascript复制
# chmod  x arm-himix200-linux.install

然后运行

代码语言:javascript复制
# ./arm-himix200-linux.install

即可。

4)执行

代码语言:javascript复制
# source /etc/profile

安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。 5)修改环境变量

代码语言:javascript复制
# sudo vim ~/.bashrc

bashrc 文件末尾添加以下代码:

代码语言:javascript复制
export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH
export LC_ALL=C

6)配置环境变量生效

代码语言:javascript复制
# source  ~/.bashrc

7)查看编译器版本

代码语言:javascript复制
# arm-himix200-linux-gcc -v

显示编译器版本信息,则表示成功安装交叉编译器。

3、编译 uboot 和 Kernel

1)安装sdk 包

拷贝Hi3516CV500R001C02SPC0111.softwareboardHi3516CV500_SDK_V2.0.1.1.tgz到 ubuntu16.0.4 系统中,运行 ./sdk.unpack (请用 root 或 sudo 权限执行)将会展开 sdk 包打包压缩存放的内容。

代码语言:javascript复制
# sudo./sdk.unpack

成功执行 ./sdk.unpack 后,会到一个 sdk 包:Hi3516CV500_SDK_V2.0.1.1

如果提示 source:not found ,执行 dpkg-reconfigure dash(执行时需要root权限)

代码语言:javascript复制
#sudo dpkg-reconfigure dash

在出现的界面中选择 no ,再运行 ls -l /bin/sh 后显示 /bin/sh/->bash

目标是编译 sdk 包 Hi3516CV500_SDK_V2.0.1.1osdrv 根目录

2)将内核的补丁 v4.9.37 打到 linux 的内核 kernel 上

从 linux 开源社区下载 v4.9.37 版本的内核:

(1)进入网站:www.kernel.org

(2)选择 HTTP 协议资源的 https://www.kernel.org/pub/ 选项,进入子页面

(3)选择 linux/ 菜单项,进入子页面

(4)选择 kernel/ 菜单项,进入子页面

(5)选择 v4.x/ 菜单项,进入子页面

(6)下载 linux-4.9.37.tar.gz (或者 linux-4.9.37.tar.xz )到osdrv/opensource/kernel目录下

(7)在 linux 服务器中进入 osdrv 的根目录,执行如下命令:

代码语言:javascript复制
# cd opensource/kernel
# tar -zxf linux-4.9.37.tar.gz
# mv linux-4.9.37 linux-4.9.y
# 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 ../../

完成补丁安装。

3)编译 osdrv

注意:由于 Makefile 中文件系统编译依赖组件较多,不能保证单独编译的文件系统可用,建议采用 make all 编译。

进入 Hi3516CV500_SDK_V2.0.1.1osdv 根目录

(1)清除整个 osdrv 目录的编译文件:

代码语言:javascript复制
# make OSDRV_CROSS=arm-himix200-linux clean

(2)彻底清除整个 osdrv 目录的编译文件,除清除编译文件外,还删除已编译好的镜像:

代码语言:javascript复制
# make OSDRV_CROSS=arm-himix200-linux distclean

(3)编译整个 osdrv

代码语言:javascript复制
sudo make all

提示 arm-hisix200-linux-gcc: command not found 的解决办法:

这是因为 Linux 宿主机是 ubuntu 16.04 64 位,而交叉编译器是针对 32 位的开发板制作的。所以要安装对应的 32 位库。 安装命令:

代码语言:javascript复制
# sudo apt install lib32z1-dev

然后执行 su root

代码语言:javascript复制
# su root

输入 root 密码,进入登录 root 管理员权限,如下图,表示成功登录 root

代码语言:javascript复制
# vim ~/.bashrc

在环境变量末尾添加以下代码

代码语言:javascript复制
export LC_ALL=C
export PATH="/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH"

然后再执行 make all 编译 osdrv

代码语言:javascript复制
# make all

最后的编译提示信息如下:

编译成功可以得到:

(1) uImage

路径:Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/kernel/linux-4.9.y/arch/arm/uImage

(2) u-boot-hi3516dv300.bin

路径:Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/uboot/u-boot-2016.11/u-boot-hi3516dv300.bin

编译过程参考:

ReleaseDoczh1.softwareboardOSDRVHi3516CV500╱Hi3516DV300╱Hi3516AV300 开发环境用户指南

ReleaseDoczh1.softwareboardHi3516CV500╱Hi3516DV300╱Hi3516AV300 SDK 安装及升级使用说明

ReleaseDoczh1.softwareboardOSDRVHi3516CV500╱Hi3516DV300╱Hi3516AV300 U-boot 移植应用开发指南

海思AI芯片(Hi3516DV300/CV500)开发(1.资料介绍) https://blog.csdn.net/Allen101zhang/article/details/103762747

海思AI芯片(Hi3516DV300/CV500)开发(2.RuyiStudio安装) https://blog.csdn.net/Allen101zhang/article/details/103766684

0 人点赞