海思HI3519V101 SDK详细编译过程

						海思HI3519V101 SDK详细编译过程

环境介绍:

主机:windows
虚拟机:ubuntu 16.0402
Hi3519资料包:Hi3519 V101R001C01SPC021 (1).7z
SDK包:Hi3519V101_SDK_V1.0.2.1.tar.tgz

详细编译过程如下:

一,解压资料包:
7z x Hi3519 V101R001C01SPC021 (1).7z
这条命令是将Hi3519 V101R001C01SPC021 (1).7z中的所有文件解压出来,x是解压到压缩包命名的目录下。
二,编译SDK包:
SDK包路径:在"Hi3519***/01.software/board"目录下。
1.解压SDK包:
tar -zxf Hi3519V101_SDK_V1.0.2.1.tar.tgz
2.进入Hi3519V101_SDK_V1.0.2.1目录:
source sdk.cleanup
source sdk.unpack
注意:使用./sdk.cleanup 或则./sdk.unpack 可能不能正常运行。
3.安装交叉编译工具链:
交叉编译工具链分两种:
->针对uclibc的:arm-hisiv500-linux 路径:Hi3519V101_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv500-linux
->针对glibc的:arm-hisiv600-linux 路径:Hi3519V101_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv600-linux。
我使用的是arm-hisiv500-linux 。
编译步骤如下:
–>1.进入arm-hisiv500-linux目录.
–>2.chmod +x arm-hisiv500-linux.install
–>3. ./arm-hisiv500-linux.install
–>4. sudo vim ~/.bashrc ,文件末尾添加:
export PATH="/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin:$PATH"
–>5.source ~/.bashrc
4.编译osdrv:
详细过程参见osdrv目录下readme.cn.
详细编译过程如下:
->1.make OSDRV_CROSS=arm-hisiv500-linux distclean 彻底清除这个源码包里的任何前人留下的痕迹。
->2.make OSDRV_CROSS=arm-hisiv500-linux FLASH_TYPE=spi all
以下是我编译osdrv 过程中出现的问题及解决方法:
–>1. 报“arm-hisiv500-linux :command not found”:
原因:交叉编译工具链是32位,ubuntu是64,64位Ubuntu默认不兼容32位的程序。
解决方案:
—>sudo apt-get install libc6:i386
—>sudo apt-get install lib32stdc++6
—>sudo apt-get install lib32z1
–>2.报“/bin/sh: pushd not found”
原因:ubuntu中/bin/sh实际调用的是/bin/dash.但SDK的编译需要的是/bin/bash.
解决方案:
—>sudo rm /bin/sh
—>sudo ln -s /bin/bash /bin/sh
–>3.报“serve_image.c:32:18: error: storage size of ‘hints’ isn’t known”
原因:ubuntu系统版本太高,而SDK使用的mtd-utils版本太低导致.
解决方案:
—>sudo vi /usr/include/netdb.h
—>将 带__USE_XOPEN2K 的“#ifdef ” 的全部屏蔽(对应的#endif 也要屏蔽)。我这里共两处。
–>4.报“mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’”
原因:mtd-utils库的版本太低。
解决方案:将mtd-utils_1.5.0.tar.bz2 库更新为 mtd-utils_1.5.2.tar.bz2 。
—>http://nl.archive.ubuntu.com/ubuntu/pool/universe/m/mtd-utils/mtd-utils_1.5.2.orig.tar.bz2 下载 mtd-utils_1.5.2.orig.tar.bz2
—>拷贝到osdrv/tools/pc/jffs2_tool目录下。
—>mv mtd-utils_1.5.2.orig.tar.bz2 mtd-utils-1.5.2.tar.bz2
—>vim Makefile :修改MTD_UTILS为:MTD_UTILS := mtd-utils-1.5.2
–>5.报“ mkfs.ubifs/mkfs.ubifs.h:46:23: fatal error: uuid/uuid.h: No such file or directory”
原因:没装uuid-dev。
解决方案:
—>sudo apt-get install uuid-dev
最终出现:---------finish osdrv work
表示osdrv编译成功。

以下是我在解决问题时参考的文章(在此鸣谢):
https://blog.csdn.net/qhzm72/article/details/79122642
https://blog.csdn.net/q1302182594/article/details/51610902
https://blog.csdn.net/wangweiqiang1325/article/details/53443024
https://blog.csdn.net/q1302182594/article/details/51610902
https://blog.csdn.net/ternence_hsu/article/details/55212696
https://www.cnblogs.com/Ocean-Star/p/8902397.html
https://blog.csdn.net/dream_cs/article/details/78769008?utm_source=blogxgwz1
https://blog.csdn.net/mtbiao/article/details/77052659

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值