qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1044727] [NEW] -kernel does not work for multiboot ELF


From: Henning Schild
Subject: [Qemu-devel] [Bug 1044727] [NEW] -kernel does not work for multiboot ELF kernels
Date: Sat, 01 Sep 2012 14:45:52 -0000

Public bug reported:

The multiboot header of a kernel image can contain the entry point and
memory segment information. If it does not the kernel should have an ELF
header that describes the memory segments and contains the entry point.

http://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Header-
layout

I have such a multiboot ELF kernel that can be loaded fine with grub and
grub2 but not with the qemu -kernel flag. According to the ELF spec the
entry field in the ELF header should contain the virtual address of the
multiboot entry code. Qemu sets up the memory regions using the paddr
fields from the ELF sections and then tries to start the kernel using
the virtual entry address. This will fail with

>> qemu: fatal: Trying to execute code outside RAM or ROM

I wrote a simple kernel that can be used to reproduce this bug. Get this
archive

http://os.inf.tu-dresden.de/~hschild/asmkernel.tar.gz

It contains the simple kernel, its source, plus grub and grub2 binaries
to boot the kernel in qemu. The HOWTO file contains the command lines
you should be using to rebuild the kernel and boot it an bare qemu or
with one of the two bootloaders.

Find a patch that will fix this issue here:
http://os.inf.tu-dresden.de/~hschild/qemu-fix-elf-entry.patch

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1044727

Title:
  -kernel does not work for multiboot ELF kernels

Status in QEMU:
  New

Bug description:
  The multiboot header of a kernel image can contain the entry point and
  memory segment information. If it does not the kernel should have an
  ELF header that describes the memory segments and contains the entry
  point.

  http://www.gnu.org/software/grub/manual/multiboot/multiboot.html
  #Header-layout

  I have such a multiboot ELF kernel that can be loaded fine with grub
  and grub2 but not with the qemu -kernel flag. According to the ELF
  spec the entry field in the ELF header should contain the virtual
  address of the multiboot entry code. Qemu sets up the memory regions
  using the paddr fields from the ELF sections and then tries to start
  the kernel using the virtual entry address. This will fail with

  >> qemu: fatal: Trying to execute code outside RAM or ROM

  I wrote a simple kernel that can be used to reproduce this bug. Get
  this archive

  http://os.inf.tu-dresden.de/~hschild/asmkernel.tar.gz

  It contains the simple kernel, its source, plus grub and grub2
  binaries to boot the kernel in qemu. The HOWTO file contains the
  command lines you should be using to rebuild the kernel and boot it an
  bare qemu or with one of the two bootloaders.

  Find a patch that will fix this issue here:
  http://os.inf.tu-dresden.de/~hschild/qemu-fix-elf-entry.patch

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1044727/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]