kexecing ELF image built by wraplinux or mkelf

Subodh Nijsure nijsure.subodh at gmail.com
Tue Jul 28 11:13:52 EDT 2009


I am trying to boot ELF image that is combined kernel + ramdisk. I
have tried to use wraplinux tool to wrap these two image but kexec
doesn't seem to boot the combined image.

To keep things simple I have decided to first just wrap bzImage

wraplinux -E --output vmlinux.wrap ./arch/i386/boot/bzImage

readelf -S vmlinux.wrap
There are 5 section headers, starting at offset 0x1f4098:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] setup             PROGBITS        00010000 000080 002a00 00 WAX  0   0 16
  [ 2] reloc             PROGBITS        00012a00 002a80 0005bc 00 WAX  0   0 16
  [ 3] kernel            PROGBITS        00100000 003040 1f1038 00   A  0   0 16
  [ 4] .shstrtab         STRTAB          00000000 1f4078 00001e 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

I am trying to load this image in my existing kernel using following
command line ( i instrumented the kexec a bit to print info structure
to see if kexec is reading the elf image correctly

kexec  --type=elf-x86 --args-elf --reuse-cmdline  ./vmlinux.wrap

kexec_load: entry = 0x17d8 flags = 0
nr_segments = 4
segment[0].buf   = 0x806f7b0
segment[0].bufsz = 7060
segment[0].mem   = 0x1000
segment[0].memsz = 9000
segment[1].buf   = 0x8076818
segment[1].bufsz = ec
segment[1].mem   = 0xa000
segment[1].memsz = 1000
segment[2].buf   = 0xb79f6088
segment[2].bufsz = 2fbc
segment[2].mem   = 0x10000
segment[2].memsz = 3000
segment[3].buf   = 0xb79f9048
segment[3].bufsz = 1f1038
segment[3].mem   = 0x100000
segment[3].memsz = 1f2000

I follow this my kexec -e and my machine "hangs".

Anybody has tried booting output of wraplinux using kexec? I have had
similar problems with mkelf-linux tool chain as well...

/Subodh



More information about the kexec mailing list