summaryrefslogtreecommitdiffstats
path: root/classes/override_grub-efi-cfg.inc
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2021-03-21 18:15:52 +0100
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2021-04-12 14:03:51 +0200
commita66a367e9656f0f4e2f9e9f8932714cf9bee1725 (patch)
treea5884e5b45a77d09d959d4c4a7b258adf5dd4905 /classes/override_grub-efi-cfg.inc
parenta14950444f22e7aaed1cce3c061c860572cf262f (diff)
downloadmeta-el-nfv-access-a66a367e9656f0f4e2f9e9f8932714cf9bee1725.tar.gz
classes/override_grub* sync with upstream renames
While at it, replace some hardcoded p7b extenstions with ${SB_FILE_EXT} and vmlinuz references with the appropiate variable (upstream no longer renames bzImage to vmlinuz in ISO root after [1]). [1] https://git.yoctoproject.org/cgit.cgi/poky/commit/?id=b6e36c01977 Change-Id: I5ce414a2f281ff2f1aeb0e26f35608cd8750855d Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
Diffstat (limited to 'classes/override_grub-efi-cfg.inc')
-rw-r--r--classes/override_grub-efi-cfg.inc94
1 files changed, 94 insertions, 0 deletions
diff --git a/classes/override_grub-efi-cfg.inc b/classes/override_grub-efi-cfg.inc
new file mode 100644
index 0000000..42d89b7
--- /dev/null
+++ b/classes/override_grub-efi-cfg.inc
@@ -0,0 +1,94 @@
1## ENEA_start ##
2GRUB_GRAPHICS ?= "console=tty0"
3## ENEA_end ##
4
5python build_efi_cfg() {
6 import sys
7
8 workdir = d.getVar('WORKDIR')
9 if not workdir:
10 bb.error("WORKDIR not defined, unable to package")
11 return
12
13 gfxserial = d.getVar('GRUB_GFXSERIAL') or ""
14
15 labels = d.getVar('LABELS')
16 if not labels:
17 bb.debug(1, "LABELS not defined, nothing to do")
18 return
19
20 if labels == []:
21 bb.debug(1, "No labels, nothing to do")
22 return
23
24 cfile = d.getVar('GRUB_CFG')
25 if not cfile:
26 bb.fatal('Unable to read GRUB_CFG')
27
28 try:
29 cfgfile = open(cfile, 'w')
30 except OSError:
31 bb.fatal('Unable to open %s' % cfile)
32
33 cfgfile.write('# Automatically created by OE\n')
34
35 opts = d.getVar('GRUB_OPTS')
36 if opts:
37 for opt in opts.split(';'):
38 cfgfile.write('%s\n' % opt)
39
40 cfgfile.write('default=%s\n' % (labels.split()[0]))
41
42 timeout = d.getVar('GRUB_TIMEOUT')
43 if timeout:
44 cfgfile.write('timeout=%s\n' % timeout)
45 else:
46 cfgfile.write('timeout=50\n')
47
48 root = d.getVar('GRUB_ROOT')
49 if not root:
50 bb.fatal('GRUB_ROOT not defined')
51
52 if gfxserial == "1":
53 ## ENEA_start ##
54 btypes = [ [ " serial console", d.getVar('GRUB_SERIAL') or "" ],
55 [ " graphics console", d.getVar('GRUB_GRAPHICS') or "" ] ]
56 ## ENEA_end ##
57 else:
58 btypes = [ [ "", "" ] ]
59
60 for label in labels.split():
61 localdata = d.createCopy()
62
63 overrides = localdata.getVar('OVERRIDES')
64 if not overrides:
65 bb.fatal('OVERRIDES not defined')
66
67 localdata.setVar('OVERRIDES', 'grub_' + label + ':' + overrides)
68
69 for btype in btypes:
70 cfgfile.write('\nmenuentry \'%s%s\'{\n' % (label, btype[0]))
71 lb = label
72 if label == "install":
73 lb = "install-efi"
74 kernel = localdata.getVar('KERNEL_IMAGETYPE')
75 cfgfile.write('linux /%s LABEL=%s' % (kernel, lb))
76
77 cfgfile.write(' %s' % replace_rootfs_uuid(d, root))
78
79 append = localdata.getVar('APPEND')
80 initrd = localdata.getVar('INITRD')
81
82 if append:
83 append = replace_rootfs_uuid(d, append)
84 cfgfile.write(' %s' % (append))
85
86 cfgfile.write(' %s' % btype[1])
87 cfgfile.write('\n')
88
89 if initrd:
90 cfgfile.write('initrd /initrd')
91 cfgfile.write('\n}\n')
92
93 cfgfile.close()
94}