aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-installer/anaconda/files/0013-tweak-detect-kernel-version.patch
blob: cc0e71f5c4c7abd5c7c3a1f6486c452e5056b753 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
From a6ea1bfa11c05082ee061ba1d766f79fbfc77938 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 25 Jun 2019 15:40:11 +0800
Subject: [PATCH] tweak detect kernel version

According kernel layout in oe-core, tweak the detection
rather than using redhat's.

Upstream-Status: Inappropriate [oe specific]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>

Rebase for anaconda 34.

Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
 .../modules/payloads/payload/live_os/utils.py       | 12 +++++++++---
 pyanaconda/modules/storage/bootloader/utils.py      | 21 +++++++++++++--------
 2 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/pyanaconda/modules/payloads/payload/live_os/utils.py b/pyanaconda/modules/payloads/payload/live_os/utils.py
index 9d1223801..33518723e 100644
--- a/pyanaconda/modules/payloads/payload/live_os/utils.py
+++ b/pyanaconda/modules/payloads/payload/live_os/utils.py
@@ -31,9 +31,15 @@ def get_kernel_version_list(root_path):
     :param root_path: a path to the system root
     :return: a list of kernel versions
     """
-    efi_dir = conf.bootloader.efi_dir
-    files = glob.glob(root_path + "/boot/vmlinuz-*")
-    files.extend(glob.glob(root_path + "/boot/efi/EFI/{}/vmlinuz-*".format(efi_dir)))
+    for kernel in ["vmlinux", "bzImage"]:
+        files = glob.glob(root_path + "/boot/%s-*" % kernel)
+        files.extend(glob.glob(root_path + "/boot/efi/EFI/%s/%s-*" %
+                                (conf.bootloader.efi_dir, kernel)))
+
+        versions = sorted((f.split("/")[-1][8:] for f in files if os.path.isfile(f)))
+        if versions:
+            log.info("kernel versions: %s", versions)
+            break
 
     kernel_version_list = [
         f.split("/")[-1][8:] for f in files
diff --git a/pyanaconda/modules/storage/bootloader/utils.py b/pyanaconda/modules/storage/bootloader/utils.py
index ec4239ecc..2fdf8b921 100644
--- a/pyanaconda/modules/storage/bootloader/utils.py
+++ b/pyanaconda/modules/storage/bootloader/utils.py
@@ -155,14 +155,19 @@ def _write_sysconfig_kernel(sysroot, storage):
     log.debug("Writing to /etc/sysconfig/kernel.")
 
     # get the name of the default kernel package based on the version
-    kernel_basename = "vmlinuz-" + storage.bootloader.default.version
-    kernel_file = "/boot/%s" % kernel_basename
-    if not os.path.isfile(sysroot + kernel_file):
-        efi_dir = conf.bootloader.efi_dir
-        kernel_file = "/boot/efi/EFI/%s/%s" % (efi_dir, kernel_basename)
-        if not os.path.isfile(sysroot + kernel_file):
-            log.error("failed to recreate path to default kernel image")
-            return
+    def _get_kernel_file(kernel_basename):
+        _kernel_file = "/boot/%s" % kernel_basename
+        if not os.path.isfile(sysroot + _kernel_file):
+            efi_dir = conf.bootloader.efi_dir
+            _kernel_file = "/boot/efi/EFI/%s/%s" % (efi_dir, kernel_basename)
+            if not os.path.isfile(sysroot + _kernel_file):
+                return None
+        return _kernel_file
+
+    kernel_file = _get_kernel_file("vmlinux") or _get_kernel_file("bzImage")
+    if kernel_file is None:
+        log.error("failed to recreate path to default kernel image")
+        return
 
     try:
         import rpm
-- 
2.7.4