Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 1/7] wic: Add '--sourceparams' partition option
  2014-08-12  1:35 [PATCH 0/7] wic: Add gummiboot support Tom Zanussi
@ 2014-08-12  1:35 ` Tom Zanussi
  2014-08-12  1:35 ` [PATCH 2/7] wic: Add utility function for parsing sourceparams Tom Zanussi
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Tom Zanussi @ 2014-08-12  1:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Tom Zanussi

To go along with '--source' as a way to parameterize source plugins.

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 scripts/lib/wic/kickstart/custom_commands/partition.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/scripts/lib/wic/kickstart/custom_commands/partition.py b/scripts/lib/wic/kickstart/custom_commands/partition.py
index 24f523a..3920adb 100644
--- a/scripts/lib/wic/kickstart/custom_commands/partition.py
+++ b/scripts/lib/wic/kickstart/custom_commands/partition.py
@@ -47,6 +47,7 @@ class Wic_PartData(Mic_PartData):
         Mic_PartData.__init__(self, *args, **kwargs)
         self.deleteRemovedAttrs()
         self.source = kwargs.get("source", None)
+        self.sourceparams = kwargs.get("sourceparams", None)
         self.rootfs = kwargs.get("rootfs-dir", None)
         self.source_file = ""
         self.size = 0
@@ -56,6 +57,8 @@ class Wic_PartData(Mic_PartData):
 
         if self.source:
             retval += " --source=%s" % self.source
+            if self.sourceparams:
+                retval += " --sourceparams=%s" % self.sourceparams
             if self.rootfs:
                 retval += " --rootfs-dir=%s" % self.rootfs
 
@@ -490,6 +493,9 @@ class Wic_Partition(Mic_Partition):
         # and calculate partition size
         op.add_option("--source", type="string", action="store",
                       dest="source", default=None)
+        # comma-separated list of param=value pairs
+        op.add_option("--sourceparams", type="string", action="store",
+                      dest="sourceparams", default=None)
         # use specified rootfs path to fill the partition
         op.add_option("--rootfs-dir", type="string", action="store",
                       dest="rootfs", default=None)
