前言

  海思编译需要依赖一些海思的sdk,如海思的文件系统,BSP等,所以先要弄清楚文件系统的编译,海思的sdk都在里面,本篇主要是详细讲解海思uboot、kernel、roofts和userdata以及分区表的创建。

海思SDK

  找到开发资料中的海思SDK,如下图:
  在这里插入图片描述
  将其拷贝到虚拟机ubuntu的work/src中,如下图:
  在这里插入图片描述
  然后解压到work/sdk下,先解压到当前目录下:
  在这里插入图片描述

  然后mv挪过去:
  在这里插入图片描述

从头至尾全编译

  • 目标1:修改文件系统ip地址固定为192.168.0.210
  • 目标2:熟悉使用sdk只做修改后的文件系统量产刷包
      修改下文件系统中对于ip地址的设定,rootfs下的/userdata/userdata.conf,该文件是配置ip地址,修改静态ip地址为“192.168.0.210”,但是没又找到,查看sdk有一个专门编译userdata的命令,流程如下:
    ./make.sh uboot # 编译 uboot 完成,在 osdrv/pub/ 目录生成 u-boot-hi3516dv300.bin
    ./make.sh kernel # 在 osdrv/pub/ 目录生成 uImage_hi3516dv300_smp
    ./make.sh sample # 编译 sample 下所有 sample 程序,编译前会先 clean,将原有编译清理掉
    ./make.sh userdata # 编译 userdata ,会在 osdrv/pub/ 生成userdata链接
    ./make.sh rootfs # 在 osdrv/pub/ 目录生成 rootfs_hi3516dv300.ext4
    ./make.sh # 编译以上所有镜像

      是在第四步骤编译userdata会成圣userdata连接,此时修改userdata里面的ip配置即可。

    步骤一:编译uboot

      在 osdrv/pub/ 目录生成 u-boot-hi3516dv300.bin

    ./make.sh uboot

      在这里插入图片描述

    步骤二:编译kernel内核

      在 osdrv/pub/ 目录生成 uImage_hi3516dv300_smp

    ./make.sh kernel

      在这里插入图片描述

    步骤三:编译sample(开发板特有的,覆盖在文件系统上)

      编译 sample 下所有 sample 程序,编译前会先 clean,将原有编译清理掉

    ./make.sh sample

      在这里插入图片描述

    步骤四:编译userdata(开发板特有的实际的配置文件)

      编译 userdata ,会在 osdrv/pub/ 生成userdata链接,此时我们就修改生成的userdata文件下的ip地址(使其静态配置为192.168.0.210)。

    ./make.sh userdata

       在这里插入图片描述
      发现并没有生成/userdata/user.conf,查看make的userdata的命令,如下图:
      在这里插入图片描述

  是通过mk-userdata-image.sh生成的配置文件,找到mk-userdata-img.sh查看,并修改ip地址和广播地址如下:
  在这里插入图片描述
  然后重新生成。

./make.sh userdata

步骤五:编译rootfs

  在 osdrv/pub/ 目录生成 rootfs_hi3516dv300.ext4

./make.sh rootfs

  在这里插入图片描述
  至此,uboot启动引导到内核然后启用文件系统(sample和userdata是本开发本特有的,添加在原始文件系统上的)三个镜像都有了(即uboot、kernel、rootfs三个镜像)。
  然后提取到windows系统上,如下图:
  在这里插入图片描述