diff options
| author | Ioan-Adrian Ratiu <adrian.ratiu@ni.com> | 2016-04-20 18:06:15 +0300 | 
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-06-29 19:33:21 +0100 | 
| commit | e5e35d055b0a72f2204f9530a1ad39bc51e79217 (patch) | |
| tree | 190d45e6eec2e34b5f555a85463831b83d96da31 | |
| parent | cd88d65d4c1f8f56ddccb95f7e75cd9f5229602c (diff) | |
| download | openembedded-core-e5e35d055b0a72f2204f9530a1ad39bc51e79217.tar.gz openembedded-core-e5e35d055b0a72f2204f9530a1ad39bc51e79217.tar.bz2 openembedded-core-e5e35d055b0a72f2204f9530a1ad39bc51e79217.zip | |
wic: isoimage-isohybrid: add grubefi configfile support
The latest wic kickstart refactoring introduced a bootloader option
"--configfile" which lets wks' specify a custom grub.cfg for use
while booting. This is very useful for creating stuff like boot menus.
This change lets isoimage-isohybrid use --configfile; if this option is
not specified in a wks, it generates a default cfg as before.
(From OE-Core rev: bf673a769514b13558ad9c785ae4da3a5adfd1e0)
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
| -rw-r--r-- | scripts/lib/wic/plugins/source/isoimage-isohybrid.py | 53 | 
1 files changed, 32 insertions, 21 deletions
| diff --git a/scripts/lib/wic/plugins/source/isoimage-isohybrid.py b/scripts/lib/wic/plugins/source/isoimage-isohybrid.py index bc9928314c..8440581629 100644 --- a/scripts/lib/wic/plugins/source/isoimage-isohybrid.py +++ b/scripts/lib/wic/plugins/source/isoimage-isohybrid.py @@ -27,6 +27,7 @@ import glob  from wic import msger  from wic.pluginbase import SourcePlugin +from wic.utils.misc import get_custom_config  from wic.utils.oe.misc import exec_cmd, exec_native_cmd, get_bitbake_var  class IsoImagePlugin(SourcePlugin): @@ -94,33 +95,43 @@ class IsoImagePlugin(SourcePlugin):          """          Create loader-specific (grub-efi) config          """ -        splash = os.path.join(cr_workdir, "/EFI/boot/splash.jpg") -        if os.path.exists(splash): -            splashline = "menu background splash.jpg" +        configfile = creator.ks.bootloader.configfile +        if configfile: +            grubefi_conf = get_custom_config(configfile) +            if grubefi_conf: +                msger.debug("Using custom configuration file " +                        "%s for grub.cfg" % configfile) +            else: +                msger.error("configfile is specified but failed to " +                        "get it from %s." % configfile)          else: -            splashline = "" +            splash = os.path.join(cr_workdir, "/EFI/boot/splash.jpg") +            if os.path.exists(splash): +                splashline = "menu background splash.jpg" +            else: +                splashline = "" -        bootloader = creator.ks.bootloader +            bootloader = creator.ks.bootloader -        grubefi_conf = "" -        grubefi_conf += "serial --unit=0 --speed=115200 --word=8 " -        grubefi_conf += "--parity=no --stop=1\n" -        grubefi_conf += "default=boot\n" -        grubefi_conf += "timeout=%s\n" % (bootloader.timeout or 10) -        grubefi_conf += "\n" -        grubefi_conf += "search --set=root --label %s " % part.label -        grubefi_conf += "\n" -        grubefi_conf += "menuentry 'boot'{\n" +            grubefi_conf = "" +            grubefi_conf += "serial --unit=0 --speed=115200 --word=8 " +            grubefi_conf += "--parity=no --stop=1\n" +            grubefi_conf += "default=boot\n" +            grubefi_conf += "timeout=%s\n" % (bootloader.timeout or 10) +            grubefi_conf += "\n" +            grubefi_conf += "search --set=root --label %s " % part.label +            grubefi_conf += "\n" +            grubefi_conf += "menuentry 'boot'{\n" -        kernel = "/bzImage" +            kernel = "/bzImage" -        grubefi_conf += "linux %s rootwait %s\n" \ -            % (kernel, bootloader.append) -        grubefi_conf += "initrd /initrd \n" -        grubefi_conf += "}\n" +            grubefi_conf += "linux %s rootwait %s\n" \ +                            % (kernel, bootloader.append) +            grubefi_conf += "initrd /initrd \n" +            grubefi_conf += "}\n" -        if splashline: -            grubefi_conf += "%s\n" % splashline +            if splashline: +                grubefi_conf += "%s\n" % splashline          msger.debug("Writing grubefi config %s/EFI/BOOT/grub.cfg" \                          % cr_workdir) | 
