Linux kernel U-Boot——构建uImage Minnowboard

Linux kernel U-Boot——构建uImage Minnowboard,linux-kernel,u-boot,Linux Kernel,U Boot,我正在从事一个嵌入式项目,以优化minnowboard上的启动时间。 目前我正在使用u-boot。使用压缩内核 (bzImage)一切正常,我想与您一起检查性能 未压缩内核(vmlinux) 我读到u-boot不能支持原始vmlinux,我需要 使用u-boot工具生成uImage 我尝试从vmlinux创建uImage,但没有 了解-a(加载地址)和-e(入口点)的含义 指向?我假设它与加载时使用的加载地址相同 从sd卡到RAM的内核映像 uImage creation: mkimage -

我正在从事一个嵌入式项目,以优化minnowboard上的启动时间。 目前我正在使用u-boot。使用压缩内核 (bzImage)一切正常,我想与您一起检查性能 未压缩内核(vmlinux)

我读到u-boot不能支持原始vmlinux,我需要 使用u-boot工具生成uImage

我尝试从vmlinux创建uImage,但没有 了解-a(加载地址)和-e(入口点)的含义 指向?我假设它与加载时使用的加载地址相同 从sd卡到RAM的内核映像

uImage creation:

mkimage -A x86 -O linux -T kernel -C none -a 0x01000000 -e 0x01000000 -n Linux -d vmlinux uImage
Image Name:   Linux
Created:      Wed Jun 22 17:03:17 2016
Image Type:   Intel x86 Linux Kernel Image (uncompressed)
Data Size:    21966248 Bytes = 21451.41 kB = 20.95 MB
Load Address: 01000000
Entry Point:  01000000
现在在启动时,我看到内核没有运行,并且 以下是错误消息

reading uImage
21966312 bytes read in 481 ms (43.6 MiB/s)
Wrong Image Format for bootm command
ERROR: can't get kernel image!
bootcmd是

"bootcmd=fatload mmc 0:1 01000000 uImage ; bootm 01000000"

你知道为什么会这样吗?

你需要使用
Image
文件,它实际上是未压缩的内核文件,而不是
vmlinux
。SamProtsenko:好的,我会尝试使用图像文件,但是你知道加载地址和入口点对应什么吗,在构建uImageIt时,它的意思正好是:加载地址是映像将加载到的内存中的地址,入口点是引导加载程序跳转到的地址。@evk1206我相信Wolfgang Denk为您提供了加载地址的完美详细解释。您需要使用
image
文件,它实际上是未压缩的内核文件,而不是
vmlinux
。SamProtsenko:好的,我会尝试使用映像文件,但是你知道加载地址和入口点对应什么吗,在构建UIMage时它的意思是:加载地址是映像将加载到的内存中的地址,入口点是引导加载程序跳转的地址。@evk1206我相信Wolfgang Denk对加载地址给出了完美的详细解释。