首页 > 技术知识 > 正文

针对Hi3516DV300的使用方法-hi3521d netsdk_login

一、SDK安装

1.解压

在 linux 服务器上(或者一台装有 linux 的 PC 上,主流的 linux 发行版本均可以),使用命令:tar -zxf Hi3516CV500_SDK_Vx.x.x.x.tgz,解压缩该文件,可以得到一个 Hi3516CV500_SDK_Vx.x.x.x 目录。

返回 Hi3516CV500_SDK_Vx.x.x.x 目录,运行./sdk.unpack(请用 root 或 sudo 权限执行)将会展开 SDK 包打包压缩存放的内容,请按照提示完成操作。

Ps:在这里运行./sdk.unpack 出现了报错,原因是在./sdk.unpack 文件的开头声明是#!/bin/sh,而这种情况下,source 不成功,需要修成#!/bin/bash,再运行就可以成功

了。没有出错的结果如下如果您需要通过 WINDOWS 操作系统中转拷贝 SDK 包,请先运行./sdk.cleanup,收起 SDK 包的内容,拷贝到新的目录后再展开。

针对Hi3516DV300的使用方法-hi3521d netsdk_login1

针对Hi3516DV300的使用方法-hi3521d netsdk_login2

2.安装交叉编译器

在发布包 Hi3516CV500R001C01SPCxxx.rar 所在的目录中下载工具链文件。

注意:安装交叉编译器需要有 sudo 权限或者 root 权限。

1)安装 himix200 交叉编译器: tar -zxvf arm-himix200-linux.tgz

解压 tar –xzf arm-himix200-linux.tgz,

运行 chmod +x arm-himix200-linux.install,

然后运行./arm-himix200-linux.install 即可。

Ps:交叉编译器从 Windows 拷贝进如下路径

针对Hi3516DV300的使用方法-hi3521d netsdk_login3

2)执行 source /etc/profile,安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。

Ps:建议直接 reboot

3)验证交叉编译器是否安装成功,打印如下信息

针对Hi3516DV300的使用方法-hi3521d netsdk_login4

二、SDK编译

1.软件包安装

操作系统安装好后,且已自行配置好网络环境,则可继续如下步骤完成相关软件包的安装:

1)配置默认使用 bash、

执行 sudo dpkg-reconfigure dash 选择 no

针对Hi3516DV300的使用方法-hi3521d netsdk_login5

2)安装软件包

执行: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 文件,并执行 echo “” > /etc/ld.so.preload,以解决 64bit linux server 上某些第三方库编译失败的问题。

针对Hi3516DV300的使用方法-hi3521d netsdk_login6

在安装完成以上的第三方库,就可以编译 SDK 了。首先介绍一下,总体编译 SDK的方法,在 Hi3516CV500_SDK_V2.0.2.0/osdrv 目录下执行 make,生成的 uboot、kernel、文件系统根目录等其他的工具会在目录 Hi3516CV500_SDK_V2.0.2.0/osdrv/pub 下。可能因为虚拟机的工具的不完善会编译失败,只要下载相应的工具即可。

针对Hi3516DV300的使用方法-hi3521d netsdk_login7

2.软件包安装编译U-boot

1)配置编译环境

使用配置命令:make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_defconfig

2)编译 U-boot

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- -j 20

编译成功后,将在 U-boot 目录下生成 u-boot.bin

注意:这一步生成的 u-boot.bin 只是一个中间件,并不是最终在单板上执行的U-boot 镜像。

针对Hi3516DV300的使用方法-hi3521d netsdk_login8

3.生成最终使用的U-boot镜像

boot 镜像生成步骤如下:

1)在 OSDRV 的 tools/pc/hi_gzip 目录下执行 make,并将生成的 bin/目录下的 gzip 文件拷贝至 U-boot 下 arch/arm/cpu/armv7/hi3516cv500/hw_compressed/目录。

cp ../../../tools/pc/hi_gzip/bin/gzip arch/arm/cpu/armv7/hi3516dv300/hw_compressed/ -rf

2)切换至Hi3516CV500_SDK_V2.0.2.0/osdrv/tools/pc/uboot_tools/hiregbin-v5.0.1

目录,在该目录下执行:

Ps:chmod 777 hiregbin

/hiregbin ../Hi3516DV300-DMEBLITE_6L_T-DDR4_1800M_1GB_16bitx2-A7_900M- SYSBUS_300M.xlsm ./reg_dmebline.bin 命令,本目录下生成 reg_dmebline.bin

3)拷贝 reg_dmebline.bin 到 U-boot 源代码目录,mv 命令重命名为.reg。将生成的 u-boot.bin 复制到/osdrv/opensource/uboot/u-boot-2016.11 目录

针对Hi3516DV300的使用方法-hi3521d netsdk_login9

