<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>4100</bug_id>
          
          <creation_ts>2013-03-25 13:41:46 +0000</creation_ts>
          <short_desc>Add EFI support to ISO images</short_desc>
          <delta_ts>2013-12-11 15:59:41 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>deployment</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>x86_64</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard>(1.4.2 also)</status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>1.6</target_milestone>
          
          <blocked>4106</blocked>
    
    <blocked>4641</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jason Wessel">jason.wessel</reporter>
          <assigned_to name="Jason Wessel">jason.wessel</assigned_to>
          <cc>ionutx.chisanovici</cc>
    
    <cc>mark.hatle</cc>
    
    <cc>sgw</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Yes (doc changes required)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31114</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Wessel">jason.wessel</who>
    <bug_when>2013-03-25 13:41:46 +0000</bug_when>
    <thetext>In order to properly support EFI booting using a burned ISO image the cdrtools must be upgraded to gain the ability to put a mini parition which can be read by the EFI loader to load the second stage loader which will load the kernel and initrd.

This is the recommended version:

ftp://ftp.berlios.de/pub/cdrecord/alpha/cdrtools-3.01a13.tar.bz2

Then the bbclass file which generates the iso hybrid images must be modified to call mkisofs with additional arguments and a pointer to the directory containing the EFI second stage loader, kernel and initramfs/initrd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34620</commentid>
    <comment_count>1</comment_count>
    <who name="Darren Hart">dvhart</who>
    <bug_when>2013-07-16 17:39:24 +0000</bug_when>
    <thetext>Jason,

Can you post any details you had? Arguments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37648</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hatle">mark.hatle</who>
    <bug_when>2013-10-04 17:27:37 +0000</bug_when>
    <thetext>Checked in, oe-core commits:

17d74fbd09e377e100423e1a73b9d4ce761a21d7
8444199fb598012f54853b010b5e5cce750db89d
a4baf911ab9d306ce5200e7d794ed6a9ccb25f30
0bc0762a479b5182a07fccb2b1e9cd5fc15ca485</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39095</commentid>
    <comment_count>3</comment_count>
    <who name="Ionut Chisanovici">ionutx.chisanovici</who>
    <bug_when>2013-11-26 13:12:33 +0000</bug_when>
    <thetext>Hi Mark,

Can you please post an how should I test this ?

Thanks a lot,
Ionut C</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39193</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hatle">mark.hatle</who>
    <bug_when>2013-12-02 17:00:04 +0000</bug_when>
    <thetext>Jason will have to fill in the details on testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39329</commentid>
    <comment_count>5</comment_count>
    <who name="Jason Wessel">jason.wessel</who>
    <bug_when>2013-12-11 04:38:25 +0000</bug_when>
    <thetext>Is there a specific location to input test details?

I&apos;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&apos;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 += &quot;efi&quot;
     MACHINE_FEATURES += &quot;pcbios&quot;
4) local.conf has 
    IMAGE_FSTYPES += &quot;live&quot;

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 &apos;MACHINE_FEATURES += &quot;pcbios&quot;&apos;, 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 += &quot;efi&quot;
     MACHINE_FEATURES += &quot;pcbios&quot;

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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39338</commentid>
    <comment_count>6</comment_count>
    <who name="Ionut Chisanovici">ionutx.chisanovici</who>
    <bug_when>2013-12-11 14:26:41 +0000</bug_when>
    <thetext>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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39340</commentid>
    <comment_count>7</comment_count>
    <who name="Jason Wessel">jason.wessel</who>
    <bug_when>2013-12-11 14:48:15 +0000</bug_when>
    <thetext>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 &quot;this doesn&apos;t work&quot; or it is &quot;untested&quot;.  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 += &quot;efi&quot;, 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39350</commentid>
    <comment_count>8</comment_count>
    <who name="Ionut Chisanovici">ionutx.chisanovici</who>
    <bug_when>2013-12-11 15:59:41 +0000</bug_when>
    <thetext>Ok, Jason got it.

The feature is verified.

Cheers,
Ionut C.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>