diff options
author | Tom Zanussi <tom.zanussi@linux.intel.com> | 2014-02-03 19:16:56 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-02-04 12:56:55 +0000 |
commit | f90e4097c4e69d4f61c69923cb5d1ebb6b74d2ff (patch) | |
tree | de1cb3375782023b9207f9767dbe21a30abf425c /scripts | |
parent | f0bb47b0d7ab6520c105ce131844269172de3efd (diff) | |
download | openembedded-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.py | 6 | ||||
-rw-r--r-- | scripts/lib/mic/kickstart/__init__.py | 4 | ||||
-rw-r--r-- | scripts/lib/mic/kickstart/custom_commands/wicboot.py | 57 |
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 + |