1、HI3518环境搭建

1.1软硬件环境和准备

1.ubuntu:16.04 可联网
2.window7
3.HI3518EV200开发板(网卡、SD卡、16Mspi_flash、USB 、 串口)
4.SDK包:Hi3518E V200R001C01SPC040

1.2安装交叉编译工具

路劲:Hi3518E V200R001C01SPC040\01.software\board\Hi3518E_SDK_V1.0.4.0.tgz

①、将编译工具链拷到ubuntu,并解压

cp /mnt/hgfs/winshare/Hi3518E_SDK_V1.0.4.0.tgz ./
tar -xvf Hi3518E_SDK_V1.0.4.0.tgz

②、运行sdk.unpack

解压后的文件:package scripts sdk.cleanup sdk.unpack
运行 sdk.unpack source sdk.unpack,会自动解压等操作

③、安装交叉工具链

进入路径:/osdrv/opensource/toolchain
有两个,我们选择第一个arm-hisiv300-linux ,再进入
运行cross.install.v300 ./cross.install.v300
进入 /opt/hisi-linux/x86-arm/arm-hisiv300-linux/ 发现自动帮我们把编译工具链安装到此处了

④、创建交叉编译工具链符号链接

为工具链创建符号链接,因为编译osdrv时,需要使用arm-hisiv300-linux, 在此目录下,进入bin文件夹,创建一个脚本creat_hisiv300.sh,直接运行 source creat_hisiv300.sh,脚本内容如下

ln -s arm-hisiv300-linux-uclibcgnueabi-addr2line arm-hisiv300-linux-addr2line
ln -s arm-hisiv300-linux-uclibcgnueabi-ar arm-hisiv300-linux-ar
ln -s arm-hisiv300-linux-uclibcgnueabi-as arm-hisiv300-linux-as
ln -s arm-hisiv300-linux-uclibcgnueabi-c++ arm-hisiv300-linux-c++
ln -s arm-hisiv300-linux-uclibcgnueabi-c++filt arm-hisiv300-linux-c++filt
ln -s arm-hisiv300-linux-uclibcgnueabi-cpp arm-hisiv300-linux-cpp
ln -s arm-hisiv300-linux-uclibcgnueabi-elfedit arm-hisiv300-linux-elfedit
ln -s arm-hisiv300-linux-uclibcgnueabi-g++ arm-hisiv300-linux-g++
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc arm-hisiv300-linux-gcc
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc-4.8.3 arm-hisiv300-linux-gcc-4.8.3
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc-ar arm-hisiv300-linux-gcc-ar
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc-nm arm-hisiv300-linux-gcc-nm
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc-ranlib arm-hisiv300-linux-gcc-ranlib
ln -s arm-hisiv300-linux-uclibcgnueabi-gcov arm-hisiv300-linux-gcov
ln -s arm-hisiv300-linux-uclibcgnueabi-gdb arm-hisiv300-linux-gdb
ln -s arm-hisiv300-linux-uclibcgnueabi-gprof arm-hisiv300-linux-gprof
ln -s arm-hisiv300-linux-uclibcgnueabi-ld arm-hisiv300-linux-ld
ln -s arm-hisiv300-linux-uclibcgnueabi-ld.bfd arm-hisiv300-linux-ld.bfd
ln -s arm-hisiv300-linux-uclibcgnueabi-nm arm-hisiv300-linux-nm
ln -s arm-hisiv300-linux-uclibcgnueabi-objcopy arm-hisiv300-linux-objcopy
ln -s arm-hisiv300-linux-uclibcgnueabi-objdump arm-hisiv300-linux-objdump
ln -s arm-hisiv300-linux-uclibcgnueabi-ranlib arm-hisiv300-linux-ranlib
ln -s arm-hisiv300-linux-uclibcgnueabi-readelf arm-hisiv300-linux-readelf
ln -s arm-hisiv300-linux-uclibcgnueabi-size arm-hisiv300-linux-size
ln -s arm-hisiv300-linux-uclibcgnueabi-strings arm-hisiv300-linux-strings
ln -s arm-hisiv300-linux-uclibcgnueabi-strip arm-hisiv300-linux-strip

⑤、添加环境变量

vi ~/.bashrc,在文件末尾追加export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH
重启终端,以便环境变量生效
验证是否生效 arm-hisiv300-linux-gcc -v
出现以下错误
bash: /opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/arm-hisiv300-linux-gcc: No such file or directory

⑥、解决64位ubuntu不兼容32bit工具问题

以上问题由于64位ubuntu不兼容32bit工具问题,使用以下步骤解决
sudo aptitude install lib32z1 第一个选择N
sudo aptitude install lib32stdc++6-4.8-dbg 第一个选择N
有时选择国内镜像源安装可能不成功

⑦、验证安装成功

运行arm-hisiv300-linux-gcc -v出现版本号
gcc version 4.8.3 20131202 (prerelease) (Hisilicon_v300)

1.3编译OSDRV及出现的问题

进入cd /usr/HI/Hi3518E_SDK_V1.0.4.0/osdrv/编译时使用

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

①、问题 /bin/sh: 1: pushd: not found

