浅析linux驱动中uImage,zImage,bootz,bootm

news/2024/5/19 22:42:23/

1 uImage和zImage

uImage和zImage都是Linux内核启动时可能使用到的镜像格式

1.1 uImage

uImage是一种包含压缩和非压缩内核镜像的格式,它能够根据实际情况选择合适的解压缩方式。它通常用于在嵌入式系统中,通过bootloader从存储介质中加载内核镜像。

uImage头部记录了内核镜像的压缩类型、校验和、入口点等信息,可以通过mkimage命令进行创建,例如:

mkimage -A arm -O linux -T kernel -C gzip -a 0x80008000 -e 0x80008000 -n "My Kernel" \-d kernel.bin uImage

其中,-A参数表示目标体系结构(architecture),-O参数表示操作系统(OS),-T参数表示类型(type),-C参数表示压缩方式,-a参数表示入口地址,-e参数表示执行地址,-n参数表示内核名称,-d参数表示内核镜像文件。

1.2 zImage

Image是一种只包含非压缩内核镜像的格式,它能够直接被硬件平台加载并执行。它通常用于在计算机系统中,由GRUB或者LILO等bootloader从存储介质中直接加载内核镜像。

zImage具有精简的代码结构,因此可以在较小的内存中运行。与uImage不同,zImage没有头部信息和额外信息,只是一个从0x100000开始的可直接执行的二进制文件。

在Linux内核的编译过程中,可以通过在.config文件中设置CONFIG_KERNEL_GZIPCONFIG_KERNEL_BZIP2等参数来决定使用何种压缩方式,并生成对应的内核镜像文件。

总之,uImage和zImage是两种不同的Linux内核镜像格式,分别用于嵌入式系统和计算机系统等不同场合。开发人员需要根据实际情况选择合适的镜像格式,并了解相关工具和命令的使用方法。

2 bootz和bootm

bootz和bootm都是Linux内核启动命令,用于从Flash或者SD卡等存储介质中加载并启动Linux内核

2.1 bootz

bootz命令用于从存储介质中加载uImage格式的压缩内核镜像,并通过zImage格式解压后执行。uImage是一个可以包含压缩和非压缩内核镜像的格式,它能够根据实际情况选择合适的解压缩方式。

使用bootz命令启动Linux内核需要先设置启动参数,例如:

setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait'
bootz ${kernel_addr_r} - ${fdt_addr_r}

其中,setenv命令用于设置启动参数,console设定调试信息输出到串口ttyS0,root指定文件系统所在的分区,rw设置为读写模式,rootwait在挂载根文件系统前等待根设备准备就绪。

然后,通过bootz命令将存储介质中的压缩内核镜像加载到内存,再通过zImage格式进行解压缩,最终启动Linux内核。

2.2 bootm

bootm命令用于从存储介质中直接加载非压缩的内核镜像,并执行。与bootz不同,bootm不需要解压缩操作,因此启动速度更快。

使用bootm命令启动Linux内核也需要设置启动参数,例如:

setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait'
bootm ${kernel_addr_r} - ${fdt_addr_r}

其中,setenv命令同样用于设置启动参数,后面的bootm命令则将存储介质中的非压缩内核镜像直接加载到内存,然后启动Linux内核。

总之,在Linux系统中,可以通过bootz或者bootm命令启动Linux内核。要根据实际情况选择合适的命令,并在启动前设置好相应的启动参数以确保系统正确启动。


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

相关文章

自适应模糊PID控制算法

一、自适应模糊PID控制 自适应模糊PID控制将模糊控制与传统PID控制相结合,将两种控制方式进行结合,取长补短,对传统的算法进行优化,形成一种新的控制算法,自适应模糊PID控制可以用于很多场景,比如温度控制&…

React Hooks基础

React Hooks基础 React Hooks 介绍React Hooks 基础 React Hooks 介绍 Hooks 是什么为什么要有 Hooks Hooks 是什么 Hooks:钩子、钓钩、钩住Hooks 是 React v16.8 中的新增功能作用:为函数组件提供状态、生命周期等原本 class 组件中提供的 React 功…

CT前瞻(三):Adobe系列XD软件绘制简单的原型图与交互设计

文章目录 📋前言🎯关于原型图绘制🎯XD绘制原型图与交互设计🎯关于XD软件其他功能📝最后 📋前言 Adobe XD是一个协作式易用平台,可帮助团队为网站、移动应用程序、语音界面、游戏等创建设计。还…

浙大数据结构网课第一周入门

题目详情 Given a sequence of K integers { N1​, N2​, ..., NK​ }. A continuous subsequence is defined to be { Ni​, Ni1​, ..., Nj​ } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has the largest sum of its elements. For …

SSH连接本地centerOS系统配置

SSH连接本地linux系统 前提:安装好centerOS系统并能启动 目标:连通外网并设置SSH 1.网卡配置文件路径 打开linux本地终端 快捷键一般是ctrlaltf2(f1~f3) 这里是管理员登录,密码是隐藏式的输入(输入看不见) 这样就显示成功登录了! 下面查…

