[海思3519av100] 如何使用sdk编译uboot、kernel、rootfs

使用环境及背景

        手头上的板子为3519av100的海思demo板,使用sdk release出来的uboot、kernel、rootfs烧写正常,sample跑起来正常,不过由于都是使用nfs挂载方式,使用起来颇为不便,所以想直接改rootfs,把程序启动需要的ko、lib、so等配置都先 弄好,这样调试应用程序就比较方便简单了。

相关环境及文件

Linux操作系统,或者虚拟机安装Linux:例如Ubuntu14.04

linux-4.9.39源码 ,可以点击这里下载

海思sdk,比如:Hi3519AV100_SDK_V2.0.2.0

arm-himix200-linux编译链事先配置好

 

操作步骤

1、解压sdk,执行sdk.unpack,自动解压相关的一些压缩文件

[海思3519av100] 如何使用sdk编译uboot、kernel、rootfs_第1张图片

2、解压osdrv,可以好好看看里面的readMe,详细说了具体步骤,没什么问题这里只做一笔带过

3、kernel放入opensource/kernel,同样看看kernel下readMe操作(执行脚本进行解压、打patch,重新压缩成linux-4.9.y.tgz)

4、osdrv下执行make OSDRV_CROSS=arm-himix200-linux CHIP=hi3519av100 BOOT_MEDIA=spiall  (也可以改makefile中默认参数就不用加参数编译了,确认好板子emmc或者nand flash等)

注意:make all这一步易出错,可能会报jffs2编译出错,直接退出,因为该目录是将uboot、kernel、rootfs一起编译,前两个编译都是没问题,pub下也能成功生成文件,但是rootfs只生成了部分,到生成jffs2格式时退出,这里有两个方案:

1)、修改makefile,跳过编译jffs2工具和编译jffs2格式(以下为部分内容);

[海思3519av100] 如何使用sdk编译uboot、kernel、rootfs_第2张图片

2)、这里出错主要是编译jffs2工具出错,它需要依赖一些三方组件,按照osdrv/tools/pc/jffs2_tool/readMe,不过这些组件由于版本有有要求,安装时需要下载源码进行编译,并且一个个安装需要的依赖项,比较麻烦,例如autoconf-2.65、automake-1.15.1及各种依赖

5、以上解决了重新编译一般没问题,或者也可以选择单独编译

make hiboot

make hikernel

make hirootfs_build

 

makefile中默认 会删除rootfs目录,需要添加自己的库时需要保存该目录,然后拷贝库及修改配置后手动进行编译生成

 

 

你可能感兴趣的:(海思35xx系列)