From: Ed Bartosh <ed.bartosh@linux.intel.com>
To: mariano.lopez@linux.intel.com
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 2/2] wic: Allow to use a custom config for bootloaders
Date: Mon, 23 Nov 2015 19:37:47 +0200 [thread overview]
Message-ID: <20151123173747.GA17608@linux.intel.com> (raw)
In-Reply-To: <2d04d7f11597f6e8331b293e033aef0d36ce5f02.1447834352.git.mariano.lopez@linux.intel.com>
Hi Mariano,
Thank you for the patchset!
Would it be better to put content of configuration file into .wks
instead of just referring to it?
It would be also nice to have this code covered by oe-selftest.
Regards,
Ed
On Wed, Nov 18, 2015 at 08:25:54AM +0000, mariano.lopez@linux.intel.com wrote:
> From: Mariano Lopez <mariano.lopez@linux.intel.com>
>
> This change will allow to use a user defined file as the
> configuration for the bootloaders (grub, gummiboot, syslinux).
>
> The config file is defined in the wks file with the "configfile"
> option in the bootloader line.
>
> [YOCTO #8003]
>
> Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
> ---
> scripts/lib/wic/plugins/source/bootimg-efi.py | 66 ++++++++++++++++--------
> scripts/lib/wic/plugins/source/bootimg-pcbios.py | 66 ++++++++++++++----------
> 2 files changed, 83 insertions(+), 49 deletions(-)
>
> diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py
> index fa63c6a..8fc879e 100644
> --- a/scripts/lib/wic/plugins/source/bootimg-efi.py
> +++ b/scripts/lib/wic/plugins/source/bootimg-efi.py
> @@ -45,22 +45,33 @@ class BootimgEFIPlugin(SourcePlugin):
> """
> Create loader-specific (grub-efi) config
> """
> - 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"
> -
> - grubefi_conf += "linux %s root=%s rootwait %s\n" \
> - % (kernel, creator.rootdev, options)
> - grubefi_conf += "}\n"
> + configfile = kickstart.get_bootloader_file(creator.ks)
> +
> + if configfile and os.path.exists(configfile):
> + # Use a custom configuration file for grub
> + msger.info("Using custom configuration file "
> + "%s for grub.cfg" % configfile)
> + user_conf = open(configfile, "r")
> + grubefi_conf = user_conf.read()
> + user_conf.close()
> + else:
> + # 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"
> +
> + 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 +106,23 @@ class BootimgEFIPlugin(SourcePlugin):
> cfg.write(loader_conf)
> cfg.close()
>
> - 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)
> + configfile = kickstart.get_bootloader_file(creator.ks)
> +
> + if configfile and os.path.exists(configfile):
> + # Use a custom configuration file for gummiboot
> + msger.info("Using custom configuration file "
> + "%s for gummiboot's boot.conf" % configfile)
> + user_conf = open(configfile, "r")
> + boot_conf = user_conf.read()
> + user_conf.close()
> + else:
> + # 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)
>
> 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 96ed54d..9e21572 100644
> --- a/scripts/lib/wic/plugins/source/bootimg-pcbios.py
> +++ b/scripts/lib/wic/plugins/source/bootimg-pcbios.py
> @@ -83,34 +83,46 @@ 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"
> + configfile = kickstart.get_bootloader_file(creator.ks)
> +
> + if configfile and os.path.exists(configfile):
> + # Use a custom configuration file for syslinux
> + msger.info("Using custom configuration file "
> + "%s for syslinux.cfg" % configfile)
> + user_conf = open(configfile, "r")
> + syslinux_conf = user_conf.read()
> + user_conf.close()
> +
> 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)
> + # 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)
> --
> 1.8.4.5
>
--
--
Regards,
Ed
next prev parent reply other threads:[~2015-11-23 18:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-18 8:25 [PATCH 0/2] wic: Allow to user defined files as config for bootloaders mariano.lopez
2015-11-18 8:25 ` [PATCH 1/2] wic: Prepare wicboot to allow custom bootloader config mariano.lopez
2015-11-18 8:25 ` [PATCH 2/2] wic: Allow to use a custom config for bootloaders mariano.lopez
2015-11-23 17:37 ` Ed Bartosh [this message]
2015-11-23 22:13 ` Mariano Lopez
2015-11-24 15:43 ` Ed Bartosh
2015-11-26 14:48 ` Mariano Lopez
2015-11-26 19:23 ` Mariano Lopez
2015-11-27 12:47 ` Ed Bartosh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151123173747.GA17608@linux.intel.com \
--to=ed.bartosh@linux.intel.com \
--cc=mariano.lopez@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox