搭建开发环境

1. 准备ubuntu 16.04

还是windows下载东西快,今天网络差。只好在win下用迅雷下载一些包。
1.1 下载etcher
1.2 准备ubuntu16.04 iso
1.3 用etcher 制作ubuntu启动USB
I3台式机开机按F12进入BOOT选项

1.4 等待安装完成
1.5 复制Hi3518E_V200R001C01SPC030至主机
1.6 ssh

sudo apt install openssh-server

1.7 解压

tar -zxf Hi3518E_SDK_V1.0.3.0.tgz

1.8 更改source.list

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

2. 展开SDK包内容

./sdk.cleanup

运行shell的时候出现  ./sdk.unpack: source: not found

ubuntu16.04 系统默认的SH(脚本解析器)为dash,可以使用 ls -l /bin/sh 命令查看

修改默认脚本解析器为bash,方法如下:

1、命令行输入:sudo dpkg-reconfigure dash

2、选择<no>

3、ls -l /bin/sh 查询确认

./sdk.unpack

3、在linux服务器上安装交叉编译器

cd osdrv/opensource/toolchain/arm-hisiv300-linux
sudo ./cross.install.v300

导入环境变量

export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin:$PATH
echo $PATH

修改~/.bashrc

vim ~/.bashrc

在最底部添加:

export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin:$PATH

让配置生效

source ~/.bashrc

4、编译OSDRV

cd ~/HI3518EV200/Hi3518E_SDK_V1.0.3.0/osdrv/
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

错误,系统找不到arm-hisiv300-linux-gcc,说明交叉编译工具未安装完成

4.1 安装交叉编译工具

解决方法
    步骤1,进入工具链及其安装程序的目录位置:Hi3518E_SDK_V1.0.3.0/osdrv/opensource/toolchain/arm-hisiv300-linux
    步骤2,解压工具链:tar -xvf arm-hisiv300-linux.tar.bz2
    步骤3,安装工具链:sudo ./cross.install.v300
    步骤4,进入交叉编译工具链的挂载目录:cd /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin
    步骤5,ls 【发现里面有很多arm-hisiv300-linux-uclibcgnueabi-xxx编译工具链】
    步骤6,file file arm-hisiv300-linux-uclibcgnueabi-gcc 【ELF 32-bit LSB executable,也就是说这个交叉编译工具链是32位的,但是我是用的虚拟机上Ubuntu16.04是64位的,因此必须安装32位的兼容包】
    步骤7,cd ../target/bin
    步骤8,ls 【发现里面有很多arm-hisiv300-linux-xxx编译工具链,这些是arm-hisiv300-linux-uclibcgnueabi-xxx的符号链接,就是我们要找的arm-hisiv300-linux工具链,可以用ls -l查看】
    步骤9,pwd 【/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin,记住这个路径,需要将这个路径导入到环境变量中:见步骤9,10】
    步骤10,vi ~/.bashrc,在文件末尾追加export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH
    步骤11,source ~/.bashrc 【确保环境变量设置生效.,可以用echo $PATH查看是否成功导入】
    步骤12,ping www.baidu.com 【确保虚拟机能上网】
    步骤13,sudo apt install lib32z1 【注意:要安装任何软件之前,一定要确保虚拟机能上网】
    步骤14,sudo apt install lib32stdc++6-4.8-dbg 【注意:要安装任何软件之前,一定要确保虚拟机能上网】

4.2 再次编译

cd ~/HI3518EV200/Hi3518E_SDK_V1.0.3.0/osdrv/
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.3 错误

4.3.1  "mkimage" command not found - U-Boot images will not be built

解决方法1:
    步骤1,cd opensource/uboot/u-boot-2010.06
    步骤2,ls 【可以看到里面uboot.bin已经生成了】
    步骤3,cd tools 【里面有mkimage.c和mkimage】
    步骤4,file mkimage 【写x86-64位的架构,ubuntu16.0.04也是x86-64架构,因此可以在当前虚拟机上运行】
    步骤5,sudo cp mkimage /usr/local/bin
    步骤6,cd ../../
    步骤7,ls 【发现里面要u-boot-2010.06文件夹和u-boot-2010.06.tgz压缩包】
    步骤8,mki[连续按TabTab键] 【发现补全mkimage,说明已经成功解决了】

解决方法2:
    步骤1, ping www.baidu.com 确保虚拟机能上网
    步骤2,sudo apt-get install u-boot-tools

4.3.2  compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory

解决方法
    步骤1,sudo apt install zlib1g-dev

4.3.3  serve_image.c:32:18: error: storage size of ‘hints’ isn’t known

原因
在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致

