我是靠谱客的博主 凶狠中心,最近开发中收集的这篇文章主要介绍海思HI3518E SDK包学习编译osdrv文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.拷贝SDK包

拷贝SDK包到ubuntu里面并解压: 

解压命令:tar - xvf Hi3518E_SDK V1.0.3.0.tgz 

Hi3518E_SDK V1.0.3.0.tgz解压后的目录:

sdk.cleanup用来清理sdk,把解压开的东西删除掉,把修改的也删除掉。

sdk.unpack用来解压sdk的。 

2.编译osdrv文件 (里面主要是uboot,kernel,根文件系统)

Makefile指导编译,readme_cn.txt是Makefile的使用说明。

编译一般执行 readme_cn.txt 里面的命令。

在编译之前最好执行一遍:distcleam清除一遍。

复制交叉编译工具链到当前目录下解压:

tar - jxvf  arm-hisv300-linux.tar.bz2 

编译:

 如果遇到编译过程中出现错误,将出错的语句复制到百度,尝试解决方案。

一般在企业中编译出现的错误,分代码中的错误和配置错误,代码的错误需要我们自己修改,

编译配置错误,需要找到配置工程师配置。

 刚刚的编译一直出错,是因为Ubuntu是64位的,但是交叉工具链是32位的。


3.在ubuntu16.0403X64上安装海思交叉编译工具链

查看工具链是几位的:32bit位

ubuntu16是64位的,解决办法:装32位的兼容包。

参考:http://blog.csdn.net/ma57457/article/details/68923623

或者:https://www.cnblogs.com/leaven/p/5084902.html

用aptitude方式安装lib32z1。使用sudo apt-get install lib32z1,发现装不了。原因是ubuntu

太新了,里面很多库都是新版本的,但是基于这个新版本的lib32z1还没有,所以不能装。解决

方案就是用aptitude工具来装。

测试执行arm-xxx-gcc -v,提示找不到stdc++错误:

./arm-hisiv300-linux-uclibcgnueabi-gcc -v

./arm-hisiv300-linux-uclibcgnueabi-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

再用aptitude方式安装lib32stdc++6-4.8-dbg

sudo aptitude install lib32stdc++6-4.8-dbg

 再次测试arm-xxx-gcc -v,终于可以运行了。

可以运行说明已经解决了64位和32位兼容的问题。

4.再次测试整体编译osdrv

 仍然提示找不到arm-hisiv300-linux-gcc。。。。。。。。。。。。

export导出到环境变量:
export PATH=/home/aston/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/arm-hisiv300-linux/bin:$PATH

但是编译还是出错...............

分析原因:名字不对

解决方案有2个:一种是修改make时传参的名字,另一种是给安装好的交叉编译工具链创建符号

链接。

5.整体或者部分编译osdrv

uboot,kernel编译成功:

du -h *查看编译完成的uboot 有268K,编译完成的kernel有2.6M。

如果整体编译出现出错,尝试部分编译,编译uboot,编译kernel,编译rootfs。

readne_cn.txt文件中有单独编译uboot,单独编译kernel,单独编译rootfs的编译命令。

 具体的编译看编译指导文件readne_cn.txt。

编译的一些注意事项:

解压包的时候一般在linux下解压编译,不要早windon下解压编译,这样会产生很多的错误。

最后

以上就是凶狠中心为你收集整理的海思HI3518E SDK包学习编译osdrv文件的全部内容,希望文章能够帮你解决海思HI3518E SDK包学习编译osdrv文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部