| Summary: | Add EFI support to ISO images | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Jason Wessel <jason.wessel> |
| Component: | deployment | Assignee: | Jason Wessel <jason.wessel> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | enhancement | ||
| Priority: | Medium+ | CC: | ionutx.chisanovici, mark.hatle, sgw |
| Version: | unspecified | ||
| Target Milestone: | 1.6 | ||
| Hardware: | x86 | ||
| OS: | x86_64 | ||
| Whiteboard: | (1.4.2 also) | ||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Yes (doc changes required) | |
| Bug Depends on: | |||
| Bug Blocks: | 4106, 4641 | ||
|
Description
Jason Wessel
2013-03-25 13:41:46 UTC
Jason, Can you post any details you had? Arguments? Checked in, oe-core commits: 17d74fbd09e377e100423e1a73b9d4ce761a21d7 8444199fb598012f54853b010b5e5cce750db89d a4baf911ab9d306ce5200e7d794ed6a9ccb25f30 0bc0762a479b5182a07fccb2b1e9cd5fc15ca485 Hi Mark, Can you please post an how should I test this ? Thanks a lot, Ionut C Jason will have to fill in the details on testing. Is there a specific location to input test details?
I'll assume for now it can just be entered here in the case log.
I had tested the image to see that it could boot on EFI capable hardware as well as on QEMU (the non EFI boot). To make things simple for the purpose of testing in the 1.5 version of OE, I changed the kernel options so as to allow the kernel's console to work properly. Specifically for the kernel you need to enable the option CONFIG_FB_EFI if you want to see the graphics console have text.
I did the following for the 64 bit case.
1) build qemux86-64 core-image-minimal
2) Customized the kernel to turn on CONFIG_FB_EFI
3) edit: meta/conf/machine/qemux86-64.conf and add
MACHINE_FEATURES += "efi"
MACHINE_FEATURES += "pcbios"
4) local.conf has
IMAGE_FSTYPES += "live"
This will create an ISO which I can try booting on QEMU and a 64 bit EFI enabled system. The ISO was used with dd to a USB device in this case.
Now I did steps 1-4 again but this time commented out
the 'MACHINE_FEATURES += "pcbios"', so I could try just the EFI boot.
For the 32bit system I built qemux86 and modified:
meta/conf/machine/qemux86.conf
To contain:
MACHINE_FEATURES += "efi"
MACHINE_FEATURES += "pcbios"
I followed the same steps as before, but booted this image on the minnow board as well as a simics Tunnel creek model. I also verified the ISO image as a USB and Optical DVD with the Simics model.
Hi Jason, The feature has been verified and I was able to boot both 32 and 64 bits ISO images using EFI. One more thing to mention: is there any documentation regarding this ? regarding the steps that a user must perform in order to enable this feature ? The feature cannot be closed until there is some documentation on how to enable this. Cheers, Ionut C This particular feature has no outward facing documentation because it is something that should have worked all along. Previously there were simply comments in the code that stated "this doesn't work" or it is "untested". That is what this case has fixed. The ISO booting with linux live should work similarly regardless of the firmware on the device. The firmware is something that is enabled at the BSP level by MACHINE_FEATURES += "efi", and this is part of the BSP development. The live images for example have long worked on non-EFI BSPs. All the relevant documentation for live images and such already exists. I provided some special test instructions because the oe-core did not contain any efi enabled BSPs. --- I imagine that at some point in the future because we can do unified booting with the new code that we will just enable EFI and BIOS boot in the qemu x86 BPS, or the x86 super BSP will be enabled to work with QEMU. I use my own BSP test templat such that I can boot one image on EFI, BIOS, qemu and or real hardware for example. If we elect to do this at some point it would be a brand new bugzilla entry. See bugzilla 5654. Ok, Jason got it. The feature is verified. Cheers, Ionut C. |