GRUB_GRAPHICS ?= "console=tty0" python build_efi_cfg() { import sys workdir = d.getVar('WORKDIR') if not workdir: bb.error("WORKDIR not defined, unable to package") return gfxserial = d.getVar('GRUB_GFXSERIAL') or "" labels = d.getVar('LABELS') if not labels: bb.debug(1, "LABELS not defined, nothing to do") return if labels == []: bb.debug(1, "No labels, nothing to do") return cfile = d.getVar('GRUB_CFG') if not cfile: bb.fatal('Unable to read GRUB_CFG') try: cfgfile = open(cfile, 'w') except OSError: bb.fatal('Unable to open %s' % cfile) cfgfile.write('# Automatically created by OE\n') opts = d.getVar('GRUB_OPTS') if opts: for opt in opts.split(';'): cfgfile.write('%s\n' % opt) cfgfile.write('default=%s\n' % (labels.split()[0])) timeout = d.getVar('GRUB_TIMEOUT') if timeout: cfgfile.write('timeout=%s\n' % timeout) else: cfgfile.write('timeout=50\n') root = d.getVar('GRUB_ROOT') if not root: bb.fatal('GRUB_ROOT not defined') if gfxserial == "1": btypes = [ [ " serial console", d.getVar('GRUB_SERIAL') or "" ], [ " graphics console", d.getVar('GRUB_GRAPHICS') or "" ] ] else: btypes = [ [ "", "" ] ] for label in labels.split(): localdata = d.createCopy() overrides = localdata.getVar('OVERRIDES') if not overrides: bb.fatal('OVERRIDES not defined') for btype in btypes: localdata.setVar('OVERRIDES', label + ':' + overrides) cfgfile.write('\nmenuentry \'%s%s\'{\n' % (label, btype[0])) lb = label if label == "install": lb = "install-efi" cfgfile.write('linux /vmlinuz LABEL=%s' % (lb)) cfgfile.write(' %s' % replace_rootfs_uuid(d, root)) append = localdata.getVar('APPEND') initrd = localdata.getVar('INITRD') if append: append = replace_rootfs_uuid(d, append) cfgfile.write(' %s' % (append)) cfgfile.write(' %s' % btype[1]) cfgfile.write('\n') if initrd: cfgfile.write('initrd /initrd') cfgfile.write('\n}\n') cfgfile.close() }