首页 > 其他分享 >Hi3516DV300开发笔记001——SDK的安装与编译

Hi3516DV300开发笔记001——SDK的安装与编译

时间:2024-05-08 21:15:14浏览次数:25  
标签:Hi3516DV300 sudo tar osdrv 001 linux tools SDK

1 安装SDK

​ 在"【易百纳】EB-3516DV300-DC-182型开发板\04.开发板SDK包"找到"Hi3516CV500_SDK_V2.0.2.0.tgz"文件,拷入Linux系统中"work/tools"目录中。

image-20240506153510198

1.1 解压缩SDK包

​ 在Linux服务器上使用命令:

tar -zxf Hi3516CV500_SDK_V2.0.2.0.tgz

​ 解压缩该文件,得到一个Hi3516CV500_SDK_V2.0.2.0目录

1.2 展开SDK包内容

​ 返回 Hi3516CV500_SDK_V2.0.2.0 目录,使用命令:

vim sdk.unpack

​ 将#!/bin/sh修改为#!/bin/bash:

image-20240506154523016

​ 使用命令:

sudo ./sdk.unpack

​ 将会展开 SDK 包打包压缩存放的内容。

1.3 安装交叉编译器

​ 在"【易百纳】EB-3516DV300-DC-182型开发板\04.开发板SDK包\Hi3516DV300 SDK\3516\toolchain"目录下找到文件“arm-himix200-linux.tgz”,拷入到Linux系统中“/work/tools/Hi3516CV500_SDK_V2.0.2.0/osdrv/opensource/toolchain”目录下。

image-20240506160953731

​ 解压himix200交叉编译器:

tar -zxvf arm-himix200-linux.tgz

​ 运行如下命令:

cd arm-himix200-linux
sudo chmod +x arm-himix200-linux.install
sudo ./arm-himix200-linux.install

​ 执行命令:

source /etc/profile

​ 安装交叉编译器的脚本配置的环境变量就可以生效了。

​ 修改环境变量:

sudo vim ~/.bashrc

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

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

​ 配置环境生效:

source  ~/.bashrc

​ 验证交叉编译器是否安装成功:

arm-himix200-linux-gcc -v

​ 打印如下信息:

image-20240506204004935

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

2 SDK编译

2.1 软件包安装

​ 执行如下命令:

sudo dpkg-reconfigure dash

​ 选择no:

image-20240506205404200

​ 执行如下命令,安装软件包:

sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools texinfo texlive gawk libssl-dev openssl bc

​ 使用touch命令创建/etc/ld.so.preload 文件,并执行 echo "" > /etc/ld.so.preload,以解决 64bit linux server 上某些第三方库编译失败的问题。

cd /etc
sudo touch ld.so.preload
sudo chmod 0777 /etc/ld.so.preload
echo "" > /etc/ld.so.preload

2.2 编译SDK

2.2.1 下载kernel

​ 进入 osdrv/opensource/kernel/目下载linuxlinux-4.9.37.tar.gz:

cd Hi3516CV500_SDK_V2.0.2.0/osdrv/opensource/kernel
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.9.37.tar.gz

​ 该方法下载很慢,建议迅雷下载,拷贝到osdrv/opensource/kernel/下。

2.2.2 下载yaffs2utils-0.2.9.tar.gz

cd osdrv/tools/pc/mkyaffs2image/
wget --no-check-certificate https://codeload.github.com/dorigom/yaffs2utils/tar.gz/0.2.9 -O yaffs2utils-0.2.9.tar.gz 

​ PS: wget指令下载https有些wget版本需要跳过https才能下载成功,使用--no-check-certificate 跳过,默认下载的文件可以使用-O参数修改文件名。

2.2.3 下载gdb-7.9.1.tar.gz

cd osdrv/tools/board/gdb/
wget http://ftp.gnu.org/gnu/gdb/gdb-7.9.1.tar.gz

2.2.4 下载ncurses-6.0.tar.gz

cd osdrv/tools/board/gdb/
wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz

2.2.5 下载util-linux-2.31.tar.gz

osdrv/tools/pc/cramfs_tool/
wget https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.31/util-linux-2.31.tar.gz

2.2.6 编译

​ 先安装编译osdrv目录所需的各种依赖包:

sudo apt-get install build-essential libusb-1.0-0-dev wget fakeroot kernel-package automake autoconf libtool bison flex libncurses5-dev zlib1g-dev mtd-utils uuid-dev

​ 打开osdrv文件夹,开始编译:

cd osdrv/
make all

