概述
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文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复