-- 
1.8.3.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/7] wic: Add utility function for parsing sourceparams
  2014-08-12  1:35 [PATCH 0/7] wic: Add gummiboot support Tom Zanussi
  2014-08-12  1:35 ` [PATCH 1/7] wic: Add '--sourceparams' partition option Tom Zanussi
@ 2014-08-12  1:35 ` Tom Zanussi
  2014-08-12  1:35 ` [PATCH 3/7] wic: Add sourceparam param to partition plugin methods Tom Zanussi
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Tom Zanussi @ 2014-08-12  1:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Tom Zanussi

Parses strings of the form key1=val1[,key2=val2,...] and returns a
dict.  Also accepts valueless keys i.e. without =.

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 scripts/lib/wic/utils/oe/misc.py | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/scripts/lib/wic/utils/oe/misc.py b/scripts/lib/wic/utils/oe/misc.py
index 87e3041..aa9b235 100644
--- a/scripts/lib/wic/utils/oe/misc.py
+++ b/scripts/lib/wic/utils/oe/misc.py
@@ -179,3 +179,26 @@ def get_bitbake_var(key):
             val = get_line_val(line, key)
             return val
     return None
+
+def parse_sourceparams(sourceparams):
+    """
+    Split sourceparams string of the form key1=val1[,key2=val2,...]
+    into a dict.  Also accepts valueless keys i.e. without =.
+
+    Returns dict of param key/val pairs (note that val may be None).
+    """
+    params_dict = {}
+
+    params = sourceparams.split(',')
+    if params:
+        for p in params:
+            if not p:
+                continue
+            if not '=' in p:
+                key = p
+                val = None
+            else:
+                key, val = p.split('=')
+            params_dict[key] = val
+
+    return params_dict
-- 
1.8.3.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/7] wic: Add sourceparam param to partition plugin methods
  2014-08-12  1:35 [PATCH 0/7] wic: Add gummiboot support Tom Zanussi
  2014-08-12  1:35 ` [PATCH 1/7] wic: Add '--sourceparams' partition option Tom Zanussi
  2014-08-12  1:35 ` [PATCH 2/7] wic: Add utility function for parsing sourceparams Tom Zanussi
@ 2014-08-12  1:35 ` Tom Zanussi
  2014-08-12  1:35 ` [PATCH 4/7] wic: Parse and pass sourceparams " Tom Zanussi
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Tom Zanussi @ 2014-08-12  1:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Tom Zanussi

The sourceparam param allows source plugins to be parameterized
generically (via --sourceparams="key=val[,key=val], implemented
previously).

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 scripts/lib/wic/kickstart/custom_commands/partition.py |  6 +++---
 scripts/lib/wic/pluginbase.py                          | 15 +++++++++------
 scripts/lib/wic/plugins/source/bootimg-efi.py          | 10 ++++++----
 scripts/lib/wic/plugins/source/bootimg-pcbios.py       | 10 ++++++----
 scripts/lib/wic/plugins/source/rootfs.py               |  5 +++--
 5 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/scripts/lib/wic/kickstart/custom_commands/partition.py b/scripts/lib/wic/kickstart/custom_commands/partition.py
index 3920adb..76cf7a9 100644
--- a/scripts/lib/wic/kickstart/custom_commands/partition.py
+++ b/scripts/lib/wic/kickstart/custom_commands/partition.py
@@ -143,16 +143,16 @@ class Wic_PartData(Mic_PartData):
             msger.error("The '%s' --source specified for %s doesn't exist.\n\tSee 'wic list source-plugins' for a list of available --sources.\n\tSee 'wic help source-plugins' for details on adding a new source plugin." % (self.source, self.mountpoint))
 
         self._source_methods = pluginmgr.get_source_plugin_methods(self.source, partition_methods)
-        self._source_methods["do_configure_partition"](self, cr, cr_workdir,
+        self._source_methods["do_configure_partition"](self, None, cr, cr_workdir,
                                                        oe_builddir,
                                                        bootimg_dir,
                                                        kernel_dir,
                                                        native_sysroot)
-        self._source_methods["do_stage_partition"](self, cr, cr_workdir,
+        self._source_methods["do_stage_partition"](self, None, cr, cr_workdir,
                                                    oe_builddir,
                                                    bootimg_dir, kernel_dir,
                                                    native_sysroot)
-        self._source_methods["do_prepare_partition"](self, cr, cr_workdir,
+        self._source_methods["do_prepare_partition"](self, None, cr, cr_workdir,
                                                      oe_builddir,
                                                      bootimg_dir, kernel_dir, rootfs_dir,
                                                      native_sysroot)
diff --git a/scripts/lib/wic/pluginbase.py b/scripts/lib/wic/pluginbase.py
index 06f318f..b8b3a46 100644
--- a/scripts/lib/wic/pluginbase.py
+++ b/scripts/lib/wic/pluginbase.py
@@ -64,8 +64,9 @@ class SourcePlugin(_Plugin):
         msger.debug("SourcePlugin: do_install_disk: disk: %s" % disk_name)
 
     @classmethod
-    def do_stage_partition(self, part, cr, workdir, oe_builddir, bootimg_dir,
-                           kernel_dir, native_sysroot):
+    def do_stage_partition(self, part, source_params, cr, cr_workdir,
+                           oe_builddir, bootimg_dir, kernel_dir,
+                           native_sysroot):
         """
         Special content staging hook called before do_prepare_partition(),
         normally empty.
@@ -80,8 +81,9 @@ class SourcePlugin(_Plugin):
         msger.debug("SourcePlugin: do_stage_partition: part: %s" % part)
 
     @classmethod
-    def do_configure_partition(self, part, cr, cr_workdir, oe_builddir,
-                               bootimg_dir, kernel_dir, native_sysroot):
+    def do_configure_partition(self, part, source_params, cr, cr_workdir,
+                               oe_builddir, bootimg_dir, kernel_dir,
+                               native_sysroot):
         """
         Called before do_prepare_partition(), typically used to create
         custom configuration files for a partition, for example
@@ -90,8 +92,9 @@ class SourcePlugin(_Plugin):
         msger.debug("SourcePlugin: do_configure_partition: part: %s" % part)
 
     @classmethod
-    def do_prepare_partition(self, part, cr, cr_workdir, oe_builddir, bootimg_dir,
-                             kernel_dir, rootfs_dir, native_sysroot):
+    def do_prepare_partition(self, part, source_params, cr, cr_workdir,
+                             oe_builddir, bootimg_dir, kernel_dir, rootfs_dir,
+                             native_sysroot):
         """
         Called to do the actual content population for a partition i.e. it
         'prepares' the partition to be incorporated into the image.
diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py
index 53f1782..ea94fd2 100644
--- a/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -42,8 +42,9 @@ class BootimgEFIPlugin(SourcePlugin):
     name = 'bootimg-efi'
 
     @classmethod
-    def do_configure_partition(self, part, cr, cr_workdir, oe_builddir,
-                               bootimg_dir, kernel_dir, native_sysroot):
+    def do_configure_partition(self, source_params, part, cr, cr_workdir,
+                               oe_builddir, bootimg_dir, kernel_dir,
+                               native_sysroot):
         """
         Called before do_prepare_partition(), creates grubefi config
         """
@@ -92,8 +93,9 @@ class BootimgEFIPlugin(SourcePlugin):
         cfg.close()
 
     @classmethod
-    def do_prepare_partition(self, part, cr, cr_workdir, oe_builddir, bootimg_dir,
-                             kernel_dir, rootfs_dir, native_sysroot):
+    def do_prepare_partition(self, part, source_params, cr, cr_workdir,
+                             oe_builddir, bootimg_dir, kernel_dir,
+                             rootfs_dir, native_sysroot):
         """
         Called to do the actual content population for a partition i.e. it
         'prepares' the partition to be incorporated into the image.
diff --git a/scripts/lib/wic/plugins/source/bootimg-pcbios.py b/scripts/lib/wic/plugins/source/bootimg-pcbios.py
index bd2225e..aceed20 100644
--- a/scripts/lib/wic/plugins/source/bootimg-pcbios.py
+++ b/scripts/lib/wic/plugins/source/bootimg-pcbios.py
@@ -65,8 +65,9 @@ class BootimgPcbiosPlugin(SourcePlugin):
             raise ImageError("Unable to set MBR to %s" % full_path)
 
     @classmethod
-    def do_configure_partition(self, part, cr, cr_workdir, oe_builddir,
-                               bootimg_dir, kernel_dir, native_sysroot):
+    def do_configure_partition(self, part, source_params, cr, cr_workdir,
+                               oe_builddir, bootimg_dir, kernel_dir,
+                               native_sysroot):
         """
         Called before do_prepare_partition(), creates syslinux config
         """
@@ -118,8 +119,9 @@ class BootimgPcbiosPlugin(SourcePlugin):
         cfg.close()
 
     @classmethod
-    def do_prepare_partition(self, part, cr, cr_workdir, oe_builddir, bootimg_dir,
-                             kernel_dir, rootfs_dir, native_sysroot):
+    def do_prepare_partition(self, part, source_params, cr, cr_workdir,
+                             oe_builddir, bootimg_dir, kernel_dir,
+                             rootfs_dir, native_sysroot):
         """
         Called to do the actual content population for a partition i.e. it
         'prepares' the partition to be incorporated into the image.
diff --git a/scripts/lib/wic/plugins/source/rootfs.py b/scripts/lib/wic/plugins/source/rootfs.py
index 919e97e..a432a18 100644
--- a/scripts/lib/wic/plugins/source/rootfs.py
+++ b/scripts/lib/wic/plugins/source/rootfs.py
@@ -62,8 +62,9 @@ class RootfsPlugin(SourcePlugin):
         return image_rootfs_dir
 
     @classmethod
-    def do_prepare_partition(self, part, cr, cr_workdir, oe_builddir, bootimg_dir,
-                             kernel_dir, krootfs_dir, native_sysroot):
+    def do_prepare_partition(self, part, source_params, cr, cr_workdir,
+                             oe_builddir, bootimg_dir, kernel_dir,
+                             krootfs_dir, native_sysroot):
         """
         Called to do the actual content population for a partition i.e. it
         'prepares' the partition to be incorporated into the image.
-- 
1.8.3.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 0/7] wic: Add gummiboot support
@ 2014-08-12  1:35 Tom Zanussi
  2014-08-12  1:35 ` [PATCH 1/7] wic: Add '--sourceparams' partition option Tom Zanussi
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Tom Zanussi @ 2014-08-12  1:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Tom Zanussi

