精华内容
下载资源
问答
  • uimage zimage

    2020-05-07 10:30:54
    uimage 和zimage的定义和概念 1)大小:内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M. 2)用途:uimage是...

    uimage 和zimage的定义和概念

             1)大小:内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M.

             2)用途:  uimage是uboot专用的映像文件。它是在zImage之前加上一个长度为64字节"头",说明这个内核的版本,加载位置,生成时间,大小等信息。其0x40之后与zImage没区别

    64字节的头部信息定义如下:

    /*
     * Legacy format image header,
     * all data in network byte order (aka natural aka bigendian).
     */
    typedef struct image_header {
        uint32_t    ih_magic;    /* Image Header Magic Number    */
        uint32_t    ih_hcrc;    /* Image Header CRC Checksum    */
        uint32_t    ih_time;    /* Image Creation Timestamp    */
        uint32_t    ih_size;    /* Image Data Size        */
        uint32_t    ih_load;    /* Data     Load  Address        */
        uint32_t    ih_ep;        /* Entry Point Address        */
        uint32_t    ih_dcrc;    /* Image Data CRC Checksum    */
        uint8_t     ih_os;        /* Operating System        */
        uint8_t     ih_arch;    /* CPU architecture        */
        uint8_t     ih_type;    /* Image Type            */
        uint8_t     ih_comp;    /* Compression Type        */
        uint8_t     ih_name[IH_NMLEN];    /* Image Name        */
    } image_header_t;

    刚刚编译完内核的时候生成的几个镜像文件

           1)vmlinux            在linux的根目录下,是编译出来的最原始内核文件,未压缩

           2)zImage             是vmlinux经过gzip压缩后的文件

           3)uimage           是u-boot专用内核映像文件

    uboot启动系统image的过程如下

    • 从flash或者network下载  image  到  loadaddr
    • 将  uImage  从 loadaddr 搬移到  uImage 指定的  loadaddr
    • PC跳转到uImage header指定的entryaddr,启动系统

    如何生成uImage文件

    首先在uboot的/tools目录下寻找mkimage文件,把其copy到系统/usr/local/bin目录下,这样就完成制作工具。然后在内核目录下运行make uImage,如果成功,便可以在arch/arm/boot/目录下发现uImage文件,其大小比 zImage多64个字节。

     

    展开全文
  • uImage zImage

    2019-09-23 13:13:00
    uImagezImage vmlinux编译出来的最原始的内核文件,未压缩。 zImage是vmlinux经过gzip压缩后的文件。 uImage U-boot专用的映像文件,它是在zImage...它是在zImage之前加上一个长度为64字节的“头”,说明这个内核...

     

    uImage zImage

    vmlinux  编译出来的最原始的内核文件,未压缩。

    zImage   是vmlinux经过gzip压缩后的文件。

    uImage   U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40(64)的tag。在生成的时候,需要添加“LOADADDR=0x8000”。它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。

    如下图,在生成zImage时,需要添加“LOADADDR=0x8000”。zImage大小是3558128,而uImage是3558192。

     

    bootz bootm

    对于ARM来讲,可以透过bootz kernel_addr initrd_address dtb_address的命令来启动内核,即dtb_address作为bootz或者bootm的最后一次参数,第一个参数为内核映像的地址,第二个参数为initrd的地址,若不存在initrd,可以用"-"代替。

    如:bootz ${loadaddr} - ${fdtaddr}

    booti,引导ARM64 kernel image----Image;

    bootz,引导ARM kernel image----zImage;

    bootm,引导u-boot自定义的kernel image----uImage。

    转载于:https://www.cnblogs.com/Huluwa-Vs-Aoteman/p/9850004.html

    展开全文
  • Tiny4412 zImage文件

    2018-05-25 15:19:53
    该压缩包文件内含zImage文件和说明一份,适用于Tiny4412 1506开发板,注意是1506! 1506!1506!该zImage已关闭TrustZone模式,可搭配内附说明的uboot直接启动开发版!
  • zImage启动分析

    2020-09-12 16:07:54
    #ifdef CONFIG_ZIMAGE_BOOT #LINUX_ZIMAGE_MAGIC是一个一zImage对应的魔数,也就是zImage效验的编号 #define LINUX_ZIMAGE_MAGIC 0x016f2818 /* find out kernel image address */ #启动命令是bootm 0x30008000或者...
    #ifdef CONFIG_ZIMAGE_BOOT
    #LINUX_ZIMAGE_MAGIC是一个一zImage对应的魔数,也就是zImage效验的编号
    #define LINUX_ZIMAGE_MAGIC	0x016f2818
    /* find out kernel image address */
    #启动命令是bootm 0x30008000或者是bootm
    if (argc < 2) {
    	#如果是bootm,所传的参数是一个, load_addr使用的是默认的启动地址
    	addr = load_addr;
    	debug ("*  kernel: default image load address = 0x%08lx\n",
    			load_addr);
    } else {
    	#将传的启动地址参数转为数字
    	addr = simple_strtoul(argv[1], NULL, 16);
    	debug ("*  kernel: cmdline image address = 0x%08lx\n", img_addr);
    }
    
    #启动地址处的36字处的4个字节值是否等于LINUX_ZIMAGE_MAGIC的值,如果等于说明是zImage的格式
    if (*(ulong *)(addr + 9*4) == LINUX_ZIMAGE_MAGIC) {
    	printf("Boot with zImage\n");
    	#将addr地址转换成物理地址
    	addr = virt_to_phys(addr);
    	#将标准启动数据结构image_header_t的地址与指针绑定
    	hdr = (image_header_t *)addr;
    	#启动前的一些设置
    	hdr->ih_os = IH_OS_LINUX;
    	hdr->ih_ep = ntohl(addr);
    	#构建images全局变量
    	memmove (&images.legacy_hdr_os_copy, hdr, sizeof(image_header_t));
    	#设置images全局变量
    	/* save pointer to image header */
    	images.legacy_hdr_os = hdr;
    
    	images.legacy_hdr_valid = 1;
    	#效验完成跳转的启动代码
    	goto after_header_check;
    
    展开全文
  • flash-my-zImage-源码

    2021-06-17 15:09:30
    闪存我的 zImage Flash My zImage 帮助用户轻松地在 1 个脚本中制作他们编译的 zImage 的可闪存 zip,没有问题 欢迎使用 Flash My zImage 将 boot.img 放在 /home/username/flash-my-zImage/boot_img 将您的 ...
  • 最开始做个约定:存放linux代码的根目录我们叫做:linux_src,代码用linux-3.0.46进行分析。对于arm系统,$(SRCARCH) = ARM。可能你会想,究竟linux如何... make zImage就会进入linux_src/makfile,然后找zImage目标...

    最开始做个约定:存放linux代码的根目录我们叫做:linux_src,代码用linux-3.0.46进行分析。对于arm系统,$(SRCARCH) = ARM。

    可能你会想,究竟linux如何编译生成它的压缩内核镜像zImage的呢?哈哈,下面就来做个解析。

    当我们在linux_src目录下输入命令:

    > make zImage

    就会进入linux_src/makfile,然后找 zImage目标,这个目标在:

    linux_src/makfile包含的:include $(srctree)/arch/$(SRCARCH)/Makefile 里面,

    位于:linux_src/arch/arm/makfile里:

    zImage Image xipImage bootpImage uImage: vmlinux

    $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@

    可以看到zImage 依赖于vmlinux,这里的vmlinux指的是linux_src/vmlinux,这是编译生成的linux内核的elf文件。那么vmlinux又是在哪生成的呢?请向下看:

    它的生成规则在linux_src/makefile文件中,如下:

    #vmlinux image - including updated kernel symbols

    vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) vmlinux.o $(kallsyms.o) FORCE

    ifdef CONFIG_HEADERS_CHECK

    $(Q)$(MAKE) -f $(srctree)/Makefile headers_check

    endif

    ifdef CONFIG_SAMPLES

    $(Q)$(MAKE) $(build)=samples

    endif

    ifdef CONFIG_BUILD_DOCSRC

    $(Q)$(MAKE) $(build)=Documentation

    endif

    $(call vmlinux-modpost)

    $(call if_changed_rule,vmlinux__)

    $(Q)rm -f .old_version

    vmlinux的生成依赖于: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) vmlinux.o $(kallsyms.o),同样在linux_src/makefile文件中:

    vmlinux-init := $(head-y) $(init-y)

    vmlinux-main:= $(core-y) $(libs-y) $(drivers-y) $(net-y)

    vmlinux-all  := $(vmlinux-init) $(vmlinux-main)

    vmlinux-lds  := arch/$(SRCARCH)/kernel/vmlinux.lds

    modpost-init := $(filter-out init/built-in.o, $(vmlinux-init))

    vmlinux.o: $(modpost-init) $(vmlinux-main) FORCE

    $(call if_changed_rule,vmlinux-modpost)

    kallsyms.o:= .tmp_kallsyms$(last_kallsyms).o

    这里可以看到vmlinux就是由这些依赖文件通过arch/$(SRCARCH)/kernel/vmlinux.lds链接生成的,我就不再每往下解释了。

    生成了linux_src/vmlinux之后,再回头看arch/arm/boot/compressed/Makefile文件中的:

    zImage Image xipImage bootpImage uImage: vmlinux

    $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@

    其中$(build)在linux_src/scripts/kbuild.include:

    ###

    # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj=

    # Usage:

    # $(Q)$(MAKE) $(build)=dir

    build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj

    因为 KBUILD_SRC 为空,srctree就是当前目录,故

    build := -f ./scripts/Makefile.build obj

    boot := arch/arm/boot

    ifneq ($(machine-y),)

    MACHINE  := arch/arm/mach-$(word 1,$(machine-y))/

    else

    MACHINE  :=

    endif

    machine-$(CONFIG_ARCH_EVB_ARM)      := evb_arm

    Kconfig中:CONFIG_ARCH_EVB_ARM = y

    所以对于我们的平台:

    MACHINE  := arch/arm/mach-evb_arm

    最开始的那一句最终解释为:

    zImage: vmlinux

    @make –f ./scripts/Makefile.build obj=arch/arm/boot MACHINE=arch/arm/mach-evb_armarch/arm/boot/zImage

    下面就是进入到linux_src/scripts/Makefile.build这个makefile文件中

    src := $(obj)

    kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))

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

    include$(kbuild-file)

    在这里:

    src := $(obj) :=arch/arm/boot    //这个就是上一个makefile传下来的值

    kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))

    //这句的意思是,如果src是以/开头的,则 kbuild-dir :=$(src),

    如果不是的就等于kbuild-dir := $(srctree)/$(src)

    这里 kbuild-dir := ./arm/arm/boot

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

    最后一句:

    include ./arch/arm/boot/Kbuild ./arch/arm/boot/Makefile

    可以看到这里是要包含linux_src/arch/arm/boot/Makefile 文件,果然在里面找到了我们要的目标:

    $(obj)/zImage: $(obj)/compressed/vmlinux FORCE

    $(call if_changed,objcopy)

    @echo '  Kernel: $@ is ready'

    再找$(obj)/compressed/vmlinux:

    $(obj)/compressed/vmlinux: $(obj)/Image FORCE

    $(Q)$(MAKE) $(build)=$(obj)/compressed $@

    再接着找$(obj)/Image:

    $(obj)/Image: vmlinux FORCE

    $(call if_changed,objcopy)

    @echo '  Kernel: $@ is ready'

    到这里就可以知道了,哦,原来这个地方也是要vmlinux内核elf的啊,这就知道了,无论怎么样,vmlinux文件都要先生成,否则其他的文件都无法成生。下面来解释一下:

    $(obj)/Image: vmlinux FORCE

    $(call if_changed,objcopy)

    @echo '  Kernel: $@ is ready'

    这里的Image也就是linux_src/arch/arm/boot/Image,它的生成是通过把 linux_src/vmlinux这个elf文件用通过objcopy生成bin文件Image。然后:

    $(obj)/compressed/vmlinux: $(obj)/Image FORCE

    $(Q)$(MAKE) $(build)=$(obj)/compressed $@

    这句和上面分析的类似,就是进入linux_src/arch/arm/boot/compress/mafile中生成:

    arch/arm/boot/compress/vmlinux文件,如下:

    $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \

    $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE

    $(call if_changed,ld)

    @$(check_for_bad_syms)

    HEAD   = head.o

    OBJS    += misc.o decompress.o

    $(obj)/piggy.$(suffix_y): $(obj)/../Image FORCE

    $(call if_changed,$(suffix_y))

    $(obj)/piggy.$(suffix_y).o:  $(obj)/piggy.$(suffix_y) FORCE

    $(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile $(KCONFIG_CONFIG)

    @sed "$(SEDFLAGS)" < $< > $@

    插曲:关于if_changed的解释:

    Kbuild.include:

    # >'< substitution is for echo to work,

    # >$< substitution to preserve $ when reloading .cmd file

    # note: when using inline perl scripts [perl -e '...$$t=1;...']

    # in $(cmd_xxx) double $$ your perl vars

    make-cmd = $(subst \\,\\\\,$(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1))))))

    # Find any prerequisites that is newer than target or that does not exist.

    # PHONY targets skipped in both cases.

    any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^)

    # Execute command if command has changed or prerequisite(s) are updated.

    #

    if_changed = $(if $(strip $(any-prereq) $(arg-check)),                       \

    @set -e;                                                             \

    $(echo-cmd) $(cmd_$(1));                                             \

    echo 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd)

    if_changed 函数在当发现规则的依赖有更新,或是目依赖不存在时,再或者是对应目标的命令行参数发生改变时($(strip $(any-prereq) $(arg-check)) 语句结果不为空),执行后面的语句。

    set -e 表示如果命令执行有错那么命令停止执行并退出。

    接着 $(echo-cmd) 用来打印出相关的编译命令,接着执行 $(cmd_$(1) 里的命令。

    最后 echo 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd 将上面执行的命令写入一个叫 $(dot-target).cmd 的文件中,该文件为隐藏文件,在编译后的内核源码目录及其子目录下随处可见,比如在init/ 下可以看到 .initramfs.o.cmd, .version.o.cmd 等等。

    那么而所有的命令测存在呢?答案是:scripts/Makefile.lib:

    scripts/Makefile.build里面:include scripts/Makefile.lib

    scripts/Makefile.lib:

    # Objcopy

    # ---------------------------------------------------------------------------

    quiet_cmd_objcopy = OBJCOPY  $@

    cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@

    # Gzip

    # ---------------------------------------------------------------------------

    quiet_cmd_gzip = GZIP  $@

    cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || (rm -f $@ ; false)

    言归正传,回到上面:

    $(obj)/piggy.$(suffix_y): $(obj)/../Image FORCE

    $(call if_changed,$(suffix_y))

    $(obj)/piggy.$(suffix_y).o:  $(obj)/piggy.$(suffix_y) FORCE

    这里的suffix_y在,arch/arm/boot/compressed:

    suffix_$(CONFIG_KERNEL_GZIP) = gzip

    suffix_$(CONFIG_KERNEL_LZO)  = lzo

    suffix_$(CONFIG_KERNEL_LZMA) = lzma

    CONFIG_KERNEL_GZIP=y 是在 init/Kconfig文件里选择的,menuconfig时配置,我们这里选gzip,则上面的过程为

    使用 gzip 对arch/arm/boot/Image文件进行压缩,压缩成piggy.gzip。然后再生成piggy.gzip.o:

    这个是通过 piggy.gzip.S文件生成的,内容如下:

    .section .piggydata,#alloc

    .globl   input_data

    input_data:

    .incbin  "arch/arm/boot/compressed/piggy.gzip"

    .globl   input_data_end

    input_data_end:

    可以看到压缩后的内核文件piggy.gzip是以bin文件的形式编译成piggy.gzip.o的,并且注意这里的是放在.piggydata段中的,这个在arch/arm/boot/compressed/vmlinux.lds指定的。

    内容如下:

    .text : {

    _start = .;

    *(.start)

    *(.text)

    *(.text.*)

    *(.fixup)

    *(.gnu.warning)

    *(.rodata)

    *(.rodata.*)

    *(.glue_7)

    *(.glue_7t)

    *(.piggydata)

    . = ALIGN(4);

    }

    是放在.text段的最后的,并且input_data和input_data_end 包含里他们的起止地址。

    最后是arch/arm/boot/compressed/vmlinux.lds文件的生成,这个是以arch/arm/boot/compressed/vmlinux.lds.in为蓝本,只是修改了

    . = TEXT_START;

    这个是在arch/arm/boot/compressed/Makefile中

    SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/BSS_START/$(ZBSSADDR)/

    $(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile $(KCONFIG_CONFIG)

    @sed "$(SEDFLAGS)" < $< > $@

    ifeq ($(CONFIG_ZBOOT_ROM),y)

    ZTEXTADDR     := $(CONFIG_ZBOOT_ROM_TEXT)

    ZBSSADDR := $(CONFIG_ZBOOT_ROM_BSS)

    else

    ZTEXTADDR     := 0

    ZBSSADDR := ALIGN(8)

    endif

    就是:TEXT_START = $(ZTEXTADDR)   BSS_START = $(ZBSSADDR)

    如果内枋是在nor flash中运行的,则选第一个,这时CONFIG_ZBOOT_ROM这个变量会定义,在RAM中运行的话,选第二个。在RAM中运行的代码是被编译成与位置无关的,所以可以加载到任何地方运行。

    所以合起来的解释是:

    通过以下规则,最终生成arch/arm/boot/compress/vmlinux

    $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \

    $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE

    $(call if_changed,ld)

    @$(check_for_bad_syms)

    这个arch/arm/boot/compressed/vmlinux和前面的根目录下生成的vmlinux都是elf文件,但是却不是同一个东西。它是包令里解压用的头文件head.s, 解压程序misc.c,decompress.c的,再加入压缩内核的elf文件,是可以通过trace32加载运行的。

    下面是最后一步:

    $(obj)/Image: vmlinux FORCE

    $(call if_changed,objcopy)

    @echo '  Kernel: $@ is ready'

    这个时候再把arch/arm/boot/compressed/vmlinux通过objcopy生成bin文件zImage,到这里,zImage文件生成完毕。

    最后用个图表示一下整个zImage的生成过程:

    79183ea746e28f330f097b6dfe35faad.png

    图1.ARM linux的zImage生成过程

    展开全文
  • bzImage、zImage

    千次阅读 2018-02-03 09:11:08
    bzImage和zImage的区别来自于保护模式代码的放置位置: 1.众所周知,内核映像包括两部分代码:实模式代码和保护模 式代码,当引导装载器装载内核映像到代码段内存时,分别放置实模式代码和保护模式代码到不同的...
  • Image zImage uImage

    2019-09-23 13:12:06
    内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。  那么uImage又是什么的?它是uboot专用的映像文件,...
  • make zImage

    千次阅读 2014-01-20 09:41:26
    linux_2.6.30.4_Makefile_4--make zImage流程 2012-05-02 22:28:21 分类: LINUX  分析一下make zImage的流程,具体的操作是:首先将linux-2.6.30.4/config_EmbedSky_W35_256MB改名为.config,...
  • 1.1. 选择bootz模式启动zImage内核 之前选择bootm模式启动boot.im,boot.img带有its格式的header,需要根据header去header。现在直接启动zImage,需要通过do bootz()函数启动。方式如下: 1.1.1. 在uboot目下执行...
  • zImage用于ok6410

    2014-04-29 16:31:57
    一键烧录linux 全套包括:适用的mmc及烧录器和三个烧录文件,分别是:u-boot.bin rootfs.yaffs2 zImage (适用于ok6410-2gnand-256ram)
  • 关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过程,相信大家都很容易理解。但对于zImage是如何解压的过程,就不是那么好理解了。本文将结合部分关键代码,讲解zImage的解压过程。  先...
  • uImage和zImage的区别

    2019-11-14 18:10:26
    2、zImage和uImage的区别 3、uboot启动zImage(go)和uImage(bootm)分析 正文 回到顶部 1、各种文件的意义 vmlinux编译出来的最原始的内核文件,未压缩。 zImage是vmlinux经过gzip压缩后的文件。 bzImagebz...
  • mini2440内核zImage

    2012-05-14 15:30:52
    这是我自己编译好的zImage_x35内核,绝对可以使用。
  • uimage zimage区别

    2017-01-12 20:10:18
    zImage和uImage的区别 vmlinux是内核文件,zImage是一般情况下默认的压缩内核映像文件,压缩vmlinux,加上一段解压启动代码得到。而uImage则是使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。它是...
  • 基于imx6平台,不需要插跳线帽,不需要mftool工具,直接通过网口就可以烧写uboot,zimage,rootfs的操作方法。
  • linux内核zImage详解

    2019-07-19 03:10:00
    以下内容基于s5pv210进行... zImage由head.o,piggy.gzip.o,misc等链接组成,piggy.gzip.o中包含压缩的内核镜像,zImage的作用实际上就是对内核进行解码。  zImage还是位置无关码,它的链接地址为0,可以在任何...
  • tiny4412 SDK1611 uboot启动zImage所用到的全部安装包,适用tiny4412 SDK1506
  • zImage与uImage

    2016-01-24 22:53:36
    zImage 是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage...
  • zImage和uImage的区别

    2018-04-24 19:43:23
    uImage=64字节的头部+zImage各种文件的意义:vmlinux 编译出来的最原始的内核文件,未压缩。zImage 是vmlinux经过gzip压缩后的文件。bzImage bz表示“big zImage”,不是用bzip2压缩的。两者的不同之处在于,...
  • zImage生成的命令

    2020-01-31 13:22:48
    make -f ./scripts/Makefile.build obj=arch/arm/boot MACHINE=arch/arm/boot/zImage
  • zImage linux内核二进制文件
  • uImage 和 zImage区别

    2017-06-22 10:10:34
    内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。 那么uImage又是什么的?它是uboot专用的映像文件,它...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,131
精华内容 7,652
关键字:

zimage