From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6551650308188012544 X-Received: by 10.28.24.75 with SMTP id 72mr2210193wmy.7.1525424958179; Fri, 04 May 2018 02:09:18 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:adf:a645:: with SMTP id k63-v6ls4927016wrc.10.gmail; Fri, 04 May 2018 02:09:17 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoikxxq6UAlbTfPC9/L82nOHOJBv1nL4LN98M+Cu4XCUbZvQtNnwViPd5kZ8OfrOojmZPJA X-Received: by 2002:adf:e3ce:: with SMTP id k14-v6mr2164996wrm.7.1525424957764; Fri, 04 May 2018 02:09:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525424957; cv=none; d=google.com; s=arc-20160816; b=Ga6V1YRs4KCPsHGhTJCrhFRzvG7HjIwOQ7Csxx26N8c0geMpWViLupxDJGSAeNuoOt HSgRxoolONDE3ylcXaOesyhudQMcmoSixmFnWbs8yez9JfN5TBwMYEcerJ0Z25jXJuBx yz6R1aU5zJDEZgBqMU5HeHz8x95L9nbVocY3+mLT2YDO4Zt6YmN6Y23UL22l7Vodo0NN gShnjaYxd1WUChVGI2Ud0iz+vBwdiewfA6924zUI0WzCgLtPXwlAf7WUObTESLy4QBM4 ytAix+rSvVQYBLiGckjCYwCbiYPwXrOzr3wZwIOD3tH5LiydDI7yXQ9PTClJ47CsNZKw f+Hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=EdAj6Ibs8MfIYCISQF7/iU+I99ZBwio54muNhEywu4w=; b=Mm41hvg4nHheAo4ubdg7ZtGaDSBC+npcNITnuNMQgxWR8ObOmnOFCxN02Re7NfXDvD 177R/C9M8aaV2u1eYX8eIQ0BJoZnHc3myOjVQD6G1CjLXiOcCHUNK6n3LR/JmaBwitym aeqLs9Mcro9flhAZH9sETNJv4uQWccO2gp2DRqHEFEGgkyzqsjA/k9doZyGUkkGLVr55 DHP2xmb+Y852fOzynBI1lIdu2GcjR4HS/JK5SXBaJCBGef9bv2N+iNItVsgQAMUklguS SVET8Nj7Y8DzDUO8Rw0b92SJz+VfJAec7UNk1+BR2GL0jDLmc8XxXosuxzWzFlVL57+T 6DRQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id y144-v6si120217wmd.3.2018.05.04.02.09.17 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 04 May 2018 02:09:17 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id w4499HEH026144 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 4 May 2018 11:09:17 +0200 Received: from md1pvb1c.ad001.siemens.net (md1pvb1c.ad001.siemens.net [139.25.68.40]) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id w4499Gjj018859; Fri, 4 May 2018 11:09:17 +0200 From: Henning Schild To: isar-users@googlegroups.com Cc: Alexander Smirnov , Henning Schild Subject: [PATCH 2/2] Revert "meta-isar: wic: Temporarily reset forked wic files to where we forked" Date: Fri, 4 May 2018 11:09:14 +0200 Message-Id: <20180504090914.14319-2-henning.schild@siemens.com> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180504090914.14319-1-henning.schild@siemens.com> References: <20180504090914.14319-1-henning.schild@siemens.com> X-TUID: 5A63JFlmvpmP This reverts commit 138f5cdaaa525768df1220ca5b18084397559854. Repair the wic support in Isar again. This commit contains all Isar-specific changes to the forked wic files. Signed-off-by: Henning Schild --- .../scripts/lib/wic/canned-wks/common-isar.wks.inc | 2 +- .../scripts/lib/wic/canned-wks/directdisk-isar.wks | 3 +- .../scripts/lib/wic/canned-wks/sdimage-efi.wks | 10 ++- .../lib/wic/plugins/source/bootimg-efi-isar.py | 76 +++++++++++++++++----- .../lib/wic/plugins/source/bootimg-pcbios-isar.py | 35 +++++----- 5 files changed, 84 insertions(+), 42 deletions(-) diff --git a/meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc b/meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc index 5cf2fd1..c8ea4c2 100644 --- a/meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc +++ b/meta-isar/scripts/lib/wic/canned-wks/common-isar.wks.inc @@ -1,3 +1,3 @@ # This file is included into 3 canned wks files from this directory -part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024 +part /boot --source bootimg-pcbios-isar --ondisk sda --label boot --active --align 1024 part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 diff --git a/meta-isar/scripts/lib/wic/canned-wks/directdisk-isar.wks b/meta-isar/scripts/lib/wic/canned-wks/directdisk-isar.wks index 8c8e06b..2b9576d 100644 --- a/meta-isar/scripts/lib/wic/canned-wks/directdisk-isar.wks +++ b/meta-isar/scripts/lib/wic/canned-wks/directdisk-isar.wks @@ -2,7 +2,6 @@ # long-description: Creates a partitioned legacy BIOS disk image that the user # can directly dd to boot media. -include common.wks.inc +include common-isar.wks.inc bootloader --timeout=0 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=tty0 console=ttyS0,115200n8" - diff --git a/meta-isar/scripts/lib/wic/canned-wks/sdimage-efi.wks b/meta-isar/scripts/lib/wic/canned-wks/sdimage-efi.wks index 9f534fe..580ad21 100644 --- a/meta-isar/scripts/lib/wic/canned-wks/sdimage-efi.wks +++ b/meta-isar/scripts/lib/wic/canned-wks/sdimage-efi.wks @@ -1,11 +1,9 @@ -# short-description: Create an EFI disk image -# long-description: Creates a partitioned EFI disk image that the user -# can directly dd to boot media. +# short-description: Create an EFI disk image without any swap +# long-description: Creates a partitioned EFI disk image without any swap that +# the user can directly dd to boot media. -part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024 +part /boot --source bootimg-efi-isar --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024 part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid -part swap --ondisk sda --size 44 --label swap1 --fstype=swap - bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 console=ttyS0,115200 console=tty0" diff --git a/meta-isar/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta-isar/scripts/lib/wic/plugins/source/bootimg-efi-isar.py index 9879cb9..fccf96c 100644 --- a/meta-isar/scripts/lib/wic/plugins/source/bootimg-efi-isar.py +++ b/meta-isar/scripts/lib/wic/plugins/source/bootimg-efi-isar.py @@ -18,7 +18,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # DESCRIPTION -# This implements the 'bootimg-efi' source plugin class for 'wic' +# This implements the 'bootimg-efi-isar' source plugin class for 'wic' # # AUTHORS # Tom Zanussi @@ -31,8 +31,7 @@ import shutil from wic import WicError from wic.engine import get_custom_config from wic.pluginbase import SourcePlugin -from wic.utils.misc import (exec_cmd, exec_native_cmd, get_bitbake_var, - BOOTDD_EXTRA_SPACE) +from wic.utils.misc import (exec_cmd, get_bitbake_var, BOOTDD_EXTRA_SPACE) logger = logging.getLogger('wic') @@ -42,7 +41,7 @@ class BootimgEFIPlugin(SourcePlugin): This plugin supports GRUB 2 and systemd-boot bootloaders. """ - name = 'bootimg-efi' + name = 'bootimg-efi-isar' @classmethod def do_configure_grubefi(cls, creator, cr_workdir): @@ -70,12 +69,18 @@ class BootimgEFIPlugin(SourcePlugin): grubefi_conf += "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1\n" grubefi_conf += "default=boot\n" grubefi_conf += "timeout=%s\n" % bootloader.timeout + grubefi_conf += "set root='hd0,gpt2'\n" grubefi_conf += "menuentry 'boot'{\n" - kernel = "/bzImage" + kernel = "/vmlinuz" grubefi_conf += "linux %s root=%s rootwait %s\n" \ - % (kernel, creator.rootdev, bootloader.append) + % (kernel, creator.rootdev, bootloader.append) + + initrd = "/initrd.img" + + grubefi_conf += "initrd %s\n" % initrd + grubefi_conf += "}\n" logger.debug("Writing grubefi config %s/hdd/boot/EFI/BOOT/grub.cfg", @@ -84,6 +89,12 @@ class BootimgEFIPlugin(SourcePlugin): cfg.write(grubefi_conf) cfg.close() + cfg = open("%s/hdd/boot/EFI/BOOT/grub-mkimage.cfg" % cr_workdir, "w") + mkimage_conf = "set root='hd0,gpt1'\n" + mkimage_conf += "set prefix=($root)/EFI/BOOT\n" + cfg.write(mkimage_conf) + cfg.close() + @classmethod def do_configure_systemdboot(cls, hdddir, creator, cr_workdir, source_params): """ @@ -135,7 +146,7 @@ class BootimgEFIPlugin(SourcePlugin): if not custom_cfg: # Create systemd-boot configuration using parameters from wks file - kernel = "/bzImage" + kernel = "/vmlinuz" boot_conf = "" boot_conf += "title boot\n" @@ -171,9 +182,9 @@ class BootimgEFIPlugin(SourcePlugin): elif source_params['loader'] == 'systemd-boot': cls.do_configure_systemdboot(hdddir, creator, cr_workdir, source_params) else: - raise WicError("unrecognized bootimg-efi loader: %s" % source_params['loader']) + raise WicError("unrecognized bootimg-efi-isar loader: %s" % source_params['loader']) except KeyError: - raise WicError("bootimg-efi requires a loader, none specified") + raise WicError("bootimg-efi-isar requires a loader, none specified") @classmethod @@ -194,29 +205,58 @@ class BootimgEFIPlugin(SourcePlugin): hdddir = "%s/hdd/boot" % cr_workdir - install_cmd = "install -m 0644 %s/bzImage %s/bzImage" % \ - (staging_kernel_dir, hdddir) - exec_cmd(install_cmd) - - try: if source_params['loader'] == 'grub-efi': shutil.copyfile("%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir, "%s/grub.cfg" % cr_workdir) + shutil.copyfile("%s/hdd/boot/EFI/BOOT/grub-mkimage.cfg" % cr_workdir, + "%s/grub-mkimage.cfg" % cr_workdir) for mod in [x for x in os.listdir(kernel_dir) if x.startswith("grub-efi-")]: cp_cmd = "cp %s/%s %s/EFI/BOOT/%s" % (kernel_dir, mod, hdddir, mod[9:]) exec_cmd(cp_cmd, True) shutil.move("%s/grub.cfg" % cr_workdir, "%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir) + + distro_arch = get_bitbake_var("DISTRO_ARCH") + if not distro_arch: + raise WicError("Couldn't find target architecture") + + if distro_arch == "amd64": + grub_target = 'x86_64-efi' + grub_image = "bootx64.efi" + elif distro_arch == "i386": + grub_target = 'i386-efi' + grub_image = "bootia32.efi" + else: + raise WicError("grub-efi is incompatible with target %s" % + distro_arch) + + bootimg_dir = "%s/hdd/boot" % cr_workdir + if not os.path.isfile("%s/EFI/BOOT/%s" \ + % (bootimg_dir, grub_image)): + + # TODO: check that grub-mkimage is available + grub_cmd = "grub-mkimage -p /EFI/BOOT " + grub_cmd += "-c %s/grub-mkimage.cfg " % cr_workdir + grub_cmd += "-O %s -o %s/EFI/BOOT/%s " \ + % (grub_target, bootimg_dir, grub_image) + grub_cmd += "part_gpt part_msdos ntfs ntfscomp fat ext2 " + grub_cmd += "normal chain boot configfile linux multiboot " + grub_cmd += "search efi_gop efi_uga font gfxterm gfxmenu " + grub_cmd += "terminal minicmd test iorw loadenv echo help " + grub_cmd += "reboot serial terminfo iso9660 loopback tar " + grub_cmd += "memdisk ls search_fs_uuid udf btrfs xfs lvm " + grub_cmd += "reiserfs ata " + exec_cmd(grub_cmd) elif source_params['loader'] == 'systemd-boot': for mod in [x for x in os.listdir(kernel_dir) if x.startswith("systemd-")]: cp_cmd = "cp %s/%s %s/EFI/BOOT/%s" % (kernel_dir, mod, hdddir, mod[8:]) exec_cmd(cp_cmd, True) else: - raise WicError("unrecognized bootimg-efi loader: %s" % + raise WicError("unrecognized bootimg-efi-isar loader: %s" % source_params['loader']) except KeyError: - raise WicError("bootimg-efi requires a loader, none specified") + raise WicError("bootimg-efi-isar requires a loader, none specified") startup = os.path.join(kernel_dir, "startup.nsh") if os.path.exists(startup): @@ -241,10 +281,10 @@ class BootimgEFIPlugin(SourcePlugin): bootimg = "%s/boot.img" % cr_workdir dosfs_cmd = "mkdosfs -n efi -C %s %d" % (bootimg, blocks) - exec_native_cmd(dosfs_cmd, native_sysroot) + exec_cmd(dosfs_cmd) mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir) - exec_native_cmd(mcopy_cmd, native_sysroot) + exec_cmd(mcopy_cmd, True) chmod_cmd = "chmod 644 %s" % bootimg exec_cmd(chmod_cmd) diff --git a/meta-isar/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py b/meta-isar/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py index 11db304..0423862 100644 --- a/meta-isar/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py +++ b/meta-isar/scripts/lib/wic/plugins/source/bootimg-pcbios-isar.py @@ -18,7 +18,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # DESCRIPTION -# This implements the 'bootimg-pcbios' source plugin class for 'wic' +# This implements the 'bootimg-pcbios-isar' source plugin class for 'wic' # # AUTHORS # Tom Zanussi @@ -36,12 +36,12 @@ from wic.utils.misc import (exec_cmd, exec_native_cmd, logger = logging.getLogger('wic') -class BootimgPcbiosPlugin(SourcePlugin): +class BootimgPcbiosIsarPlugin(SourcePlugin): """ Create MBR boot partition and install syslinux on it. """ - name = 'bootimg-pcbios' + name = 'bootimg-pcbios-isar' @classmethod def _get_syslinux_dir(cls, bootimg_dir): @@ -67,9 +67,9 @@ class BootimgPcbiosPlugin(SourcePlugin): """ syslinux_dir = cls._get_syslinux_dir(bootimg_dir) if creator.ptable_format == 'msdos': - mbrfile = os.path.join(syslinux_dir, "mbr.bin") + mbrfile = os.path.join(syslinux_dir, "mbr/mbr.bin") elif creator.ptable_format == 'gpt': - mbrfile = os.path.join(syslinux_dir, "gptmbr.bin") + mbrfile = os.path.join(syslinux_dir, "mbr/gptmbr.bin") else: raise WicError("Unsupported partition table: %s" % creator.ptable_format) @@ -134,11 +134,12 @@ class BootimgPcbiosPlugin(SourcePlugin): syslinux_conf += "DEFAULT boot\n" syslinux_conf += "LABEL boot\n" - kernel = "/vmlinuz" + kernel = get_bitbake_var("KERNEL_IMAGE") + initrd = get_bitbake_var("INITRD_IMAGE") syslinux_conf += "KERNEL " + kernel + "\n" - syslinux_conf += "APPEND label=boot root=%s %s\n" % \ - (creator.rootdev, bootloader.append) + syslinux_conf += "APPEND label=boot root=%s initrd=%s %s\n" % \ + (creator.rootdev, initrd, bootloader.append) logger.debug("Writing syslinux config %s/hdd/boot/syslinux.cfg", cr_workdir) @@ -158,18 +159,22 @@ class BootimgPcbiosPlugin(SourcePlugin): syslinux_dir = cls._get_syslinux_dir(bootimg_dir) staging_kernel_dir = kernel_dir + kernel = get_bitbake_var("KERNEL_IMAGE") + initrd = get_bitbake_var("INITRD_IMAGE") hdddir = "%s/hdd/boot" % cr_workdir - cmds = ("install -m 0644 %s/bzImage %s/vmlinuz" % - (staging_kernel_dir, hdddir), - "install -m 444 %s/ldlinux.sys %s/ldlinux.sys" % + cmds = ("install -m 0644 %s/%s %s/%s" % + (staging_kernel_dir, kernel, hdddir, kernel), + "install -m 0644 %s/%s %s/%s" % + (staging_kernel_dir, initrd, hdddir, initrd), + "install -m 444 %s/modules/bios/ldlinux.c32 %s/ldlinux.c32" % (syslinux_dir, hdddir), - "install -m 0644 %s/vesamenu.c32 %s/vesamenu.c32" % + "install -m 0644 %s/modules/bios/vesamenu.c32 %s/vesamenu.c32" % (syslinux_dir, hdddir), - "install -m 444 %s/libcom32.c32 %s/libcom32.c32" % + "install -m 444 %s/modules/bios/libcom32.c32 %s/libcom32.c32" % (syslinux_dir, hdddir), - "install -m 444 %s/libutil.c32 %s/libutil.c32" % + "install -m 444 %s/modules/bios/libutil.c32 %s/libutil.c32" % (syslinux_dir, hdddir)) for install_cmd in cmds: @@ -196,7 +201,7 @@ class BootimgPcbiosPlugin(SourcePlugin): exec_native_cmd(dosfs_cmd, native_sysroot) mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir) - exec_native_cmd(mcopy_cmd, native_sysroot) + exec_cmd(mcopy_cmd, native_sysroot) syslinux_cmd = "syslinux %s" % bootimg exec_native_cmd(syslinux_cmd, native_sysroot) -- 2.16.1