图像与 zImage 与 uImage

2023-11-26

它们之间有什么区别?

我知道u-boot需要uImage格式的内核。

我使用的系统首先从第一阶段加载程序启动,然后调用 u-boot。我想放弃 u-boot 并直接从第一阶段加载程序启动。我必须使用哪种类型的内核映像?


它们之间有什么区别?

Image:通用 Linux 内核二进制映像文件。

zImage:自解压的 Linux 内核映像的压缩版本。

uImage:具有 U-Boot 包装器的映像文件(由mkimage实用程序),包括操作系统类型和加载程序信息。
一种非常常见的做法(例如典型的 Linux 内核 Makefile)是使用 zImage 文件。由于 zImage 文件是自解压的(即不需要外部解压缩器),因此包装器将指示该内核“未压缩”,即使它实际上是压缩的。


请注意,U-Boot 的作者/维护者认为在 uImage 中使用 zImage 的(广泛)使用是有问题的:

实际上,在 uImage 中使用 zImage 是相当愚蠢的。这是 最好使用普通(未压缩)内核映像,压缩它 仅使用 gzip,并将其用作 mkimage 的 poayload。这边走 U-Boot 进行解压缩,而不是包含另一个 每个内核映像的解压缩器。

(引自https://lists.yoctoproject.org/pipermail/yocto/2013-October/016778.html)


我必须使用哪种类型的内核映像?

您可以选择任何您想要编程的内容。
为了节省存储空间,您可能应该选择压缩图像而不是未压缩图像。
请注意,执行内核(大概是 Linux 内核)不仅仅涉及将内核映像加载到内存中。根据架构(例如 ARM)和 Linux 内核版本(例如带或不带 DTB),可能需要为内核准备寄存器和内存缓冲区。在一种情况下,U-Boot 执行的硬件初始化也必须被复制。

ADDENDUM

我知道u-boot需要uImage格式的内核。

这对于所有版本的 U-Boot 来说都是准确的,它们只具有bootm命令。
但更新版本的 U-Boot 也可能具有bootz可以启动 zImage 的命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像与 zImage 与 uImage 的相关文章

  • 在Linux中使用命令行检查单个线程优先级

    我可以通过转到 proc pidof task 并给出来查看应用程序中使用的线程数 猫的状态 有没有办法使用命令检查Linux中各个线程的优先级 Regards Learner 运行 ps m l 它将列出所有线程和特定 PID 的优先级
  • 添加 request_mem_region 后,我的驱动程序每次第一次访问都会失败,并显示“忙”消息

    好吧 这对我来说真的很奇怪 我有一个模拟的 CAN 总线驱动程序 它是一个 Linux 内核模块 然后我有一个在用户空间中运行的测试应用程序 它通过打开文件描述符并发送来访问驱动程序ioctl 消息 现在 CAN 总线驱动程序只是我一直采用
  • 如何编写 Linux .dts 设备树文件?

    我要在我的开发板上启动Linux 我需要一个dts文件 设备树文件 来描述整个硬件 但我对这个文件的语法知之甚少 不足以在板上正确运行Linux 我现在所知道的只是如何描述一个单元的中断号 频率 地址 父单元及其兼容的驱动程序类型 如下所述
  • Linux 内核的静态调用图生成

    我正在寻找一个工具来静态生成 Linux 内核的调用图 对于给定的内核配置 生成的调用图应该是 完整的 即包含所有调用 包括潜在的间接调用 我们可以假设在 Linux 内核的情况下只能通过使用函数指针来完成调用 例如 这可以通过分析函数指针
  • 如何设置 intel_idle.max_cstate=0 来禁用 c 状态?

    我想在我的计算机上禁用 c 状态 我在 BIOS 上禁用了 c state 但没有获得任何结果 不过 我找到了一个解释 大多数较新的 Linux 发行版 在配备 Intel 处理器的系统上 使用 intel idle 驱动程序 可能编译到内
  • 超低延迟硬实时多线程 x86 代码的意外周期性行为

    我正在具有 RT 优先级的专用 CPU 上循环运行代码以进行多次迭代 并希望长时间观察其行为 我发现代码有一个非常奇怪的周期性行为 简而言之 这就是代码的作用 Arraythread while 1 if flag Multiply mat
  • 为什么在数据包输入时 skb_buffer 需要跳过 20 个字节才能读取传输缓冲区?

    我正在 Linux 中编写一个网络模块 我发现只有在从 skb 缓冲区跳过 20 个字节后才能提取 tcp 标头 即使 API 是 skb transport header 其背后的原因是什么 有人可以详细解释一下吗 传出数据包不需要同样的
  • 如何避免来自mongodb的transparent_hugepage/defrag警告?

    我从 mongodb 收到以下关于 THP 的警告 2015 03 06T21 01 15 526 0800 I CONTROL initandlisten WARNING sys kernel mm transparent hugepag
  • 内核编程中如何执行shell命令?

    我想用system 的函数stdlib h在我的c代码中 我实际上正在从事内核编程 每当我想使用system 其中 它给出了错误stdlib h说没有找到这样的文件 这很简单 include
  • Linux 如何在 x86-64 中支持超过 512GB 的虚拟地址范围?

    Linux 中 x86 64 的用户虚拟地址空间为 47 位长 这本质上意味着 Linux 可以映射大约 128 TB 虚拟地址范围的进程 然而 令我困惑的是 x86 64 架构支持 ISA 为每个进程定义的 4 级分层页表 排列为基数树
  • /dev/mem的访问权限

    我有一系列关于 dev mem 网上很多文章 好像都提到了 dev mem作为通往 Physical RAM 但如果我是对的 dev mem是通往 Physical Address Space 处理器的控制寄存器可能包括许多硬件外设的控制寄
  • 自动持有自旋锁时返回是否不安全?

    受人尊敬的书说 The flags参数传递给spin unlock irqrestore必须与传递给的变量相同spin lock irqsave 您还必须致电spin lock irqsave and spin unlock irqrest
  • 如何在嵌入式Linux中高效地在VFAT分区上创建大文件

    我正在尝试在嵌入式 Linux 盒子中使用 dd 命令在 VFAT 分区上创建一个大的空文件 dd if dev zero of mnt flash file bs 1M count 1 seek 1023 目的是跳过前 1023 个块并在
  • syn队列和accept队列的混淆

    在阅读TCP源码时 我发现一个困惑的事情 我知道 TCP 在 3 次握手中有两个队列 第一个队列存储服务器收到的连接SYN并发回ACK SYN 我们称之为同步队列 第二个队列存储3WHS成功并建立连接的连接 我们称之为接受队列 但在阅读代码
  • 如何在Linux中使用C或shell检查密码?

    我有一个用 C 编写的程序 运行在嵌入式 Linux 上 有时它想检查系统用户的密码 如果我能得到地穴盐 etc 密码 我可以使用 crypt 检查用户密码的正确性 有没有shell脚本可以帮助我检查密码 比如check passwd用户名
  • 如何编写需要内核源头文件的 BitBake 驱动程序配方?

    介绍 我有一个do install我为驱动程序编写的 BitBake 配方中的任务 我在其中执行自定义install脚本 任务失败 因为安装脚本无法在其中找到内核源头文件
  • 如何在 Linux 内核空间使用 ioctl()?

    可以打电话吗ioctl来自 Linux 内核模块 谁能提供一个如何使用它的例子吗 您可以尝试拨打电话sys ioctl 如果内核是用以下命令编译的 则它会被导出CONFIG COMPAT 或者 如果您有设备驱动程序struct file o
  • 使用Linux虚拟鼠标驱动

    我正在尝试实施一个虚拟鼠标驱动程序根据基本 Linux 设备驱动程序书 有一个用户空间应用程序 它生成坐标以及内核模块 See 虚拟鼠标驱动程序和用户空间应用程序代码 http www embeddedlinux org cn Essent
  • 无法访问打开的/arch/x86/syscalls/syscall_32.tbl

    当我在切换到内核后编写此命令时 当我编译它时 它没有显示任何列表 是否有其他命令可以打开列表 open arch x86 syscalls syscall 32 tbl Bug 先删除 文件路径中的字符 应该是relative http e
  • Beaglebone Black 的 U-boot 无法构建 - 目标 CPU 不支持 THUMB 指令

    我正在尝试按照 Chris Simmonds 的 掌握嵌入式 Linux 编程 中的说明为 Beagle Bone Black 构建 u boot 我已经构建了交叉工具链 现在正在尝试使用该工具链构建 Das U boot 但由于不支持 T

随机推荐

  • 为什么 InnoDB 中的 IX 锁与另一个 IX 锁兼容?

    根据innodb锁模式 锁类型兼容性矩阵 X IX S IS X Conflict Conflict Conflict Conflict IX Conflict Compatible Conflict Compatible S Confli
  • 在c#中,如何构建从A到ZZ的数组,类似于excel对列进行排序的方式

    我正在寻找可以生成第一项是数组的代码A then B then C 后Z然后它会去AA then AB then AC 一直到ZZ 在 C 中执行此操作的最佳方法是什么 其中一种方法是 IEnumerable
  • 使用 Selenium Webdriver 查找元素内的元素

    我正在抓取一个网站 其中包含使用 JavaScript 生成的足球比赛列表 我编写了以下行 用于创建页面上所有游戏元素的列表 list browser find elements by xpath data sportid 1 如果我然后写
  • 将 Web.config 从 .NET 2.0 转换为 3.5

    我至少需要添加到 NET 2 0 网站的 web config 中以使其成为 NET 3 5 Visual Studio 添加了所有配置部分和脚本处理程序 但如果您不使用它们 它们真的有必要吗 是否有命令行工具可以将 NET 2 0 web
  • 什么是非脆弱 ABI?

    这似乎暗示everyone知道 Non Fragile ABI 是什么 考虑到它在 Xcode 中被引用的频率和事实性质 例如 下标需要接口节点的大小 这在非脆弱 ABI 中不是恒定的 or 选择要使用的 Objective C ABI 版
  • 在android中的onPreviewFrame期间转换YUV->RGB(图像处理)->YUV?

    我正在使用 SurfaceView 捕获图像并获取 Yuv Raw 预览数据public void onPreviewFrame4 byte data 相机camera 我必须在 onPreviewFrame 中执行一些图像预处理 因此我需
  • Predsort/3 类似于 msort/2

    我想知道是否可以使用predsort 3不丢失重复值 如果不是 那我应该如何对这个术语列表进行排序 当前排序功能 compareSecond Delta n A n B compare Delta A B Result predsort c
  • 如何正确处理 dom 为 Meteor 做好准备

    我目前正在使用iron router 这是我第一次尝试Meteor 平台 我遇到了大多数 jquery 库无法正确初始化的问题 因为 Meteor 渲染 html 的方式 document ready 在渲染任何模板之前触发 我想知道是否有
  • MySQL:“IN”子句的条目有限制吗? [复制]

    这个问题在这里已经有答案了 可能的重复 MySQL in 子句 中的项目数 在 mysql 或 postgres 中 IN 1 2 n 语句的大小是否有限制 我动态构建一个 IN 列表 我想知道mysql中IN子句的大小是否有限制 SELE
  • 映射嵌套 JSON 时如何检查 NULL?

    我正在尝试将嵌套 JSON 映射到模型对象 问题是当它返回 null 时 它将破坏所有代码 我想检查 null 是否执行某些操作但不会破坏应用程序 JSON 文件 id 53 date 2018 12 28T08 51 11 title r
  • WatchKit 应用程序因“安装失败”而被拒绝

    我使用配套的 Apple Watch 应用程序构建了一个 iOS 应用程序 并于最近将其提交到了 App Store 今天早上因为安装失败被拒绝了 以下是重现步骤 在 iPhone 上安装该应用程序 启动配套应用程序 切换 在 Apple
  • 获取 char 中的位数

    如何获取类型中的位数char 我知道关于CHAR BIT from climits 这被描述为 宏产生用于表示 char 类型对象的位数的最大值 Dikumware 的 C 参考 我理解这意味着a中的位数char 不是吗 我可以得到相同的结
  • 从 PHP 应用程序记录页面请求数据的可扩展方式?

    我正在开发的 Web 应用程序 使用 PHP 需要能够记录每个页面请求 就像普通的 access log 一样 它将存储请求的 url 源 IP 地址 日期 时间等详细信息 但我还需要它来存储登录用户的用户 ID 存储在 php 会话变量中
  • 如何在 Scala 中高效地将数组复制到另一个数组?

    我如何使用另一种方式复制Array到另一个Array 我的想法是使用 操作员 例如 val A Array val B A 但这可以吗 第二种方法是使用for loop 例如 val A Array val B new Array A le
  • 使用Spring Cloud更改eureka服务器的默认端口

    我得到了 spring boot 应用程序 一个 eureka 服务器和一个 eureka 客户端 这是我的服务器配置 server port 8761 spring application name eureka server 这是我的服
  • 在 DrawText 中设置 VerticalAlignment

    我在用着DrawText画画FormattedText在视觉层上 现在我使用下面的代码来定义格式化文本 并且我可以设置TextAlignment to Center 但是呢VerticalAlignment 正如您在下图中看到的 文本的中心
  • 如何在 Blazor 类中注入服务(AuthenticationStateProvider)

    我正在努力在 Blazor 服务器的类中注入服务 AuthenticationStateProvider 如果我在剃刀组件中执行此操作 则非常简单 inject AuthenticationStateProvider Authenticat
  • 为什么进程退出时数据没有刷新到文件?

    int main int argc char argv FILE fp fopen a txt wt fprintf fp AAAA No flush and No close raise SIGTERM exit EXIT SUCCESS
  • 如何反序列化 JSON,它可以是数组或单个对象

    我对使用 JSON net 相当陌生 并且在处理一些 json 时遇到了麻烦 这些 json 有时作为数组出现 有时作为单个对象出现 这是我在 json 中看到的示例 一种方式是它进来 Make Dodge Model Charger Li
  • 图像与 zImage 与 uImage

    它们之间有什么区别 我知道u boot需要uImage格式的内核 我使用的系统首先从第一阶段加载程序启动 然后调用 u boot 我想放弃 u boot 并直接从第一阶段加载程序启动 我必须使用哪种类型的内核映像 它们之间有什么区别 Ima