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

分析vmlinux,uImage,zImage,Image的生成以及之间的关系

1.在内核源码顶层目录下打开Makefile,搜索vmlinux,找到以下内容:

可知主要靠$(vmlinux-deps)生成。

继续搜索查看变量vmlinux-deps的值,找到:

KBUILD_LDS为链接文件,剩下两个变量如下:

搜索head-y未找到,猜测包含了其他路径的Makefile,找到include arch/$(SRCARCH)/Makefile,通过打印信息得知SRCARCH=arm,打开得到:

所以vmlinux通过链接脚本文件将所需的.o文件生成vmlinux可执行文件

2.打开内核源码顶层目录下的Makefile文件,搜索uImage未找到,打开内核源码目录下arch/arm/Makefile,通过以下信息得知:将arch/arm/boot/Makefile和当前Makefile.build文件合并

打开内核源码arch/arm/boot/Makefile文件,搜索uImage,找的目标文件

进入内核源码scripts/Makefile.lib,搜索cmd_uimage,

cmd_uimage=/usr/bin/mkimage -A arm -O linux -C gzip -T kerner -n uImage -d zImage

可知uImage是zImage使用mkimage工具得到的,uImage在zImage添加64字节头部信息

进入内核源码arch/arm/boot/,打开Makefile文件,搜索zImage

arm-linux-gnueabihf-objcopy $(obj)/compressed/vmlinux zImage

zImage是通过vmlinux格式化转换为的文件

进入内核源码arch/arm/boot/,打开Makefile文件,搜索vmlinux

进入内核源码arch/arm/boot/compressed,打开Makefile文件,搜索vmlinux

进入内核源码scripts/Makefile.lib目录下,搜索cmd_gzip cmd_gzip = $(KGZIP) -n -f -9 > $@ = gzip Image > vmlinx

将Image镜像文件经过gzip压缩生成rch/arm/boot/compressed/vmlinx镜像文件

进入内核源码arch/arm/boot/compressed,打开Makefile文件,搜索Image

vmlinux通过objcopy格式化转换为Image

结论:vmlinx--->objcopy--->Image--->gzip--->arch/arm/boot/compressed/vmlinx--->objcopy--->zImage--->mkimage--->uImage

http://www.lryc.cn/news/35139.html

相关文章:

  • 设计模式-六大设计原则详解(java 版)
  • Linux下Nginx安装使用
  • 推动汽车业务向前发展的混合云战略:汽车数据解决方案
  • Boosting三巨头:XGBoost、LightGBM和CatBoost(发展、原理、区别和联系,附代码和案例)
  • 设计模式~模板方法模式(Template method)-10
  • 【WebSocket】在SSM项目中配置websocket
  • node-red中创建自定义节点 JavaScript 文件API编写详解
  • 华为OD机试 - 寻找路径 or 数组二叉树(C 语言解题)【独家】
  • YOLOv7、YOLOv5改进之打印热力图可视化:适用于自定义模型,丰富实验数据
  • 【Java代码与架构之完美优化】篇1:代码质量优化通用准则
  • Linux进程间通信详解(最全)
  • ROS 摄像头的使用
  • VR全景云展厅,实现7*24小时的线上宣传能力!
  • RK3568平台开发系列讲解(显示篇) DRM显示系统组成分析
  • WPF DataGrid控件的使用 使用列模板来进行数据格式的美化
  • elasticsearch自定义企业词典
  • 【AcWing】学了一坤时才明白的一道题
  • ES6的export和import
  • ASEMI高压MOS管20N60参数,20N60尺寸,20N60体积
  • 【备战面试】TCP的三次握手与四次挥手
  • 【模板进阶】
  • Tech Talk | 电致变色技术带来的智能AR体验
  • ACWING蓝桥杯每日一题python(持续更新
  • 【Linux】进程状态(阻塞、挂起、僵尸进程)
  • 规约第二章
  • 2019年MathorCup数学建模C题汽配件制造业中的生产排程问题解题全过程文档及程序
  • ARM uboot 的移植3 -从 uboot 官方标准uboot开始移植
  • 华为OD机试 - 快递货车(C 语言解题)【独家】
  • 连接微信群、Slack 和 GitHub:社区开放沟通的基础设施搭建
  • 数据中台架构体系理解