linuxboot / linuxboot/heads

Heads build qemu-coreboot vs qemu-linuxboot & project linuxboot build

Open
#623 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Makefile
Stars
1.6k
Forks
211
Avg merge
4d 21h
Merged PRs (30d)
6

Description

Hi Team,
Couple of doubts. Wondering if I am trying things differently and if my expectations/understanding is wrong. Please let me know so that I can stop being side tracked and proceed with the working model.

First, I am able to build and run heads qemu-coreboot with full graphics support on a couple of images I found ( debian, kali ). However, all other things being the same, qemu-linuxboot does not behave the same. The problem is that with qemu-linuxboot, the qemu window stays blank. Outputs come on the terminal --serial dev/stty and all boot options also come on it. With qemu-coreboot the graphics load on the qemu window.

Second, another experiment I did was to use the heads qemu-coreboot and qemu-linuxboot output files to build project linuxboot. i.e. point the KERNEL and INITRD paths to the heads qemu builds. One thing I notice is this make is very fast, kind of looks like some packaging is done and does not do any long running build. Then using qemu to load the linuxboot.rom image under the ~/linuxboot/build/qemu folder crashes with

qemu-system-x86_64: Trying to execute code outside RAM or ROM at 0x00000000000a0000
This usually means one of the following happened:

(1) You told QEMU to execute a kernel for the wrong machine type, and it crashed on startup (eg trying to run a raspberry pi kernel on a versatilepb QEMU machine)
(2) You didn't give QEMU a kernel or BIOS filename at all, and QEMU executed a ROM full of no-op instructions until it fell off the end
(3) Your guest kernel has a bug and crashed by jumping off into nowhere

This is almost always one of the first two, so check your command line and that you are using the right type of kernel for this machine.
If you think option (3) is likely then you can try debugging your guest with the -d debug options; in particular -d guest_errors will cause the log to include a dump of the guest register state at this point.

Execution cannot continue; stopping here.

Thanks and Regards,
Madhan.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the qemu-coreboot and qemu-linuxboot launch paths and the serial output described in the issue. Then inspect how KERNEL and INITRD are used to create linuxboot.rom under ~/linuxboot/build/qemu, and reproduce the reported QEMU crash. Done means explaining the blank graphics behavior and identifying why the generated ROM executes outside RAM or ROM.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.