diff options
author | Kevin Hao <kexin.hao@windriver.com> | 2018-08-20 18:42:25 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-08-21 14:49:34 +0100 |
commit | d1d80566681d4cdc00aa3d4b5e4bcf5edb7132b7 (patch) | |
tree | 568b3f645ab7462ab40063a3e18bbf5e6f5a08e5 /scripts/lib/wic | |
parent | 33f85c8bf80d70f00eeccd9ab3dfa417c0fc7df1 (diff) | |
download | openembedded-core-d1d80566681d4cdc00aa3d4b5e4bcf5edb7132b7.tar.gz openembedded-core-d1d80566681d4cdc00aa3d4b5e4bcf5edb7132b7.tar.bz2 openembedded-core-d1d80566681d4cdc00aa3d4b5e4bcf5edb7132b7.zip |
wic: bootimg-partition: Select a preferred type if multi kernel images are installed
Automatically select one kernel type image based on a predefined
precedence list if there are multi kernel images installed.
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/wic')
-rw-r--r-- | scripts/lib/wic/plugins/source/bootimg-partition.py | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/scripts/lib/wic/plugins/source/bootimg-partition.py b/scripts/lib/wic/plugins/source/bootimg-partition.py index 2e9b9f5ed6..ddc880be36 100644 --- a/scripts/lib/wic/plugins/source/bootimg-partition.py +++ b/scripts/lib/wic/plugins/source/bootimg-partition.py @@ -130,24 +130,28 @@ class BootimgPartitionPlugin(SourcePlugin): if not custom_cfg: # The kernel types supported by the sysboot of u-boot - kernel_types = ["uImage", "zImage", "Image", "vmlinux", "fitImage"] + kernel_types = ["zImage", "Image", "fitImage", "uImage", "vmlinux"] has_dtb = False fdt_dir = '/' kernel_name = None - for task in cls.install_task: - src, dst = task - # Find the kernel image name - for image in kernel_types: + + # Find the kernel image name, from the highest precedence to lowest + for image in kernel_types: + for task in cls.install_task: + src, dst = task if re.match(image, src): - if not kernel_name: - kernel_name = os.path.join('/', dst) - else: - raise WicError('Multi kernel file founded') + kernel_name = os.path.join('/', dst) + break + if kernel_name: + break + for task in cls.install_task: + src, dst = task # We suppose that all the dtb are in the same directory if re.search(r'\.dtb', src) and fdt_dir == '/': has_dtb = True fdt_dir = os.path.join(fdt_dir, os.path.dirname(dst)) + break if not kernel_name: raise WicError('No kernel file founded') |