diff options
Diffstat (limited to 'scripts/lib')
| -rw-r--r-- | scripts/lib/wic/plugins/source/bootimg-efi.py | 67 | ||||
| -rw-r--r-- | scripts/lib/wic/plugins/source/bootimg-pcbios.py | 72 | 
2 files changed, 93 insertions, 46 deletions
| diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py index fa63c6abda..5feb79dbf1 100644 --- a/scripts/lib/wic/plugins/source/bootimg-efi.py +++ b/scripts/lib/wic/plugins/source/bootimg-efi.py @@ -29,6 +29,7 @@ import shutil  from wic import kickstart, 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, \                                BOOTDD_EXTRA_SPACE @@ -45,22 +46,37 @@ class BootimgEFIPlugin(SourcePlugin):          """          Create loader-specific (grub-efi) config          """ -        options = creator.ks.handler.bootloader.appendLine +        configfile = kickstart.get_bootloader_file(creator.ks) +        custom_cfg = None +        if configfile: +            custom_cfg = get_custom_config(configfile) +            if custom_cfg: +                # Use a custom configuration for grub +                grubefi_conf = custom_cfg +                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) -        grubefi_conf = "" -        grubefi_conf += "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1\n" -        grubefi_conf += "default=boot\n" -        timeout = kickstart.get_timeout(creator.ks) -        if not timeout: -            timeout = 0 -        grubefi_conf += "timeout=%s\n" % timeout -        grubefi_conf += "menuentry 'boot'{\n" +        if not custom_cfg: +            # Create grub configuration using parameters from wks file +            options = creator.ks.handler.bootloader.appendLine + +            grubefi_conf = "" +            grubefi_conf += "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1\n" +            grubefi_conf += "default=boot\n" +            timeout = kickstart.get_timeout(creator.ks) +            if not timeout: +                timeout = 0 +            grubefi_conf += "timeout=%s\n" % timeout +            grubefi_conf += "menuentry 'boot'{\n" -        kernel = "/bzImage" +            kernel = "/bzImage" -        grubefi_conf += "linux %s root=%s rootwait %s\n" \ -            % (kernel, creator.rootdev, options) -        grubefi_conf += "}\n" +            grubefi_conf += "linux %s root=%s rootwait %s\n" \ +                % (kernel, creator.rootdev, options) +            grubefi_conf += "}\n"          msger.debug("Writing grubefi config %s/hdd/boot/EFI/BOOT/grub.cfg" \                          % cr_workdir) @@ -95,12 +111,27 @@ class BootimgEFIPlugin(SourcePlugin):          cfg.write(loader_conf)          cfg.close() -        kernel = "/bzImage" +        configfile = kickstart.get_bootloader_file(creator.ks) +        custom_cfg = None +        if configfile: +            custom_cfg = get_custom_config(configfile) +            if custom_cfg: +                # Use a custom configuration for gummiboot +                boot_conf = custom_cfg +                msger.debug("Using custom configuration file " +                        "%s for gummiboots's boot.conf" % configfile) +            else: +                msger.error("configfile is specified but failed to " +                        "get it from %s." % configfile) + +        if not custom_cfg: +            # Create gummiboot configuration using parameters from wks file +            kernel = "/bzImage" -        boot_conf = "" -        boot_conf += "title boot\n" -        boot_conf += "linux %s\n" % kernel -        boot_conf += "options LABEL=Boot root=%s %s\n" % (creator.rootdev, options) +            boot_conf = "" +            boot_conf += "title boot\n" +            boot_conf += "linux %s\n" % kernel +            boot_conf += "options LABEL=Boot root=%s %s\n" % (creator.rootdev, options)          msger.debug("Writing gummiboot config %s/hdd/boot/loader/entries/boot.conf" \                          % cr_workdir) diff --git a/scripts/lib/wic/plugins/source/bootimg-pcbios.py b/scripts/lib/wic/plugins/source/bootimg-pcbios.py index 96ed54dbad..80c7dfb65e 100644 --- a/scripts/lib/wic/plugins/source/bootimg-pcbios.py +++ b/scripts/lib/wic/plugins/source/bootimg-pcbios.py @@ -29,6 +29,7 @@ import os  from wic.utils.errors import ImageError  from wic import kickstart, msger  from wic.utils import runner +from wic.utils.misc import get_custom_config  from wic.pluginbase import SourcePlugin  from wic.utils.oe.misc import exec_cmd, exec_native_cmd, \                                get_bitbake_var, BOOTDD_EXTRA_SPACE @@ -83,34 +84,49 @@ class BootimgPcbiosPlugin(SourcePlugin):          install_cmd = "install -d %s" % hdddir          exec_cmd(install_cmd) -        splash = os.path.join(cr_workdir, "/hdd/boot/splash.jpg") -        if os.path.exists(splash): -            splashline = "menu background splash.jpg" -        else: -            splashline = "" - -        options = creator.ks.handler.bootloader.appendLine - -        syslinux_conf = "" -        syslinux_conf += "PROMPT 0\n" -        timeout = kickstart.get_timeout(creator.ks) -        if not timeout: -            timeout = 0 -        syslinux_conf += "TIMEOUT " + str(timeout) + "\n" -        syslinux_conf += "\n" -        syslinux_conf += "ALLOWOPTIONS 1\n" -        syslinux_conf += "SERIAL 0 115200\n" -        syslinux_conf += "\n" -        if splashline: -            syslinux_conf += "%s\n" % splashline -        syslinux_conf += "DEFAULT boot\n" -        syslinux_conf += "LABEL boot\n" - -        kernel = "/vmlinuz" -        syslinux_conf += "KERNEL " + kernel + "\n" - -        syslinux_conf += "APPEND label=boot root=%s %s\n" % \ -                             (creator.rootdev, options) +        configfile = kickstart.get_bootloader_file(creator.ks) +        custom_cfg = None +        if configfile: +            custom_cfg = get_custom_config(configfile) +            if custom_cfg: +                # Use a custom configuration for grub +                syslinux_conf = custom_cfg +                msger.debug("Using custom configuration file " +                        "%s for syslinux.cfg" % configfile) +            else: +                msger.error("configfile is specified but failed to " +                        "get it from %s." % configfile) + +        if not custom_cfg: +            # Create syslinux configuration using parameters from wks file +            splash = os.path.join(cr_workdir, "/hdd/boot/splash.jpg") +            if os.path.exists(splash): +                splashline = "menu background splash.jpg" +            else: +                splashline = "" + +            options = creator.ks.handler.bootloader.appendLine + +            syslinux_conf = "" +            syslinux_conf += "PROMPT 0\n" +            timeout = kickstart.get_timeout(creator.ks) +            if not timeout: +                timeout = 0 +            syslinux_conf += "TIMEOUT " + str(timeout) + "\n" +            syslinux_conf += "\n" +            syslinux_conf += "ALLOWOPTIONS 1\n" +            syslinux_conf += "SERIAL 0 115200\n" +            syslinux_conf += "\n" +            if splashline: +                syslinux_conf += "%s\n" % splashline +            syslinux_conf += "DEFAULT boot\n" +            syslinux_conf += "LABEL boot\n" + +            kernel = "/vmlinuz" +            syslinux_conf += "KERNEL " + kernel + "\n" + +            syslinux_conf += "APPEND label=boot root=%s %s\n" % \ +                                 (creator.rootdev, options)          msger.debug("Writing syslinux config %s/hdd/boot/syslinux.cfg" \                      % cr_workdir) | 
