summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorTom Zanussi <tom.zanussi@linux.intel.com>2014-02-03 19:16:56 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-02-04 12:56:55 +0000
commitf90e4097c4e69d4f61c69923cb5d1ebb6b74d2ff (patch)
treede1cb3375782023b9207f9767dbe21a30abf425c /scripts
parentf0bb47b0d7ab6520c105ce131844269172de3efd (diff)
downloadopenembedded-core-f90e4097c4e69d4f61c69923cb5d1ebb6b74d2ff.tar.gz
openembedded-core-f90e4097c4e69d4f61c69923cb5d1ebb6b74d2ff.tar.bz2
openembedded-core-f90e4097c4e69d4f61c69923cb5d1ebb6b74d2ff.zip
wic: Add wic-specific bootloader subclass
Add a new wic-specific bootloader subclass so we can add a --source param to hang non-partition plugin off of. By default, the bootloader gets the /boot partition source plugin, but this can be overridden by the --source bootloader param if needed. Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/mic/imager/direct.py6
-rw-r--r--scripts/lib/mic/kickstart/__init__.py4
-rw-r--r--scripts/lib/mic/kickstart/custom_commands/wicboot.py57
3 files changed, 65 insertions, 2 deletions
diff --git a/scripts/lib/mic/imager/direct.py b/scripts/lib/mic/imager/direct.py
index d24bc684fe..3827eb8e94 100644
--- a/scripts/lib/mic/imager/direct.py
+++ b/scripts/lib/mic/imager/direct.py
@@ -225,6 +225,12 @@ class DirectImageCreator(BaseImageCreator):
fstab = self.__write_fstab()
+ for p in parts:
+ # as a convenience, set source to the boot partition source
+ # instead of forcing it to be set via bootloader --source
+ if not self.ks.handler.bootloader.source and p.mountpoint == "/boot":
+ self.ks.handler.bootloader.source = p.source
+
self.boot_type = self.get_boot_type()
if not self.bootimg_dir:
diff --git a/scripts/lib/mic/kickstart/__init__.py b/scripts/lib/mic/kickstart/__init__.py
index 7e645caa11..72f3ca6849 100644
--- a/scripts/lib/mic/kickstart/__init__.py
+++ b/scripts/lib/mic/kickstart/__init__.py
@@ -32,7 +32,7 @@ from pykickstart.handlers.control import dataMap
from mic import msger
from mic.utils import errors, misc, runner, fs_related as fs
-from custom_commands import desktop, micrepo, micboot, partition, installerfw
+from custom_commands import desktop, micrepo, wicboot, partition, installerfw
AUTH_URL_PTN = r"(?P<scheme>.*)://(?P<username>.*)(:?P<password>.*)?@(?P<url>.*)"
@@ -98,7 +98,7 @@ def read_kickstart(path):
using_version = ksversion.DEVEL
commandMap[using_version]["desktop"] = desktop.Mic_Desktop
commandMap[using_version]["repo"] = micrepo.Mic_Repo
- commandMap[using_version]["bootloader"] = micboot.Mic_Bootloader
+ commandMap[using_version]["bootloader"] = wicboot.Wic_Bootloader
commandMap[using_version]["part"] = partition.Wic_Partition
commandMap[using_version]["partition"] = partition.Wic_Partition
commandMap[using_version]["installerfw"] = installerfw.Mic_installerfw
diff --git a/scripts/lib/mic/kickstart/custom_commands/wicboot.py b/scripts/lib/mic/kickstart/custom_commands/wicboot.py
new file mode 100644
index 0000000000..ab8871de4e
--- /dev/null
+++ b/scripts/lib/mic/kickstart/custom_commands/wicboot.py
@@ -0,0 +1,57 @@
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# Copyright (c) 2014, Intel Corporation.
+# All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# DESCRIPTION
+# This module provides the OpenEmbedded bootloader object definitions.
+#
+# AUTHORS
+# Tom Zanussi <tom.zanussi (at] linux.intel.com>
+#
+
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+from pykickstart.commands.bootloader import *
+
+from mic.kickstart.custom_commands.micboot import *
+
+class Wic_Bootloader(Mic_Bootloader):
+ def __init__(self, writePriority=10, appendLine="", driveorder=None,
+ forceLBA=False, location="", md5pass="", password="",
+ upgrade=False, menus=""):
+ Mic_Bootloader.__init__(self, writePriority, appendLine, driveorder,
+ forceLBA, location, md5pass, password, upgrade)
+
+ self.source = ""
+
+ def _getArgsAsStr(self):
+ retval = Mic_Bootloader._getArgsAsStr(self)
+
+ if self.source:
+ retval += " --source=%s" % self.source
+
+ return retval
+
+ def _getParser(self):
+ op = Mic_Bootloader._getParser(self)
+ # use specified source plugin to implement bootloader-specific methods
+ op.add_option("--source", type="string", action="store",
+ dest="source", default=None)
+ return op
+