解决方法
修改操作系统头文件/usr/include/netdb.h,将此宏__USE_XOPEN2K注释,如下图(注意#ifdef与#endif是一一对应的)
    步骤1,sudo vim /usr/include/netdb.h
    步骤2,:set nu 【显示行号】
    步骤3,/__USE_XOPEN2K 【搜索】
    步骤4,将第79行的#if defined __USE_XOPEN2K || defined __USE_XOPEN_EXTENDED和相应的第82行的#endif用//注释掉
    步骤5,/__USE_XOPEN2K 【搜索】
    步骤6,第565行的#ifdef __USE_XOPEN2K和第681行的的#endif用//注释掉 【用:681命令跳转到681行】

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

-----------
    Makefile:204: recipe for target 'hipctools' failed
解决方案:下载mtd-utils-1.5.2.tar.bz2,替换osdrv\tools\pc\jffs2_tool目录下的mtd-utils-1.5.0.tar.bz2

步骤1,wget http://nl.archive.ubuntu.com/ubuntu/pool/universe/m/mtd-utils/mtd-utils_1.5.2.orig.tar.bz2

步骤2,下载完可以直接放到osdrv\tools\pc\jffs2_tool目录下,同时修改压缩包名字为mtd-utils-1.5.2.tar.bz2,方可被识别。

步骤3,同时修改该目录下的Makefile,将版本号改为1.5.2。第22行的mtd-utils-1.5.0改为mtd-utils-1.5.2

4.3.5 onfigure: error: ncurses or ncursesw selected, but library not found

解决方案:
    sudo apt-get install libncurses5-dev libncursesw5-dev

4.3.6 mkfs.ubifs/mkfs.ubifs.h:46:23: fatal error: uuid/uuid.h: No such file or directory

解决方法:sudo apt-get install uuid-dev

最终编译完成会出现以下画面:

参考

HI3518EV200 SDK安装并编译osdr。 https://www.cnblogs.com/Ocean-Star/p/8902397.html
Hi3518EV200的环境搭建, https://blog.csdn.net/oqqhutu12345678/article/details/78968791

Hi3518EV200的环境搭建-Ubuntu16、18遇到的问题集锦,https://blog.csdn.net/qq_27158179/article/details/86745776

Hi3518EV200的开发环境搭建,Hi3518E_V200R001C01SPC030相关推荐

  1. Android环境搭建和Android HelloWorld—Android开发环境搭建

    Android_Android开发环境搭建-搭建Android的开发环境 1.我考虑先下载JDK7.0,在JDK的安装中,考虑一般SDK都是向上兼容的,于是选择了最高的版本7.0 这里是我总结的详细的 ...

  2. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  3. Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序

    文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...

  4. 智能合约开发环境搭建及Hello World合约

    如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. 就先学习任何编程语言一样,入门的第一个程序都是Hello World.今天我们来一步一步从搭建以太坊智能合约 ...

  5. iPhone开发环境搭建全过程 iPhone手机开发内容,中文手册

    http://3g.edu.csdn.net/kecheng/iphone.html  iPhone手机开发内容 http://www.docin.com/p-34874880.html# iPhon ...

  6. python搭建numpy_python开发环境搭建及numpy基本属性-【老鱼学numpy】

    目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...

  7. windows下pomelo开发环境搭建及JS乱码问题

    from: http://blog.csdn.net/wangqiuyun/article/details/9243263 最近一直在研究node.js这一块,为的就是使用网易的pomelo框架,学习 ...

  8. Android配置----Android开发环境搭建

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. JDK安装以及开发环境搭建

    无论是Java开发.J2EE以及Android开发搭建环境时JDK开发环境搭建及环境变量配置是必不可少的,这篇文章就来就分别介绍下JDK的下载以及不同平台的环境变量的配置. 1.安装JDK开发环境 官 ...

最新文章

  1. 运动是性价比最高的投资
  2. 5/29 c的结构体变量
  3. mysql variables_通过什么命令能够改变mysql的variables的变量里的值?
  4. vmware中的Ubuntu安装ssh全家桶(解决connect to host localhost port 22: Connection refused)...
  5. ffplay.c学习-2-数据读取线程
  6. 雅礼集训 2017 Day1
  7. CF1550F Jumping Around
  8. Python 数据分析三剑客之 NumPy(五):数学 / 算术 / 统计 / 排序 / 条件 / 判断函数合集
  9. Android 引用模块中的类,解决Android项目中找不到Module中的封装类或引用的第三方类库...
  10. B站发布2020年一季度财报:月活用户达1.72亿,日活用户突破5000万
  11. android小米通知不显示电量,Android开发笔记——小米通知‘坑’ app的通知一直显示在不重要通知里 ......
  12. n进制快速转化成10进制
  13. 【转】VB中NEW的用法(申请内存空间)
  14. Django中的富文本编辑器的使用
  15. 算术运算 (SSE2 整数内部)
  16. C#:异步编程和线程的使用(.NET 4.5 )
  17. 第六届全国大学生GIS应用技能大赛开发题答案(非官方)
  18. 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾 一
  19. 【通俗易懂】机器学习中 L1 和 L2 正则化的直观解释
  20. 第05课:Redis 实际应用中的异常场景及其根因分析和解决方案

热门文章

  1. WindowsLinux cmd 常用命令
  2. Fabric中PBFT源码解读——Checkpoint机制
  3. cocos 贝塞尔曲线编辑器
  4. 解决word插入(粘贴)图片不能显示的问题
  5. 使用idea时maven报错:Error reading file E:/heima/ns/pom.xml
  6. nginx代理应用sso跳转处理
  7. 写一个关机代码让别人的电脑根据你的指令关机,c语言写小程序恶搞别人
  8. 虚拟机下载安装、Docker下载安装
  9. 常用JAVA面试题库
  10. 串口485和串口232接线