当前位置: 首页 > ops >正文

Linux系统移植①:uboot概念

Linux系统移植①:uboot概念

uboot概念

1、uboot是一个比较复杂的裸机程序。
2、uboot就是一个bootloader,作用就是用原于启动Linux或其他系统。uboot最主要的工作就是初始化DDR。因为Linux是运行再DDR里面的。一般Linux镜像zImage(uImage)+设备树(.dtb)存放在SD、EMMC、NAND、SPI Flash等等外置存储区域。
这就牵扯到一个问题,需要将Linux镜像从外置flash拷贝到DDR中,再去启动。
3、bootloader是引导加载程序,其中最常用的一种就是uboot。
4、uboot的主要目的就是为系统的启动做准备。
5、uboot不仅能启动Linux,也可以启动其他系统,比如vxworks等其他系统。
6、 Linux不仅仅能通过uboot启动。
7、uboot是个通用的bootloader,它支持多种架构。

uboot获取:

1、官网可获取uboot源码:https://ftp.denx.de/pub/u-boot/
(缺点就是支持少,比如某一款具体的芯片驱动等不够完善。)

2、SOC厂商会从uboot官网下载某个版本的uboot,然后在这个版本的uboot上加入相应的SOC以及驱动。这种成为SOC厂商定制的uboot-比如NXP官方的I.MAX6ULL EVK板子。

3、做开发板的厂商,开发板会参考SOC厂商的板子。开发板必然会和官方的板子不一样,因此开发板厂商又会去修改SOC厂商做好的uboot,以适应自己的板子。

uboot交叉编译

1、编译uboot之前需要先进行配置
如图配置交叉编译指定平台为arm 和交叉编译工具链arm-linux-gnueabihf-, 最后指定配置文件为mx6ull_14x14_ddr512_emmc_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig

在这里插入图片描述
配置完环境以后,再进行内核编译
其中V=1代表开启编译打印等级,可通过串口日志查看详细编译过程
ARCH为指定编译平台为arm平台
CROSS_COMPILE为指定交叉编译工具链
-j4为采用多线程编译方式,提高编译效率

make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4

在这里插入图片描述
若编译报错如下,则可能是Ubuntu版本过高导致,最好用Ubuntu16.04版本
在这里插入图片描述
正常编译结果如下:
在这里插入图片描述
编译完成后会生成u-boot.bin文件
在这里插入图片描述
必须向u-boot.bin添加头部信息。
uboot编译最后会通过/tools/mkinage软件添加头部信息,生成u-boot.imx文件
在这里插入图片描述
在这里插入图片描述
使用厂商提供的OTG工具进行烧写
在这里插入图片描述
烧写完成以后,重新启动,串口结果如下:
在这里插入图片描述

查看uboot信息发现已经被更新:
在这里插入图片描述

http://www.xdnf.cn/news/8613.html

相关文章:

  • 基于规则匹配实现企业政策精准匹配实战案例
  • 《Java vs Go:现代编程语言的核心差异与设计哲学对比》
  • nginx 基于IP和用户的访问
  • LangGraph的智能评估
  • 【深度学习新浪潮】什么是MCP?
  • LangGraph:部署智能应用
  • 地理特征类相关可视化图像总结
  • stream数据流
  • 电子电路:再谈滤波原理及其应用
  • 再谈Linux 进程:进程等待、进程替换与环境变量
  • [Solution] git push error (exit code 128)
  • linux 内存碎片分析
  • Firecrawl MCP Server 深度使用指南
  • No such file or directory: ‘ffprobe‘
  • 构建智能AI记忆系统:多智能体系统记忆机制的设计与技术实现
  • Spark MLlib的运维与管理
  • 接口性能测试-工具JMeter的学习
  • UDP和TCP示例程序
  • 【MySQL】第8节|Innodb底层原理与Mysql日志机制深入剖析(一)
  • 从稳定到卓越:服务器部署后的四大核心运维策略
  • IP查询基础介绍
  • 二、ZooKeeper 集群部署搭建
  • 《深入Python:新手易踩的语法雷区与进阶启示》
  • STM32CubeMX的初使用GPIO的端口配置
  • 虚幻基础:AI
  • Baklib内容中台的主要构成是什么?
  • 大般涅槃经卷第三十五
  • windows11 安装 jupyter lab
  • ARM笔记-嵌入式系统基础
  • untiy实现汽车漫游