查看sh链接为dash
改为bash
rm -sh
ln -s bash sh

②、问题 “mkimage” command not found - U-Boot images will not be built

进入/usr/HI/Hi3518E_SDK_V1.0.4.0/osdrv/opensource/uboot/u-boot-2010.06/tools
将mkimage拷贝到/bin
cp mkimage /bin

③、问题 compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory

sudo aptitude install zlib1g-dev

④、问题 serve_image.c:103:35: error: dereferencing pointer to incomplete type ‘struct addrinfo’

在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致
修改操作系统头文件/usr/include/netdb.h,将此宏__USE_XOPEN2K注释
注意#ifdef与#endif是一一对应的

⑤、mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’

先下载mtd-utils_1.5.2.orig.tar.bz2
下载地址:http://nl.archive.ubuntu.com/ubuntu/pool/universe/m/mtd-utils/mtd-utils_1.5.2.orig.tar.bz2
拷贝到此目录下:/osdrv/tools/pc/jffs2_tool
重命名为:mtd-utils_1.5.2.orig.tar.bz2
更改同目录下的makefile MTD_UTILS := mtd-utils-1.5.2

⑥、问题 mkfs.ubifs/mkfs.ubifs.h:46:23: fatal error: uuid/uuid.h: No such file or directory compilation terminated.

在这里插入代码片

⑦、问题 error: ncurses or ncursesw selected, but library not found (–without-ncurses to disable)

sudo apt-get install libncurses5-dev libncursesw5-dev

————————————————
注:本文参考原文链接:

HI3518环境搭建相关推荐

  1. 01、HI3518环境搭建和熟悉

    01.HI3518环境搭建和熟悉 @(HI3518EV200学习) 参考博文:https://blog.csdn.net/qq_39436605/article/details/90081360 文章 ...

  2. Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建

    Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建 一.Anaconda 创建 python3.7环境 1.进入 C:\Users\用户名 目录下,找到 ...

  3. Windows10+Anaconda3+Pycharm环境搭建

    Windows10+Anaconda3+Pycharm环境搭建 一.安装Anaconda3 1.进入 anconda官网,下载Anaconda3 2.安装,选项默认继续安装(可以自行更改安装位置),等 ...

  4. SpringCloud Alibaba微服务实战(一) - 基础环境搭建

    说在前面 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来 ...

  5. 2021年大数据环境搭建(二):分布式环境搭建

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 分布式环境搭建 集群规 ...

  6. 2021年大数据Spark(八):环境搭建集群模式 Standalone HA

    环境搭建-Standalone HA 高可用HA Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单 ...

  7. 2021年大数据Spark(六):环境搭建集群模式 Standalone

    目录 环境搭建-Standalone 前言 Standalone 架构 ​​​​​​​集群规划 修改配置并分发 修改slaves ​​​​​​​分发到其他机器 修改spark-env.sh 集群启动和 ...

  8. CentOS7环境搭建使用PhpStorm上传代码

    一.虚拟机介绍 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统. 虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实win ...

  9. window10 系统上 ecplise 环境搭建

    ecplise 安装需要用到  JDK 环境的搭建以及ecplise 的下载 这两部完成即可 一: JDK环境搭建 到官网上下载JDK并且安装即可(下载的时候注意选择Accept License Ag ...

最新文章

  1. 用SecureCRT在linux系统下载文件
  2. 大厂都拿捏的缓存方案,平台级分布式缓存,什么业务才合适?
  3. 通过OpenFoam记录一些c++的trick(持续更新)
  4. HDU-1241 Oil Deposits (DFS)
  5. mysql日期格式转化
  6. 多线程 流水线 java_Java Lock锁多线程中实现流水线任务
  7. K8S从懵圈到熟练 - 节点下线姊妹篇
  8. 什么是带内管理 带外管理?(转)
  9. docker build 变量_Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
  10. tld 第二个函数tldInitFirstFrame
  11. bzoj1036 count 树链剖分或LCT
  12. c语言:【顺序表】静态顺序表的删除指定位置元素Erase、删除指定元素Remove
  13. vuex页面刷新后数据丢失
  14. CSP多USBkey操作获取信息
  15. java端口扫描器_简单端口扫描器java的设计与实现.doc
  16. 1-2 实验2 点对点通信
  17. ArcGIS坡度分析(解决坡度分析80-89°高值居多)
  18. Tapestry5自定义组件
  19. WPF 控件 (二、按钮)
  20. 卷积神经网络 ——卷积神经网络的结构

热门文章

  1. PHP 脚本在服务器上执行
  2. spark学习之处理数据倾斜
  3. 我通过Python给我们班写了个电子考勤系统!室友为啥孤立我了?
  4. profinet西门子 Smart200对接工业读写器
  5. 在word中粘贴图片显示出现问题
  6. oracle计算收益率,oracle 分析函数总结--仅供参考
  7. 学习笔记之抽取和内插
  8. 论文写作公式使用 MacOS+Word+Mythtype 7
  9. 2020年 网络 “十大热词” 出炉,你熟悉哪些?
  10. android exoplayer在您的应用中播放视频,例如youtube