1 u-boot移植

1.1 u-boot编译

进入u-boot文件夹,

步骤1 配置编译环境
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3516dv300_config
步骤2 编译u-boot
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- -j 4

编译成功后,将在 U-boot 目录下生成 u-boot.bin。

sdrv/opensource/uboot/u-boot-2016.11$ ls
Kbuild       README      cmd        doc       include  scripts          u-boot-nodtb.bin    u-boot.map
Kconfig      System.map  common     drivers   lib      snapshot.commit  u-boot.bin          u-boot.srec
Licenses     api         config.mk  dts       net      test             u-boot.cfg          u-boot.sym
MAINTAINERS  arch        configs    examples  post     tools            u-boot.cfg.configs
Makefile     board       disk       fs        product  u-boot           u-boot.lds

注意 这一步生成的 u-boot.bin 只是一个中间件,并不是最终在单板上执行的 U-boot 镜像.

1.2 生成最终使用的 U-boot 镜像

U-boot 镜像生成步骤如下:

步骤1

在 OSDRV 的 tools/pc/hi_gzip 目录下执行 make,并将生成的 bin/目录下的 gzip 文件拷贝至 U-boot 下 arch/arm/cpu/armv7/hi3516cv500/hw_compressed/目录

步骤2

在 Windows 下打开 SDK 中的“osdrv/tools/pc/uboot_tools/”目录下的配置表格。

Hi3516CV500R001C02SPC010\01.software\board\Hi3516CV500_SDK_V2.0.1.0\package\osdrv\tools\pc\uboot_tools\Hi3516DV300-DMEB_4L_FLYBY-DDR3_1800M_512MB_16bitx2-A7_900M-SYSBUS_300M.xlsm

注意 表格要启用宏才能运行
滚动到表格下方

使用默认配置, 点击 Generate reg bin file, 生成临时文件 reg_info.bin

步骤3

拷贝 reg_info.bin 到 U-boot 源代码目录,重命名为.reg。 将生成的 u-boot.bin 复制到osdrv/tools/pc/uboot_tools/目录

步骤4
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin

生成的 u-boot-hi3516cv500.bin 就是能够在单板上运行的 uboot 镜像。
阅读<HiBurn 工具使用指南>烧写uboot.

2 linux内核编译

2.1 配置内核

下载源码linux-4.9.37.tar.gz放到Hi3516CV500R001C02SPC010\01.software\board\Hi3516CV500_SDK_V2.0.1.0\package\osdrv\opensource\kernel
阅读readme_cn.txt, 打补丁
解压

tar -zxf linux-4.9.37.tar.gz
mv linux-4.9.37 linux-4.9.y
cd linux-4.9.y
patch -p1 < ../linux-4.9.37.patch
cd ../
tar -czf linux-4.9.y.tgz linux-4.9.y
cd ../../

进入源码文件夹顶层

步骤 1
cp arch/arm/configs/hi3516dv300_smp_defconfig .config
步骤2

内核配置

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
步骤3

选择需要的模块, 默认则直接保存退出.

2.2 编译内核并生成 kernel 镜像

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j 4
  Kernel: arch/arm/boot/zImage-dtb is readyUIMAGE  arch/arm/boot/uImage
Image Name:   Linux-4.9.37
Created:      Sun Mar 28 10:14:01 2021
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    3624854 Bytes = 3539.90 KiB = 3.46 MiB
Load Address: 80008000
Entry Point:  80008000Kernel: arch/arm/boot/uImage is ready

3 根文件系统编译

下载busybox-1.26.2.tgz, http://www.busybox.net
解压后进入文件夹

cp ./config_v200_a7_softfp_neon ./.config
make menuconfig


编译器前缀要对.

然后编译安装

make
make install

编译并安装成功后, 在 busybox 目录下的_install 目录下生成

创建一个文件夹 rootbox并进入

mkdir rootbox
cd rootbox

拷贝_install中的所有文件进来

cp -R ../_install/ .

新建其他文件夹

mkdir etc dev lib tmp var mnt home proc

配置 etc、 lib、 dev 目录的必需文件:
etc 目录可参考系统/etc 下的文件。其中最主要的文件包括 inittab、 fstab、 init.d/rcS
文件等,这些文件最好从 busybox 的 examples 目录下拷贝过来, 根据需要自行修
改。
lib 目录是存放应用程序所需要的库文件,请根据应用程序需要拷贝相应的库文

lib 目录是存放应用程序所需要的库文件,请根据应用程序需要拷贝相应的库文

----结束

SDK 软件包中已经包括配置好的完整的根文件系统,如果无特别需求,可直接使用。要添加自
己开发的应用程序,只需将应用程序和相应的库文件拷贝到根文件系统的对应目录即可。

