上一篇:《Hi3516开发笔记(三):Hi3516虚拟机基础环境搭建之交叉编译环境境搭建以及开机启动脚本分析
下一篇:《Hi3516开发笔记(五):通过HiTools使用网口将uboot、kernel、roofts和userdata按照分区表烧写镜像》敬请期待…

 

前言

  海思编译需要依赖一些海思的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系统上,如下图:
  

 

上一篇:《Hi3516开发笔记(三):Hi3516虚拟机基础环境搭建之交叉编译环境境搭建以及开机启动脚本分析
下一篇:《Hi3516开发笔记(五):通过HiTools使用网口将uboot、kernel、roofts和userdata按照分区表烧写镜像》敬请期待…

 

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121572767

Hi3516开发笔记(四):Hi3516虚拟机编译uboot、kernel、roofts和userdata以及分区表的更多相关文章

  1. Hi3516开发笔记(六):通过HiTools使用USB/串口将uboot、kernel、roofts和userdata按照分区表烧写镜像

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121706033红胖子(红模仿)的博文大全:开发技术集合( ...

  2. Hi3516开发笔记(二):Hi3516虚拟机基础环境搭建之串口调试、网络连接以及sftp文件传输

    前言   搭建Hi3516的基础虚拟机,为交叉编译环境搭建前期工作.后续会编译一个基本的C语言程序Demo,在HI3516上跑.   虚拟机   开发本对虚拟机做了一些基本要求,如下图:    其实重 ...

  3. Hi3516开发笔记(一):海思HI3516DV300芯片介绍,入手开发板以及Demo测试

    前言   目前主流国产芯片为RV11XX.RK33XX.Hi35XX系列,本系列开启Hi3516系列的开发教程.   Hi3516DV300芯片介绍   Hi3516DV300为专业行Smart IP ...

  4. Django开发笔记四

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...

  5. Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件

    前言   上一篇已经将himpp套入qt的基础上进行开发.那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤.   受限制   因为直接配置sample的vi比较麻烦 ...

  6. Hi3516开发笔记(三):Hi3516虚拟机基础环境搭建之交叉编译环境境搭建以及开机启动脚本分析

    前言   前面进行了可以传输,那么写一个简单的C程序来交叉编译并传入运行.   虚拟机   上一篇搭建的虚拟机环境,包含了sftp传递文件,网络能ping通,基于上一篇的虚拟机继续搭建.   海思交叉 ...

  7. Hi3516开发笔记(五):通过HiTools使用网口将uboot、kernel、roofts和userdata按照分区表烧写镜像

    前言   前面生成了uboot,kernel,sample,userdata(我们实际修改了ip的),rootfs,现在需要烧写进入核心板.   使用网口烧写镜像(海思烧写必须占用调试串口) 步骤一: ...

  8. iOS开发笔记18:一些编译、开发调试、打包的细节整理

    1.以链库的方式引用第三方库 一些特殊场景可能会要求使用链库的方式使用第三方库,大体设置如下: ①Other Linker Flags里进行设置,格式为-l+库名称 ②Libray Search Pa ...

  9. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

随机推荐

  1. Android QMUI实战:实现APP换肤功能,并自动适配手机深色模式

    Android换肤功能已不是什么新鲜事了,市面上有很多第三方的换肤库和实现方案. 之所以选择腾讯的QMUI库来演示APP的换肤功能,主要原因: 1.换肤功能的实现过程较简单.容易理解: 2.能轻松适配 ...

  2. GAN实战笔记——第一章GAN简介

    GAN简介 一.什么是GAN GAN是一类由两个同时训练的模型组成的机器学习技术:一个是生成器,训练其生成伪数据:另一个是鉴别器,训练其从真实数据中识别伪数据. 生成(generative)一词预示着 ...

  3. vps实现私人代码托管并用nginx部署hexo

    个人博客 原本我的博客是通过github pages搭建的,但由于一些众所周知的原因,即使套上了CDN依旧是访问状态令人堪忧,经常会造成各种各样的问题,并且由于不存在服务器也不好进行进一步的管理,更不 ...

  4. vue基础-组件&插槽

    组件 组件化的意义:封装(复用,把逻辑隐藏起来,提高可维护性),快速开发(搭积木) 约定:我们通常把那些除了HTML标签以外的自定义组件,才称为'组件',结论是,我们说"父组件"& ...

  5. 【c++ Prime 学习笔记】第15章 面向对象程序设计

    15.1 OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是:数据抽象.继承.动态绑定 使用数据抽象,可将类的接口与实现分离 使用继承,可定义相似的类 ...

  6. Beta Scrum Meeting汇总

    第0次Alpha Scrum Meeting 第1次Alpha Scrum Meeting 第2次Alpha Scrum Meeting 第3次Alpha Scrum Meeting 第4次Alpha ...

  7. the Agiles Scrum Meeting 9

    会议时间:2020.4.17 20:00 1.每个人的工作 今天已完成的工作 个人结对项目增量开发组:基本实现个人项目创建.仓库自动分配,修复bug issues: 增量组:准备评测机制,增加仓库自动 ...

  8. Intellij IDEA 2021.2.3 最新版免费激活教程(可激活至 2099 年,亲测有效)

    ​ 申明,本教程 Intellij IDEA 最新版破解.激活码均收集与网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除.如条件允许,建议大家购买正版. 本教程更新于:2021 年 10 月 ...

  9. 有了 HTTP 协议,为什么还需要 Websocket?

    WebSocket 是一种基于 TCP 连接上进行全双工通信的协议,相对于 HTTP 这种非持久的协议来说,WebSocket 是一个持久化网络通信的协议. 它不仅可以实现客户端请求服务器,同时可以允 ...

  10. 开发笔记-----Ajax 基础使用

    一.GET 方式的用法: 1 <!--html --> 2 <div class="layui-form"> 3 <div class="l ...