屏幕亮度调节工具:Simple Screen Shade Mac

Simple Screen Shade Mac版是mac上一款优秀的屏幕颜色亮度调节工具,能够让我们Mac电脑的显示器背景变暗,这样可以保护你眼睛的健康并保持舒适。Simple Screen Shade 旨在实现最大程度的简单性和易用性。你可以设置灰色背景以减轻明亮鲜艳的色彩&#xff…

Pandas入门实践2 -数据处理

为了准备数据进行分析,我们需要执行数据处理。在本节中,我们将学习如何清理和重新格式化数据(例如,重命名列和修复数据类型不匹配)、对其进行重构/整形,以及对其进行丰富(例如,离散化…

Laravel使用JWT

开始安装jwt (本次安装不建议直接在项目中安装及使用) 1.composer 安装jwt composer require tymon/jwt-auth 1.0.0-rc.1 2.在config 文件夹的app.php 中注册服务提供者 providers > [Tymon\JWTAuth\Providers\LaravelServiceProvider::class, ]…

使用计算机视觉实战项目精通 OpenCV:6~8

原文:Mastering OpenCV with Practical Computer Vision Projects 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线…

01、Cadence使用记录之新建工程与基础操作(原理图绘制:OrCAD Capture CIS)

01、Cadence使用记录之新建工程与基础操作(原理图绘制:OrCAD Capture CIS) 硕士学电磁场去了,写点博客记录下学习过程。 参考的教程是B站的视频:allegro软件入门视频教程全集100讲 本科的时候就对Cadence有所耳闻&am…

docker问题集锦

1.http: server gave HTTP response to HTTPS client sudo vim /etc/docker/daemon.json 添加{“insecure-registries”: [“ip:端口”]} sudo service docker restart 无效 sudo vim /lib/systemd/system/docker.service 在ExecStart最后添加 --insecure-registry ip:端口 sud…

GDB调试实验

一、实验准备 在 Linux 环境软件开发中,GDB 是调试 C 和 C 程序的主要工具。本次实验围绕着GDB常用的调试操作进行。 1、设置断点的意义 当我们想查看变量内容,堆栈情况等等,可以指定断点。程序执行到断点处会暂停执行。break 命令用来设置…

亚马逊、ebay、temu如何提升产品点击率?测评自养号解析

产品点击率对于店铺销售额的影响至关重要,尤其是在竞争越来越激烈的市场环境中,想要有销量和转化,提高产品listing点击率成为了非常关键的一环。 1. 产品主图 顾客浏览产品时,第一眼看到的就是主图,一张优质的主图更容…

什么是MVVM?

MVVM 是 Model-View-ViewModel 的缩写,是M-V-VM三部分组成。它本质上就是MVC的改进版。 M:Model 代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。 V:View 代表视图UI,它负责将数据模型转化成UI 展现出来。…

材料科学基础学习指导-吕宇鹏-名词和术语解释-第5章:相图

目录 第一部分 第二部分​​​​​​​ 第三部分 第四部分​ 第一部分 1.1组元:是材料科学中的基本术语。意思是组成合金的独立的、最基本的单元。 1.2相: 指合金中具有同一聚集状态、同一晶体结构和性质并以界面相互隔开的均匀组成部分。​​​​…

api数据接口文档_接口文档示例(Taobao/jd/pinduoduo/开放接口调用)

api数据接口文档_接口文档示例 本文主要是提供了一个接口文档的范文,内容修订历史、目录、时序图、接口要素描述、接口说明、使用示例、字典、FAQ。 使用MD格式文档(makedown),选择原因,容易格式转换,开发…

LeetCode238. 除自身以外数组的乘积

238. 除自身以外数组的乘积 描述示例解题思路解法1(最最暴力求解,但不符合要求)解法2(暴力求解,也不符合要求,但时间复杂度O(N))解法3(最优解,符合题意,时间复杂度O(N)) 描述 给你一个整数数组 nums&#…

Linux的.serivice文件介绍

一、什么是.service文件? linux中.servic文件是服务的配置文件,通过systemctl进行操作。存放位置:/usr/lib/systemd/system 二、配置说明 通常在,service配置文件中包含三个部分,分别为: 一、[Unit]:控制部…

创造rap一首,关于毕业论文难写,导师不负责

Verse1: 毕业季节,任务繁重 毕业论文,压力倍增 想着论文顺利,却被教授推脱 努力攀登高峰,却是一场空 Chorus: 毕业论文难写,导师不负责 对论文监督,一筹莫展 毕业论文难写,难缠之处 摆脱麻烦&am…

Unity记录3.5-地图-第三阶段总结

文章首发及后续更新:https://mwhls.top/4493.html,无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评,非常感谢! 汇总:Unity 记录 摘要:柏林噪声与 …