This add gummiboot support to wic.  It also adds a new --sourceparams
variable to the partition command, allowing plugins to be
parameterized.  The BootImgEFIPlugin makes use of it to support
multiple loaders.

The following changes since commit 0f24d9c569db733b4f63803ee4a9c12ec1789791:

  SIGGEN_EXCLUDERECIPES_ABISAFE: add initscripts (2014-08-11 17:44:12 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib.git tzanussi/wic-gummiboot-v1
  http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=tzanussi/wic-gummiboot-v1

Tom Zanussi (7):
  wic: Add '--sourceparams' partition option
  wic: Add utility function for parsing sourceparams
  wic: Add sourceparam param to partition plugin methods
  wic: Parse and pass sourceparams to partition plugin methods
  wic: Add gummiboot support to bootimg-efi
  wic: Add sourceparams to mkefidisk.wks
  wic: Add mkgummidisk kickstart file

 scripts/lib/image/canned-wks/mkefidisk.wks         |   2 +-
 scripts/lib/image/canned-wks/mkgummidisk.wks       |  11 ++
 .../lib/wic/kickstart/custom_commands/partition.py |  20 +++-
 scripts/lib/wic/pluginbase.py                      |  15 +--
 scripts/lib/wic/plugins/source/bootimg-efi.py      | 117 +++++++++++++++++----
 scripts/lib/wic/plugins/source/bootimg-pcbios.py   |  10 +-
 scripts/lib/wic/plugins/source/rootfs.py           |   5 +-
 scripts/lib/wic/utils/oe/misc.py                   |  23 ++++
 8 files changed, 164 insertions(+), 39 deletions(-)
 create mode 100644 scripts/lib/image/canned-wks/mkgummidisk.wks

-- 
1.8.3.1



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 4/7] wic: Parse and pass sourceparams to partition plugin methods
  2014-08-12  1:35 [PATCH 0/7] wic: Add gummiboot support Tom Zanussi
                   ` (2 preceding siblings ...)
  2014-08-12  1:35 ` [PATCH 3/7] wic: Add sourceparam param to partition plugin methods Tom Zanussi