4)make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin生成的 u-boot-hi3516cv500.bin 就是能够在单板上运行的 uboot 镜像。

针对Hi3516DV300的使用方法-hi3521d netsdk_login10

针对Hi3516DV300的使用方法-hi3521d netsdk_login11

4.编译内核

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

进入网站:www.kernel.org

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

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

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

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

下载 linux-4.9.37.tar.gz(或 linux-4.9.37.tar.xz)

2)打补丁

将下载的 linux-4.9.37.tar.gz 存放到 osdrv 的 opensource/kernel 目录中

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

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)配置内核的操作步骤如下:

a.在内核目录下,手动拷贝.config 文件:cp arch/arm/configs/hi3516dv300_smp_defconfig .config

b.用户通过“make menuconfig”进行内核配置:make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig

针对Hi3516DV300的使用方法-hi3521d netsdk_login12

c.选择需要的模块。

d.选择完毕后,保存并退出。

配置保存后,可直接输入 make ARCH=arm CROSS_1=arm-himixXXX-linuxuImage -j20 命令编译内核生成镜像 uImage,此时需要等待几分钟。

Ps:这个命令有误,输入如下正确命令编译:

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j4

-j4 是指 4 核编译,自己根据自己的 CPU 选择

针对Hi3516DV300的使用方法-hi3521d netsdk_login13

生成的 uImage 在内核目录下的/arch/arm/boot/中。

说明:如果编译过程中出现错误,按顺序执行以下命令:

make ARCH=arm CROSS_COMPILE=arm-himixXXX-linux- clean make ARCH=arm CROSS_COMPILE=arm-himixXXX-linux- menuconfig make ARCH=arm CROSS_COMPILE=arm-himixXXX-linux- uImage

Ps:

1.解锁文件夹命令:

sudo chown -R $USER 空格 /home/wr/A182/Hi3516CV500_SDK_V2.0.2.0/osdrv/opensource/kernel/linux-4.9.y

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

这是因为 Linux 宿主机是 ubuntu 16.04 64 位,而交叉编译器是针对 32 位的开发板

制作的。所以要安装对应的 32 位库。

安装命令: # sudo apt install lib32z1-dev

然后执行 su root # su root

输入 root 密码,进入登录 root 管理员权限

# vim ~/.bashrc

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

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

针对Hi3516DV300的使用方法-hi3521d netsdk_login14

以上配置环境变量在普通用户模式和 sudo 模式下均要配置。

5.制作文件系统

1)生成文件系统目录

在做文件系统之前,在 SDK 的 Hi3516CV500_SDK_V2.0.2.0/osdrv 目录下执行:make hirootfs_prepare ; 会 在 Hi3516CV500_SDK_V2.0.2.0/osdrv/pub 目 录 下 生 成rootfs_glibc 目录。

2)制作文件系统工具

Hi3516DV300 使用的是 jffs2 类型的文件系统,在 SDK 的Hi3516CV500_SDK_V2.0.2.0/osdrv/tools/pc/jffs2_tool 目录下,执行命令 make,生成的 mkfs.jffs2 是 jffs2 文件系统的打包工具。

3)生成文件系统

例 jffs2 的制作方法为:

./mkfs.jffs2 –d ./rootbox -l –e 0x10000 -o jffs2-root.img

Ps:./mkfs.jffs2 -d /home/wr/A182/Hi3516CV500_SDK_V2.0.2.0/osdrv/pub/rootfs_glibc -l -e 0x10000 -o rootfs_glibc_64k.jffs2

执行 build.sh

针对Hi3516DV300的使用方法-hi3521d netsdk_login15

三、固件烧写

1.烧写工具

HiTool

2.选择板卡主芯片

针对Hi3516DV300的使用方法-hi3521d netsdk_login16

3.PC与板端配置

 串口选择:插上串口工具后,点击刷新即可自动识别

 服务器 IP:选择本地网络服务器 IP

 传输方式:网口下载

针对Hi3516DV300的使用方法-hi3521d netsdk_login17

4.设置烧录文件

选择按分区烧写

点击浏览,选择固件 3516DV300-nor.xml 或 3516DV300-nand.xml

nor flash 版本:

针对Hi3516DV300的使用方法-hi3521d netsdk_login18

nand flash 版本:

针对Hi3516DV300的使用方法-hi3521d netsdk_login19

5.烧写

连接好开发板的网口和 micro_USB 接口,之后点击烧写,直到提示烧写成功 。

针对Hi3516DV300的使用方法-hi3521d netsdk_login20

Ps:这里烧写需要注意两点,

1.烧写前断电重新上电,可以直接在板子上按 power 按键。

2.注意网口 IP 地址、串口、flash 选择 nor nand 格式。

针对Hi3516DV300的使用方法-hi3521d netsdk_login21

猜你喜欢