Can vmlinux be used instead of uImage?

14,618

Solution 1

As far as I know, U-Boot cannot directly boot a “raw” ELF image (vmlinux). You need to turn it into the uImage format, which contains the compressed vmlinux plus a few extra bytes of metadata that describe the kernel load address. U-Boot FAQ 2.19 explains how to generate uImage; it's fairly straightforward, using the mkimage utility in the U-Boot source tree:

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

(You may need extra parameters indicating the load address.)

Solution 2

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

Change gzip in the above example to none, and you'll create a u-Boot compatible uncompressed image.

Solution 3

If you are using Buildroot, select a uImage kernel output file (BR2_LINUX_KERNEL_UIMAGE=y). Compile normally and Buildroot will also create a vmlinux file in an intermediate step. While the vmlinux file is not copied to the /output/images directory it can be found in ./output/build/linux-custom/(or by running find . -name "vmlinux").

Share:
14,618

Related videos on Youtube

Sharanya
Author by

Sharanya

Updated on September 18, 2022

Comments

  • Sharanya
    Sharanya over 1 year

    I want to use an uncompressed kernel image and boot the BeagleBoard. Generally I use uImage to boot the kernel which is in compressed format. How do I use an uncompressed kernel image?

    • Sharanya
      Sharanya over 12 years
      yes! Is it possible using uboot?
  • Sharanya
    Sharanya over 12 years
    Uncompressing the uImage while booting takes some time. I need to minimize that. So i thought why dont i try with the uncompressed raw file vmlinux.
  • Matt Kucia
    Matt Kucia over 10 years
    The effect you want to achieve might be opposite to intended. Decompression time is usually smaller than time of copying data from flash.
  • John Klug
    John Klug almost 3 years
    If you are using ubifs for the root image, it is already compressed somewhat.