文件夹hi3516dv300_spi_smp_image_glibc中已制作好, 可直接使用.

hi3516dv300 u-boot, 内核, 文件系统编译移植相关推荐

  1. linux根文件系统编译和移植过程

    一.概念 根文件系统:系统运行所必须依赖的一些文件 (比如脚本.库.配置文件.命令-),本质就是目录和文件. 根文件系统镜像:将根文件系统按照某种格式进行 打包压缩后生成的单个文件 rootfs--- ...

  2. 香橙派内核编译/移植 和 驱动编译

    OrangeZero2 内核编译/移植 和 驱动编译 为什么要选它?(买不起树莓派 : /(ㄒoㄒ)/~~) 当然是学习下内核编译 , 内核移植,驱动的编译啦. 1. 准备工作 工具 Ubuntu18 ...

  3. linux内核体系学习路径_Linux内核分析(一)linux体系简介|内核源码简介|内核配置编译安装...

    从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底,同时在博文中如果那些地方有问题还请各位大神为我讲解. 今天我们会分析到以下内容: 1. Linux体系结构简介 ...

  4. Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4.1.15版本内核)

    Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4.1.15版本内核) 文章目录 Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4 ...

  5. 嵌入式Linux(二十二)Linux内核分析及移植

    1. 编译linux内核   NXP从linux官网下载内核,然后移植到自己的CPU,我们的移植是基于NXP,再移植到自己的开发板. 制作一个sh: #!/bin/sh make ARCH=arm C ...

  6. linux内核的裁剪和移植实验,实验5 linux内核的裁剪移植.doc

    实验5 linux内核的裁剪移植 一.实验目的: 学习利用menuconfig配置文件进行裁减内核,编译内核并移植到开发板上. 二.实验内容 一.开发环境 宿主机:ubuntu10.04 开发板:ti ...

  7. 嵌入式根文件系统的移植和制作详解

    理论上说一个嵌入式设备如果内核能够运行起来,且不需要运行用户进程的话,是不需要文件系统的,文件系统简单的说就是一种目录结构,由于 linux操作系统的设备在系统中是以文件的形式存在,将这些文件进行分类 ...

  8. linux内核剪裁 4412,itop4412开发板-Linux内核的编译

    本篇文章基于itop4412开发板 5.3.2.1源码目录 Linux 内核源码在光盘"06_源码_uboot 和 kernel"目录下,如下图所示. 5.3.2.2 编译器 内核 ...

  9. [转载]基于ARM的linux内核裁剪与移植

    基于ARM的linux内核裁剪与移植 http://bbs.elecfans.com/forum.php?mod=viewthread&tid=185020  wutaimin( 楼主 ) 2 ...

最新文章

  1. Android开发--图形图像与动画(一)--Paint和Canvas类
  2. 【转载 译自MarketWatch 】 华尔街疯人日记 (二十五)
  3. spring 消息传递机制_Spring再次涵盖了您:继续进行消费者驱动的消息传递合同测试...
  4. leetcode 992. K 个不同整数的子数组(滑动窗口)
  5. 02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架(作业:TensorFlow教程+数字手势预测)
  6. 16篇论文、70多页PPT帮你优化深度学习模型,免费下载 | 资源
  7. AutoCADDCL对话框设计示例八
  8. Swagger 教程
  9. 文本生成系列之预训练模型
  10. 量化投资学习——如何阅读研报
  11. Ubuntu系统镜像下载网站
  12. 五年之后的前端会是什么样?
  13. macos重启docker
  14. vue实现微信扫码拨打电话
  15. 基于74LS161实现的多功能数字钟
  16. CentOS之vim操作
  17. 2014迅雷校园招聘笔试题(C++)
  18. UE4引擎AR开发插件Unreal4AR的获取方法
  19. 网络安全赛道,360安全卫士站上新高地
  20. 广东省3a学校计算机较好的有,3a院校排行_广东省全部3A学校排名

热门文章

  1. 中小企业掀起“减碳潮”,“上云”提高产品绿色竞争力
  2. AirServer 7.3.0中文版手机设备无线传送电脑屏幕工具
  3. 动态网站基本上都是有后台的,静态的网站就是纯HTML的网站的,这样的网站是没有后台的
  4. Win11 专业工作站版安装安卓子系统方法 (离线包安装)
  5. 简单的ps去掉图片上不想留的文字
  6. 用wireshark抓包疯狂聊天实验
  7. 侦测单IP是否为路由器,级联PC的原理
  8. 两种WIFI破解的方法
  9. php mysql多线程处理数据6_PHP WIN MYSQL Rdeis 下多进程处理产品数据测试 31 万条 6 进程...
  10. 优美图案c语言程序,C语言编程之一个最优美的图案