@ 2014-08-12  1:35 ` Tom Zanussi
  2014-08-12  1:35 ` [PATCH 5/7] wic: Add gummiboot support to bootimg-efi Tom Zanussi
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Tom Zanussi @ 2014-08-12  1:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Tom Zanussi

Add code to parse the sourceparams and pass them to the partition
plugin methods.

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 scripts/lib/wic/kickstart/custom_commands/partition.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/scripts/lib/wic/kickstart/custom_commands/partition.py b/scripts/lib/wic/kickstart/custom_commands/partition.py
index 76cf7a9..a3d5ef3 100644
--- a/scripts/lib/wic/kickstart/custom_commands/partition.py
+++ b/scripts/lib/wic/kickstart/custom_commands/partition.py
@@ -126,6 +126,11 @@ class Wic_PartData(Mic_PartData):
         Prepare content for individual partitions, depending on
         partition command parameters.
         """
+        self.sourceparams_dict = {}
+
+        if self.sourceparams:
+            self.sourceparams_dict = parse_sourceparams(self.sourceparams)
+
         if not self.source:
             if not self.size:
                 msger.error("The %s partition has a size of zero.  Please specify a non-zero --size for that partition." % self.mountpoint)
@@ -143,16 +148,19 @@ class Wic_PartData(Mic_PartData):
             msger.error("The '%s' --source specified for %s doesn't exist.\n\tSee 'wic list source-plugins' for a list of available --sources.\n\tSee 'wic help source-plugins' for details on adding a new source plugin." % (self.source, self.mountpoint))
 
         self._source_methods = pluginmgr.get_source_plugin_methods(self.source, partition_methods)
-        self._source_methods["do_configure_partition"](self, None, cr, cr_workdir,
+        self._source_methods["do_configure_partition"](self, self.sourceparams_dict,
+                                                       cr, cr_workdir,
                                                        oe_builddir,
                                                        bootimg_dir,
                                                        kernel_dir,
                                                        native_sysroot)
-        self._source_methods["do_stage_partition"](self, None, cr, cr_workdir,
+        self._source_methods["do_stage_partition"](self, self.sourceparams_dict,
+                                                   cr, cr_workdir,
                                                    oe_builddir,
                                                    bootimg_dir, kernel_dir,
                                                    native_sysroot)
-        self._source_methods["do_prepare_partition"](self, None, cr, cr_workdir,
+        self._source_methods["do_prepare_partition"](self, self.sourceparams_dict,
+                                                     cr, cr_workdir,
                                                      oe_builddir,
                                                      bootimg_dir, kernel_dir, rootfs_dir,
                                                      native_sysroot)
-- 
1.8.3.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/7] wic: Add gummiboot support to bootimg-efi
  2014-08-12  1:35 [PATCH 0/7] wic: Add gummiboot support Tom Zanussi
                   ` (3 preceding siblings ...)
  2014-08-12  1:35 ` [PATCH 4/7] wic: Parse and pass sourceparams " Tom Zanussi
@ 2014-08-12  1:35 ` Tom Zanussi
  2014-08-12  1:35 ` [PATCH 6/7] wic: Add sourceparams to mkefidisk.wks Tom Zanussi
  2014-08-12  1:35 ` [PATCH 7/7] wic: Add mkgummidisk kickstart file Tom Zanussi
  6 siblings, 0 replies; 8+ messages in thread
From: Tom Zanussi @ 2014-08-12  1:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Tom Zanussi

Add gummiboot support to bootimg-efi, which retains the existing
grub-efi support (though requires an update to the .wks file).

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 scripts/lib/wic/plugins/source/bootimg-efi.py | 113 +++++++++++++++++++++-----
 1 file changed, 91 insertions(+), 22 deletions(-)

diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py
index ea94fd2..855bbc2 100644
--- a/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -42,19 +42,10 @@ class BootimgEFIPlugin(SourcePlugin):
     name = 'bootimg-efi'
 
     @classmethod
-    def do_configure_partition(self, source_params, part, cr, cr_workdir,
-                               oe_builddir, bootimg_dir, kernel_dir,
-                               native_sysroot):
+    def do_configure_grubefi(self, hdddir, cr, cr_workdir):
         """
