summaryrefslogtreecommitdiffstats
path: root/scripts/lib/wic/plugins/source/bootimg-pcbios.py
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2015-12-01 07:43:35 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-12-09 08:48:24 +0000
commit70338732ac7d6cf8a012e6861c316bcbd66e1328 (patch)
treeffad4916a8735fd07161a94e32954e2b31d50086 /scripts/lib/wic/plugins/source/bootimg-pcbios.py
parentf95f729518296177a6280a6e19a0c1433d499710 (diff)
downloadpoky-70338732ac7d6cf8a012e6861c316bcbd66e1328.tar.gz
wic: Allow to use a custom config for bootloaders
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 #8728] (From OE-Core rev: d56546b0f312fd042b1a7df3bef97ac1c9b6a5b4) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/wic/plugins/source/bootimg-pcbios.py')
-rw-r--r--scripts/lib/wic/plugins/source/bootimg-pcbios.py72
1 files changed, 44 insertions, 28 deletions
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
29from wic.utils.errors import ImageError 29from wic.utils.errors import ImageError
30from wic import kickstart, msger 30from wic import kickstart, msger
31from wic.utils import runner 31from wic.utils import runner
32from wic.utils.misc import get_custom_config
32from wic.pluginbase import SourcePlugin 33from wic.pluginbase import SourcePlugin
33from wic.utils.oe.misc import exec_cmd, exec_native_cmd, \ 34from wic.utils.oe.misc import exec_cmd, exec_native_cmd, \
34 get_bitbake_var, BOOTDD_EXTRA_SPACE 35 get_bitbake_var, BOOTDD_EXTRA_SPACE
@@ -83,34 +84,49 @@ class BootimgPcbiosPlugin(SourcePlugin):
83 install_cmd = "install -d %s" % hdddir 84 install_cmd = "install -d %s" % hdddir
84 exec_cmd(install_cmd) 85 exec_cmd(install_cmd)
85 86
86 splash = os.path.join(cr_workdir, "/hdd/boot/splash.jpg") 87 configfile = kickstart.get_bootloader_file(creator.ks)
87 if os.path.exists(splash): 88 custom_cfg = None
88 splashline = "menu background splash.jpg" 89 if configfile:
89 else: 90 custom_cfg = get_custom_config(configfile)
90 splashline = "" 91 if custom_cfg:
91 92 # Use a custom configuration for grub
92 options = creator.ks.handler.bootloader.appendLine 93 syslinux_conf = custom_cfg
93 94 msger.debug("Using custom configuration file "
94 syslinux_conf = "" 95 "%s for syslinux.cfg" % configfile)
95 syslinux_conf += "PROMPT 0\n" 96 else:
96 timeout = kickstart.get_timeout(creator.ks) 97 msger.error("configfile is specified but failed to "
97 if not timeout: 98 "get it from %s." % configfile)
98 timeout = 0 99
99 syslinux_conf += "TIMEOUT " + str(timeout) + "\n" 100 if not custom_cfg:
100 syslinux_conf += "\n" 101 # Create syslinux configuration using parameters from wks file
101 syslinux_conf += "ALLOWOPTIONS 1\n" 102 splash = os.path.join(cr_workdir, "/hdd/boot/splash.jpg")
102 syslinux_conf += "SERIAL 0 115200\n" 103 if os.path.exists(splash):
103 syslinux_conf += "\n" 104 splashline = "menu background splash.jpg"
104 if splashline: 105 else:
105 syslinux_conf += "%s\n" % splashline 106 splashline = ""
106 syslinux_conf += "DEFAULT boot\n" 107
107 syslinux_conf += "LABEL boot\n" 108 options = creator.ks.handler.bootloader.appendLine
108 109
109 kernel = "/vmlinuz" 110 syslinux_conf = ""
110 syslinux_conf += "KERNEL " + kernel + "\n" 111 syslinux_conf += "PROMPT 0\n"
111 112 timeout = kickstart.get_timeout(creator.ks)
112 syslinux_conf += "APPEND label=boot root=%s %s\n" % \ 113 if not timeout:
113 (creator.rootdev, options) 114 timeout = 0
115 syslinux_conf += "TIMEOUT " + str(timeout) + "\n"
116 syslinux_conf += "\n"
117 syslinux_conf += "ALLOWOPTIONS 1\n"
118 syslinux_conf += "SERIAL 0 115200\n"
119 syslinux_conf += "\n"
120 if splashline:
121 syslinux_conf += "%s\n" % splashline
122 syslinux_conf += "DEFAULT boot\n"
123 syslinux_conf += "LABEL boot\n"
124
125 kernel = "/vmlinuz"
126 syslinux_conf += "KERNEL " + kernel + "\n"
127
128 syslinux_conf += "APPEND label=boot root=%s %s\n" % \
129 (creator.rootdev, options)
114 130
115 msger.debug("Writing syslinux config %s/hdd/boot/syslinux.cfg" \ 131 msger.debug("Writing syslinux config %s/hdd/boot/syslinux.cfg" \
116 % cr_workdir) 132 % cr_workdir)