出现报错:Makefile:45:recipe for/home/xia/work/tools/Hi3516cv500_sDK_v2.0.2.0/osdrv/tools/pc/jffs2 tool/tmp/sbin/mkfs.jffs2' failed

image-20240507130544308

解决方法:

​ 执行以下命令:

sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config automake

出现报错:Makefile:36: recipe for target '/home/xia/work/tools/Hi3516CV500_SDK_V2.0.2.0/osdrv/tools/board/eudev-3.2.7/tmp/eudev-3.2.7/udevd' failed

image-20240507140359202

解决方法:

​ 执行以下命令:

sudo apt-get install gperf

出现报错:cp: cannot stat ‘/home/endy/hi3516cv500_sdk_v2.0.2.1/osdrv/tools/board/gdb/gdb-7.9.1/gdb/gdb’: No such file or directory

image-20240507145516033

解决方法:

​ 执行以下命令:

sudo apt-get install bison

​ 出现如下信息,则编译完成:

image-20240508082753270

标签:Hi3516DV300,sudo,tar,osdrv,001,linux,tools,SDK
From: https://www.cnblogs.com/little55/p/18180879

相关文章

  • leetCode 001.两数之和
    给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,15],ta......
  • 【Azure Function】Function App启动时出现 Failed to open local port 4001 错误,这是
    问题描述在使用AzureFunction时,启用了多个槽(slot),方便在部署生产环境的时候直接切换。{"IsEncrypted":false,"Values":{"AzureWebJobsStorage":"UseDevelopmentStorage=true","FUNCTIONS_WORKER_RUNTIME":"dotnet-isolate......
  • 我们团队来了一位新同事,主动要求帮忙敲代码!欢迎 AI 001号
    通义灵码|7X24的AI智能编程助手工号:AI001他叫通义灵码,一个硅基生命。出生在0101星球,没有性别,但有人格类型。他是INTJ,建筑师型人格,艾萨克·牛顿和甘道夫同款。他会写一点代码,但不如我们会得多。我看了下他的简历,懂Java、Python、Go、JavaScript、TypeScript、C/C++、C#等200多......
  • 我们团队来了一位新同事,主动要求帮忙敲代码!欢迎 AI 001号
    通义灵码|7X24的AI智能编程助手工号:AI001他叫通义灵码,一个硅基生命。出生在0101星球,没有性别,但有人格类型。他是INTJ,建筑师型人格,艾萨克·牛顿和甘道夫同款。他会写一点代码,但不如我们会得多。我看了下他的简历,懂Java、Python、Go、JavaScript、TypeScript、C/C++、C#等200多......
  • AI 001 号员工通义灵码入职阿里云丨阿里云云原生 4 月产品月报
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......
  • 如何实现一个简单易用的 RocketMQ SDK
    2018年,做为架构负责人,接到一个架构需求:实现一个简单易用的RocketMQSDK。因为各个团队RocketMQ原生客户端配置起来千奇百怪,有的配置存在风险,各团队负责人都需要一个简洁易用的RocketMQSDK。我立马调研相关开源的方案,当时RocketMQ-Spring项目并没有开源,而阿里云的ONS......
  • AtCoder Grand Contest 001
    D.ArraysandPalindrome如果两个字符要求相同就给它们连边,对于一个长度为\(x\)的回文串,\(x\)是偶数会连\(x/2\)条边,奇数会连\(x/2-0.5\)条边。\(a\)和\(b\)两个序列总和为\(2n\),要让\(n\)个字符相同至少连\(n-1\)条边,也就是奇数个数超过\(2\)时一定无解......
  • P1028 [NOIP2001 普及组] 数的计算
    题目链接:观察样例。当输入\(n=6\)时,6本身算一个。当6后加的数为1时只有一个。6后加的数为2时有62,621两个。6后加的数为3时有63、631两个。可以看到,我们往\(n\)后加的每一个不超过\(\dfrac{n}{2}\)的数都可以继续延伸。考虑递推。\(f[i]\)表示以\(i......
  • [oeasy]python0015_键盘改造_将esc和capslock对调_hjkl_移动_双手正位
    键盘改造......
  • P2024 [NOI2001] 食物链
    原题链接题解带权并查集的应用,普通的并查集只能表示结点间的一种关系(如同一集合中的都是朋友)。而带权并查集的结点权值表示该结点与根结点的关系。相对应,带权并查集的路径压缩也复杂了一点。code #include<bits/stdc++.h>usingnamespacestd;constintN=5e4+5;intn,k......