-        Called before do_prepare_partition(), creates grubefi config
+        Create loader-specific (grub-efi) config
         """
-        hdddir = "%s/hdd/boot" % cr_workdir
-        rm_cmd = "rm -rf %s" % cr_workdir
-        exec_cmd(rm_cmd)
-
-        install_cmd = "install -d %s/EFI/BOOT" % hdddir
-        exec_cmd(install_cmd)
-
         splash = os.path.join(cr_workdir, "/EFI/boot/splash.jpg")
         if os.path.exists(splash):
             splashline = "menu background splash.jpg"
@@ -73,7 +64,7 @@ class BootimgEFIPlugin(SourcePlugin):
         grubefi_conf += "timeout=%s\n" % timeout
         grubefi_conf += "menuentry 'boot'{\n"
 
-        kernel = "/vmlinuz"
+        kernel = "/bzImage"
 
         if cr._ptable_format == 'msdos':
             rootstr = rootdev
@@ -93,6 +84,79 @@ class BootimgEFIPlugin(SourcePlugin):
         cfg.close()
 
     @classmethod
+    def do_configure_gummiboot(self, hdddir, cr, cr_workdir):
+        """
+        Create loader-specific (gummiboot) config
+        """
+        install_cmd = "install -d %s/loader" % hdddir
+        exec_cmd(install_cmd)
+
+        install_cmd = "install -d %s/loader/entries" % hdddir
+        exec_cmd(install_cmd)
+
+        (rootdev, root_part_uuid) = cr._get_boot_config()
+        options = cr.ks.handler.bootloader.appendLine
+
+        timeout = kickstart.get_timeout(cr.ks)
+        if not timeout:
+            timeout = 0
+
+        loader_conf = ""
+        loader_conf += "default boot\n"
+        loader_conf += "timeout %d\n" % timeout
+
+        msger.debug("Writing gummiboot config %s/hdd/boot/loader/loader.conf" \
+                        % cr_workdir)
+        cfg = open("%s/hdd/boot/loader/loader.conf" % cr_workdir, "w")
+        cfg.write(loader_conf)
+        cfg.close()
+
+        kernel = "/bzImage"
+
+        if cr._ptable_format == 'msdos':
+            rootstr = rootdev
+        else:
+            raise ImageError("Unsupported partition table format found")
+
+        boot_conf = ""
+        boot_conf += "title boot\n"
+        boot_conf += "linux %s\n" % kernel
+        boot_conf += "options LABEL=Boot root=%s %s\n" \
+            % (rootstr, options)
+
+        msger.debug("Writing gummiboot config %s/hdd/boot/loader/entries/boot.conf" \
+                        % cr_workdir)
+        cfg = open("%s/hdd/boot/loader/entries/boot.conf" % cr_workdir, "w")
+        cfg.write(boot_conf)
+        cfg.close()
+
+
+    @classmethod
+    def do_configure_partition(self, part, source_params, cr, cr_workdir,
+                               oe_builddir, bootimg_dir, kernel_dir,
+                               native_sysroot):
+        """
+        Called before do_prepare_partition(), creates loader-specific config
+        """
+        hdddir = "%s/hdd/boot" % cr_workdir
+        rm_cmd = "rm -rf %s" % cr_workdir
+        exec_cmd(rm_cmd)
+
+        install_cmd = "install -d %s/EFI/BOOT" % hdddir
+        exec_cmd(install_cmd)
+
+        try:
+            if source_params['loader'] == 'grub-efi':
+                self.do_configure_grubefi(hdddir, cr, cr_workdir)
+            elif source_params['loader'] == 'gummiboot':
+                self.do_configure_gummiboot(hdddir, cr, cr_workdir)
+            else:
+                msger.error("unrecognized bootimg-efi loader: %s" % source_params['loader'])
+        except KeyError:
+            msger.error("bootimg-efi requires a loader, none specified")
+
+
+    @classmethod
     def do_prepare_partition(self, part, source_params, cr, cr_workdir,
                              oe_builddir, bootimg_dir, kernel_dir,
                              rootfs_dir, native_sysroot):
@@ -117,14 +181,21 @@ class BootimgEFIPlugin(SourcePlugin):
             (staging_kernel_dir, hdddir)
         exec_cmd(install_cmd)
 
-        shutil.copyfile("%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir,
-                        "%s/grub.cfg" % cr_workdir)
-
-        cp_cmd = "cp %s/EFI/BOOT/* %s/EFI/BOOT" % (staging_data_dir, hdddir)
-        exec_cmd(cp_cmd, True)
-
-        shutil.move("%s/grub.cfg" % cr_workdir,
-                    "%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir)
+        try:
+            if source_params['loader'] == 'grub-efi':
+                shutil.copyfile("%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir,
+                                "%s/grub.cfg" % cr_workdir)
+                cp_cmd = "cp %s/EFI/BOOT/* %s/EFI/BOOT" % (staging_data_dir, hdddir)
+                exec_cmd(cp_cmd, True)
+                shutil.move("%s/grub.cfg" % cr_workdir,
+                            "%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir)
+            elif source_params['loader'] == 'gummiboot':
+                cp_cmd = "cp %s/EFI/BOOT/* %s/EFI/BOOT" % (staging_data_dir, hdddir)
+                exec_cmd(cp_cmd, True)
+            else:
+                msger.error("unrecognized bootimg-efi loader: %s" % source_params['loader'])
+        except KeyError:
+            msger.error("bootimg-efi requires a loader, none specified")
 
         du_cmd = "du -bks %s" % hdddir
         out = exec_cmd(du_cmd)
@@ -164,5 +235,3 @@ class BootimgEFIPlugin(SourcePlugin):
 
         part.set_size(bootimg_size)
         part.set_source_file(bootimg)
-
-
-- 
1.8.3.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/7] wic: Add sourceparams to mkefidisk.wks
  2014-08-12  1:35 [PATCH 0/7] wic: Add gummiboot support Tom Zanussi
                   ` (4 preceding siblings ...)
  2014-08-12  1:35 ` [PATCH 5/7] wic: Add gummiboot support to bootimg-efi Tom Zanussi
@ 2014-08-12  1:35 ` Tom Zanussi
  2014-08-12  1:35 ` [PATCH 7/7] wic: Add mkgummidisk kickstart file Tom Zanussi
  6 siblings, 0 replies; 8+ messages in thread
From: Tom Zanussi @ 2014-08-12  1:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Tom Zanussi

The bootimg-efi plugin now requires a loader param, so supply it to
retain existing behavior.

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 scripts/lib/image/canned-wks/mkefidisk.wks | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/lib/image/canned-wks/mkefidisk.wks b/scripts/lib/image/canned-wks/mkefidisk.wks
index db86caa..58d42e6 100644
--- a/scripts/lib/image/canned-wks/mkefidisk.wks
+++ b/scripts/lib/image/canned-wks/mkefidisk.wks
@@ -2,7 +2,7 @@
 # long-description: Creates a partitioned EFI disk image that the user
 # can directly dd to boot media.
 
-part /boot --source bootimg-efi --ondisk sda --label msdos --active --align 1024
+part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024
 
 part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024
 
-- 
1.8.3.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 7/7] wic: Add mkgummidisk kickstart file
  2014-08-12  1:35 [PATCH 0/7] wic: Add gummiboot support Tom Zanussi
                   ` (5 preceding siblings ...)
  2014-08-12  1:35 ` [PATCH 6/7] wic: Add sourceparams to mkefidisk.wks Tom Zanussi
@ 2014-08-12  1:35 ` Tom Zanussi
  6 siblings, 0 replies; 8+ messages in thread
From: Tom Zanussi @ 2014-08-12  1:35 UTC (permalink / raw)
  To: openembedded-core; +Cc: Tom Zanussi

This is the same as mkefidisk but uses gummiboot instead of grub-efi.

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 scripts/lib/image/canned-wks/mkgummidisk.wks | 11 +++++++++++
 1 file changed, 11 insertions(+)
 create mode 100644 scripts/lib/image/canned-wks/mkgummidisk.wks

diff --git a/scripts/lib/image/canned-wks/mkgummidisk.wks b/scripts/lib/image/canned-wks/mkgummidisk.wks
new file mode 100644
index 0000000..f81cbdf
--- /dev/null
+++ b/scripts/lib/image/canned-wks/mkgummidisk.wks
@@ -0,0 +1,11 @@
+# short-description: Create an EFI disk image
+# long-description: Creates a partitioned EFI disk image that the user
+# can directly dd to boot media.
+
+part /boot --source bootimg-efi --sourceparams="loader=gummiboot" --ondisk sda --label msdos --active --align 1024
+
+part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024
+
+part swap --ondisk sda --size 44 --label swap1 --fstype=swap
+
+bootloader  --timeout=10  --append="rootwait rootfstype=ext3 console=ttyPCH0,115200 console=tty0 vmalloc=256MB snd-hda-intel.enable_msi=0"
-- 
1.8.3.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-08-12  1:36 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-12  1:35 [PATCH 0/7] wic: Add gummiboot support Tom Zanussi
2014-08-12  1:35 ` [PATCH 1/7] wic: Add '--sourceparams' partition option Tom Zanussi
2014-08-12  1:35 ` [PATCH 2/7] wic: Add utility function for parsing sourceparams Tom Zanussi
2014-08-12  1:35 ` [PATCH 3/7] wic: Add sourceparam param to partition plugin methods Tom Zanussi
2014-08-12  1:35 ` [PATCH 4/7] wic: Parse and pass sourceparams " Tom Zanussi
2014-08-12  1:35 ` [PATCH 5/7] wic: Add gummiboot support to bootimg-efi Tom Zanussi
2014-08-12  1:35 ` [PATCH 6/7] wic: Add sourceparams to mkefidisk.wks Tom Zanussi
2014-08-12  1:35 ` [PATCH 7/7] wic: Add mkgummidisk kickstart file Tom Zanussi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox