[oe-commits] Ed Bartosh : wic: Use gptmbr.bin MBR for gpt partitions

git at git.openembedded.org git at git.openembedded.org
Thu Jun 11 23:00:12 UTC 2015


Module: openembedded-core.git
Branch: master
Commit: 6174983e20bd24422e5cee57e78dce9c92cb3c15
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=6174983e20bd24422e5cee57e78dce9c92cb3c15

Author: Ed Bartosh <ed.bartosh at linux.intel.com>
Date:   Tue Jun  2 17:02:02 2015 +0300

wic: Use gptmbr.bin MBR for gpt partitions

Used proper syslinux MBR gptmbr.bin for GPT partitons.
Added check for unsupported partition formats.

Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>

---

 scripts/lib/wic/plugins/source/bootimg-pcbios.py    |  4 ++++
 scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py | 10 +++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/scripts/lib/wic/plugins/source/bootimg-pcbios.py b/scripts/lib/wic/plugins/source/bootimg-pcbios.py
index c28b9af..ab62b7a 100644
--- a/scripts/lib/wic/plugins/source/bootimg-pcbios.py
+++ b/scripts/lib/wic/plugins/source/bootimg-pcbios.py
@@ -46,6 +46,10 @@ class BootimgPcbiosPlugin(SourcePlugin):
         mbrfile = "%s/syslinux/" % bootimg_dir
         if cr._ptable_format == 'msdos':
             mbrfile += "mbr.bin"
+        elif cr._ptable_format == 'gpt':
+            mbrfile += "gptmbr.bin"
+        else:
+            msger.error("Unsupported partition table: %s" % cr._ptable_format)
 
         if not os.path.exists(mbrfile):
             msger.error("Couldn't find %s.  If using the -e option, do you have the right MACHINE set in local.conf?  If not, is the bootimg_dir path correct?" % mbrfile)
diff --git a/scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py b/scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py
index 29c873d..cdd7c84 100644
--- a/scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py
+++ b/scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py
@@ -169,7 +169,15 @@ class RootfsPlugin(SourcePlugin):
         Called after all partitions have been prepared and assembled into a
         disk image. In this case, we install the MBR.
         """
-        mbrfile = os.path.join(native_sysroot, "usr/share/syslinux/mbr.bin")
+        mbrfile = os.path.join(native_sysroot, "usr/share/syslinux/")
+        if image_creator._ptable_format == 'msdos':
+            mbrfile += "mbr.bin"
+        elif image_creator._ptable_format == 'gpt':
+            mbrfile += "gptmbr.bin"
+        else:
+            msger.error("Unsupported partition table: %s" % \
+                        image_creator._ptable_format)
+
         if not os.path.exists(mbrfile):
             msger.error("Couldn't find %s. Has syslinux-native been baked?" % mbrfile)
 



More information about the Openembedded-commits mailing list