HI3516AD+OV4689内核编译

    有个HI3516AD+OV4689的项目,之前也只是单看linux,没怎么实际用过,这个借着这个源码,代码,内核什么的,编译编译,学习下linux。

    第一个坑是运行sdk.unpack那,当时怎么都过不了,后来看文件,Google,发现是第一行#!/bin/sh的锅。默认/bin/sh指向dash的,但是这个要用bash来跑,所以直接改成#!/bin/bash就ok了。

    运行完sdk.unpack后,进入得到的osdrv目录(官方给的资料里很详细,每个目录是干嘛的,里面有什么文件,如何一步步编译都有,可以仔细看看),里面readme_cn.txt有make过程的详细介绍(这不得不佩服海思的严谨,几乎所有的说明文档都是中英两份的,中文看起来比英文上手快太多)。后来挨个运行了下,发现有些地方有些坑。一些简单的缺少库文件没啥了,直接用apt-file search /sys/acl.h,找到对应的lib,然后直接apt-get就行了。 之后遇到一些问题,纷纷记录下来。

    第一个地方是我原来用的gcc-6版本的用不了,后来百度后,要用低版本的,下了个gcc-5,把gcc链接到5版本上。

    第二个地方,本来我开始想一个一个make,熟练下,最后应该也没问题。然后我照着readme一个个make,先kernel,然后module,再uboot,都成功了但是最后发现没有文件系统的make,怪我太菜,大神估计就自己写个makefile直接跑了,我这就不知道怎么操作了。clean,然后再用make all实现。

    第三个地方这个make all,大坑,一会这个版本不对,一会那个版本不对,这个重复定义,那个什么的。尤其是Makefile里hipctools的jffs2_tool那,怎么都过不了,说有个重复定义,花式百度Google都不行,后来看有人说是官方提供的mtd-utils1.5.0不行,需要自己下更高版本的,然后自行替换相应的可执行文件。我就自己下了个1.5.2的包,自己解压,然后make,就把他对应的执行文件都跑出来了。在make Makefile里面,我先把jffs2_tools那部分都注释掉了,包括中间的make,cp,和后面的distclean。然后我make hipctools,先把别的mkyaffs2image, cramfs,mkimage,squashfs,lzma都make成功了,这个时候,我就照着被我注释掉的jffs2_tools里面的cp,一个一个把可执行文件替换进去。就是把我之前自己编译好1.5.2里面的那些文件,按照被我注释掉的Makefile里的路径,全部填过去。前几个都在自己编译的里面(mkfs.jffs2, mkfs.ubifs. ubinize),最后一个ubi.cfg是在osdrv/tools/pc/ubifs_config里面,我也不太清楚对不对,先把这个.cfg复制过去再说。然后进行make all,还好还好,没什么问题。编译成功,最后得到一句

------------------------finish osdrv work。

你可能感兴趣的:(嵌入式开发)