系统移植——linux内核移植——分析内核编译过程

news/2025/1/3 6:16:21/

uImage镜像文件

1.进入linux内核源码目录

        ubuntu@ubuntu:~$ cd FSMP1A/linux-stm32mp-5.10.61-stm32mp-r2-r0/linux-5.10.61/

   打开Makefile文件

        vi Makefile 

   搜索include

        

           

因为 $(SRCARCH)->arm

所以上述指令为 arch/arm/Makefile

2.进入linux内核源码目录下,arch/arm目录下,打开Makefile文件,搜索:uImage

 

通过分析可知:

make -f ./scripts/Makefile.build obj=arch/arm/boot(目录) MACHINE= arch/arm/boot/uImage(目标)

3.进入linux内核源码目录下,scripts目录下,打开Makefile.build文件

   src := $(obj) ——arch/arm/boot

   kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src)) ——kbuild-dir := arch/arm/boot

   kbuild-file := $(if $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Kbuild,$(kbuild-dir)/Makefile) 

   kbuild-file := arch/arm/boot/Kbuild 和arch/arm/boot/Makefile

   include $(kbuild-file) ——将arch/arm/boot/目录下的Makefile进行展开,替换到当前目录下的这个位置(达到Makefile中转)

4.进入linux内核源码目录下,arch/arm/boot目录下,打开Makefile文件,搜索uImage

5.进入linux内核源码目录下,scripts目录下,打开Kbuild.include文件,搜索if_changed

 

其中:$(cmd_$(1)) :调用了 cmd_uimage

6.继续在当前目录下,打开Makefile.lib文件,搜索cmd_uimage功能

$(BASH) :bash

MKIMAGE := 内核源码目录下/scripts/mkuboot.sh

通过分析mkuboot.sh脚本文件可知,执行mkimage命令

mkimage -A arm -O linux -C gzip -T kernel -a 0xc2000000 -e 0xc2000000 -n uImage -d zImage uImage

7.总结:uImage是通过zImage得到,将 zImage 通过 mkimage 这个工具添加64字节头部信息

zImage镜像文件

1.进入arch/arm/boot目录下,打开Makefile文件,搜索zImage

 $(call if_changed,objcopy) ——执行cmd_objcopy

2.进入scripts目录下,打开Makefile.lib文件,搜索cmd_objcopy功能

        arm-linux-gnueabihf-objcopy arch/arm/boot/compressed/vmlinux arch/arm/boot/zImage

3.zImage镜像文件和arch/arm/boot/compressed/vmlinux之间关系

        arch/arm/boot/compressed/vmlinux通过objcopy命令格式化转换为zImage

$(obj)/compressed/vmlinux镜像文件

1.进入arch/arm/boot目录下,打开Makefile文件,搜索vmlinux

 

执行命令:

make -f ./scripts/Makefile.build obj=arch/arm/boot/compressed arch/arm/boot/compressed/vmlinux

2.进入arch/arm/boot/compressed目录下,打开Makefile文件,搜索vmlinux

 

将所有的.o文件通过ld命令,根据vmlinux.lds链接脚本文件,链接生成vmlinux

$(call if_changed,gzip) ——执行cmd_gzip 

3.进入scripts目录下,打开Makefile.lib文件,搜索cmd_gzip功能

 

4.arch/arm/boot/compressed/vmlinux镜像文件和Image之间关系

         将Image镜像gzip压缩方式得到arch/arm/boot/compressed/vmlinux镜像文件

Image镜像文件

1.进入arch/arm/boot目录下,打开Makefile文件,搜索Image

 

$(call if_changed,objcopy) ——执行cmd_objcopy

2.进入scripts目录下,打开Makefile.lib文件,搜索cmd_objcopy功能

3.Image和vmlinux之间关系

        vmlinux通过objcopy命令格式化转换为Image

总结

vmlinux 通过 objcopy 转化为 Image

Image 通过 gzip 转化为 arch/arm/boot/compressed/vmlinux

arch/arm/boot/compressed/vmlinux 通过 objcopy 转化为 zImage

zImage 通过 mkimage 转化为 uImage


http://www.ppmy.cn/news/63732.html

相关文章

Kafka的概念|架构|搭建|查看命令

Kafka的概念|架构|搭建|查看命令 一 Kafka 概述二 使用消息队列的好处三Kafka 定义3.1Kafka 简介3.2Kafka 的特性3.3 Kafka 系统架构3.4 Partation 数据路由规则 四 kafka的架构五 搭建kafka5.1环境准备5.2安装kafka5.3 修改配置文件5.4 编辑其他二台虚拟机的配置文件5.5 编辑三…

CA OpenSSL自签名证书(服务器/客户端)

参考文章 https://juejin.cn/post/7092789498823573518 https://blog.csdn.net/mengting2040/article/details/120001810 目录 使用 OpenSSL 生成证书创建根证书创建 Root Pair创建 Root Key创建 Root Crt 创建服务器端证书创建服务器端keyip需要换成自己服务器的外网ip地址&am…

Oracle限制单个用户的并发连接数

Oracle限制单个用户的并发连接数 开启RESOURCE_LIMIT参数查看对用户的资源限制限制用户的并发连接数 开启RESOURCE_LIMIT参数 检查资源限制是否开启: SQL> show parameter resource_limitNAME TYPE VALUE ---- ---- ----- resource_limit boolean TRUE这个参数…

前端三剑客 HTML+CSS+JS

文章目录 一、HTML1.1 基础标签1.2 列表1.3 表格1.4 表单 二、CSS2.1 引入方式2.2 CSS 选择器2.2.1 基本选择器2.2.2 组合选择器 2.3 常用属性2.3.1 背景2.3.2 文本2.3.3 字体2.3.4 display元素类型2.3.5 浮动2.3.6 盒子模型 三、JavaScript3.1 引入方式3.2 数据类型3.2.1 数组…

【Android取证篇】Android设备USB调试打开方式(开发者模式)

【Android取证篇】Android设备USB调试打开方式(开发者模式) Android各个版本系统手机开启”USB调试”的入口不全相同,仅供参考—【蘇小沐】 1、【Android1.0-3.2】 路径:在应用列表选择「设置」->「应用程序」->「开发」->勾选「USB调试」选…

Android 12.0 Launcher3桌面禁止左右滑动

1.概述 在12.0的rom定制化开发中,由于Launcher3有一些功能需要定制,这样的需求也好多的, 现在功能需求要求桌面固定在Launcher3的app列表页,不让左右移动,就是禁止左右移动的功能实现,所以需要禁止滑动分析页面滑动部分的功能,然后禁用桌面左右滑动功能 2.Launcher3桌…

动设备维护管理的新趋势——在线监测与故障诊断系统

随着工业自动化水平的提高,动设备在现代工业中扮演着越来越重要的角色。然而,动设备故障率高、维修难度大、维护费用高是工厂面临的重要挑战之一。针对这些问题,在线监测与故障诊断系统逐渐成为动设备维护管理的新趋势。 图.设备工程师正在维…

三、FM1288调试方案-音质评价标准

本篇主要介绍什么样的音质算是好的处理效果,或者最终调试完成后,怎么去评价调试的结果好不好?标准是什么? 文章目录 1. 音频问题2. 客观评价标准3. 主观评价标准1. 音频问题 通过调试,主要解决以下几个音频问题:   1、回声: 通话时,对方的声音经过speaker放出后,被…