From patchwork Tue Jan 21 10:12:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4017 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 21 Jan 2025 11:13:09 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-ed1-f61.google.com (mail-ed1-f61.google.com [209.85.208.61]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 50LAD8dY025864 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 21 Jan 2025 11:13:08 +0100 Received: by mail-ed1-f61.google.com with SMTP id 4fb4d7f45d1cf-5d40c0c728asf4678727a12.2 for ; Tue, 21 Jan 2025 02:13:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1737454383; cv=pass; d=google.com; s=arc-20240605; b=RKESSKE9lIYW8a0ssK/ajbe9vDl46xIGViO6tokJUhES+nJqQ/isGqWabUI6v10O20 dGZWVGtEkCEXlahAnqrg6t9tkZ7L+FrBu0rjcotdmuR7azB3qHY3hRbICN/Q6jbAgDCc NZCu6QYF3UR7OsQGEijdwjRV+aKOHYMA7GgZxVX3GE57th1RzzHuMrJq9/RiS+jNu8gd 4xzYkkbY4f7DBZn0Z7VVWb/Wg6iV3SXsYmKT5cleebv2Ce4KJivt2TKYEtmXmZa3jB7X UPIi4cx3j9KGpuDyWvF4Ulpp0Qadg7Wu0lTIubyflCBMJatfUirS1cyuuzcGYqHqZ9KY xCOw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=dAvGhqjg87kRGlsLJK9s05JEQmU4qoeVnxHKBMlfG2Y=; fh=P8WgNc2xB3dCmR0niYdgRSAuh4rRU7rbBsPhP/oeiuw=; b=bMTlSmTjOpjK7UK4PCuy+P74sRqgcZB8ADe3ietkkmze6YCLPtjrH9nBekghyA5b3U D2JJT9o2o4ul+nKUY38uQlvZEOBplQqVbU2M8/RsXY5m7YmZ3BZwYRV8Wgupdbx587Uo zQkbpq9/kThge4pS+p0fxWdbFEmLaejSmm7QkBggPMhGW+F14SJyahZPx3T2oX0CPU3s CXKkLROttdUOS0EXerDLnrli3AhXlHGqLtVPNQDIJsqfr8jGoedI0hjydUTRvz/PLceV qfo/mtYhyeMa5u5Dl1a/brWwoy5ZyjXjrmvtRzdckfnCaXGoctZMUgNA6MGF6kFMNFQn xnEw==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=VmJH0oYi; spf=pass (google.com: domain of fm-1321639-202501211012583927a64300088ffb29-fvi2lc@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-1321639-202501211012583927a64300088ffb29-FvI2LC@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1737454383; x=1738059183; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=dAvGhqjg87kRGlsLJK9s05JEQmU4qoeVnxHKBMlfG2Y=; b=O54duvI1u/NQlfFmYnpQ0hx8oeZZq1bcdiQ+QssEwWl2cN2qWYQmbPYQ1lLG29GDp9 7P5oaq6wJj65XoidQyb8TlILQm/No1cNANBldLF1IUWORTDB5mzTbNvlvznKujYkVguR RSeIOQipJmxlMEw4XBvYYITtTuP/hHfTFjF5MDfM7kjVBtksj4/z9uychQ+mhmneoO9J D5gtf4JlzXs+j1YMidaWUZra9f6/xSV5YscELXoTRkK1GgKvt0DiDnJFhmbZztCvXz9N YGqZJOJwAiPmLiCVcyVxdxdDSlw2ZPiIqkZql1nJOkNuSe+IjSYOIDUNAOUJXGblqYjq 83sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737454383; x=1738059183; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dAvGhqjg87kRGlsLJK9s05JEQmU4qoeVnxHKBMlfG2Y=; b=j+nISTUT3zyK41dO21PItVznbovuIyIlehHwuHlG3RXBeB7db8/XX7lC1BPzS6h5Bn FYCuphxwqY2xlrSa7KyFfui54uRW2vP5009kSsrWRj4ir9pZCUP2HjcExdpJV8cSN5kE KII17nOkqdmmXGU4iITir/2Vwyew/PcXijewAOr2Gk1ulb4lP/RcP8p0Cg7VwcBptZRm cOLjEWoAK5x/iDaK5Cp6IN+upSchgIGM6Cm9fu3KXVQIXXG79oB6t0EWn9AWmWKALYFC UQvlGOocTZYsw34uRj9Bu1phyytkiEm0UnpSMbOBxHMHhaDrnLuqX/uh29oODfxKF2/z /gDg== X-Forwarded-Encrypted: i=2; AJvYcCVtPpuvwKvxLus+oWG1ZDRsLSicTAFO+5XBrHQ8czatcvjgei/F2fH8Kd4PoVngMGTw5drmWL8=@isar-build.org X-Gm-Message-State: AOJu0Ywg1SBa+qBP97YTwK5Xf0aFo6t9HOB0bjE0SZdZsUGf/2KwGulG KinHwccbgANrUUo7MsIUxyLOOFktTf1ZD2iAjMkgWrslYMW9BsP6 X-Google-Smtp-Source: AGHT+IHDrx/Wcy4sGa+dbnTtIxOL/gK2otnACY05p08sK5cwAQeDAfkWQnnVIOZPOcMgUkVb61DbeA== X-Received: by 2002:a05:6402:3487:b0:5d0:fb56:3f with SMTP id 4fb4d7f45d1cf-5db7d2f5b5cmr34360573a12.12.1737454382024; Tue, 21 Jan 2025 02:13:02 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a50:c043:0:b0:5d3:d2b9:4c4 with SMTP id 4fb4d7f45d1cf-5dbb7238310ls49732a12.0.-pod-prod-05-eu; Tue, 21 Jan 2025 02:12:59 -0800 (PST) X-Received: by 2002:a05:6402:2109:b0:5d0:e73c:b7f0 with SMTP id 4fb4d7f45d1cf-5db7db2a0fbmr41509017a12.28.1737454379295; Tue, 21 Jan 2025 02:12:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1737454379; cv=none; d=google.com; s=arc-20240605; b=jtDUTp2oHI39yaOEz8Aa6AxxWggSVkrJa69DEC3Z67yXwEXS0k5OAVdIhvmq9UhDlY gbpbhpskJYXHCvV0AsXvWoFhGglNRaxFaVF8AIwhrXrT78P/Kq09cwDC99MQf/hVT5Ks 7rw+y+bw5O6CwcQsY+vqY1YEVTfxI4qLcZiB3yTTC2aqqqk00yxLe0l/G7f3FSoqOXC9 6eiJLq5RNcu7g47FLiOwF+RMSgzdmJP/cnJ8iew0zql/iksg7Og70D+SaJQeHzDIeGBY s6DGTcCJtSe5zwTEDdbzOIU1DkDlYI5eKi4nVuW3gEFj5UFNEr1jJ9JAZB2J2EZke/CW nhXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=Vs3Qj/nDeJBb10g5eS8UIX3z8arm/0gf4ijoqNpaK4M=; fh=Bo8ZbdhPy/JbmTSxHxcgeG9JPAXIanSEMBVfErZw+70=; b=eJTLfclh2ivfbNm7zwI1T6oWo4rtG7tO9vdKxFePcyHt0iUQrVLHcsFNGdPKNlmF6r qE+/XzwvvsIS/rxT+4mxwfiVCqhyH0DfUlFUlZAOkH6TmicfG1bTlXtTyffkCMjqplCo ckIxM3MrQN4ftU16LukEqhzYT9yTxWg16dpbzK1M8qiZQf1DdSOugYO6zgnssbvH7BEs gOX7XZpihqWUppjF09e2eWMSAQOWtdVdor3pZ2N9za5i1Jpv+tcdq6zM1eaDX8p8J8UH BKhxhxZgj/muF0uKgZrBTmjN7jzDgRhnwNIRpV3UOxQQ3spGNWD3+tRmnO2U9AN8FRu4 hKew==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=VmJH0oYi; spf=pass (google.com: domain of fm-1321639-202501211012583927a64300088ffb29-fvi2lc@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-1321639-202501211012583927a64300088ffb29-FvI2LC@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-228.siemens.flowmailer.net (mta-64-228.siemens.flowmailer.net. [185.136.64.228]) by gmr-mx.google.com with ESMTPS id 4fb4d7f45d1cf-5db7365461bsi154787a12.2.2025.01.21.02.12.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Jan 2025 02:12:59 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1321639-202501211012583927a64300088ffb29-fvi2lc@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) client-ip=185.136.64.228; Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 202501211012583927a64300088ffb29 for ; Tue, 21 Jan 2025 11:12:58 +0100 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: clara.kowalsky@siemens.com, florian.bezdeka@siemens.com, jan.kiszka@siemens.com, Felix Moessbauer Subject: [PATCH 1/5] Import isoimage-isohybrid from oe Date: Tue, 21 Jan 2025 11:12:48 +0100 Message-ID: <20250121101252.324899-2-felix.moessbauer@siemens.com> In-Reply-To: <20250121101252.324899-1-felix.moessbauer@siemens.com> References: <20250121101252.324899-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1321639:519-21489:flowmailer X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=VmJH0oYi; spf=pass (google.com: domain of fm-1321639-202501211012583927a64300088ffb29-fvi2lc@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-1321639-202501211012583927a64300088ffb29-FvI2LC@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= OE-core Revision: b85a09ea450a5e8f49418f4a930805fbb88dc83b Signed-off-by: Felix Moessbauer --- .../plugins/source/isoimage-isohybrid-isar.py | 461 ++++++++++++++++++ 1 file changed, 461 insertions(+) create mode 100644 meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py diff --git a/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py new file mode 100644 index 00000000..afc9ea0f --- /dev/null +++ b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py @@ -0,0 +1,461 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# +# DESCRIPTION +# This implements the 'isoimage-isohybrid' source plugin class for 'wic' +# +# AUTHORS +# Mihaly Varga + +import glob +import logging +import os +import re +import shutil + +from wic import WicError +from wic.engine import get_custom_config +from wic.pluginbase import SourcePlugin +from wic.misc import exec_cmd, exec_native_cmd, get_bitbake_var + +logger = logging.getLogger('wic') + +class IsoImagePlugin(SourcePlugin): + """ + Create a bootable ISO image + + This plugin creates a hybrid, legacy and EFI bootable ISO image. The + generated image can be used on optical media as well as USB media. + + Legacy boot uses syslinux and EFI boot uses grub or gummiboot (not + implemented yet) as bootloader. The plugin creates the directories required + by bootloaders and populates them by creating and configuring the + bootloader files. + + Example kickstart file: + part /boot --source isoimage-isohybrid --sourceparams="loader=grub-efi, \\ + image_name= IsoImage" --ondisk cd --label LIVECD + bootloader --timeout=10 --append=" " + + In --sourceparams "loader" specifies the bootloader used for booting in EFI + mode, while "image_name" specifies the name of the generated image. In the + example above, wic creates an ISO image named IsoImage-cd.direct (default + extension added by direct imeger plugin) and a file named IsoImage-cd.iso + """ + + name = 'isoimage-isohybrid' + + @classmethod + def do_configure_syslinux(cls, creator, cr_workdir): + """ + Create loader-specific (syslinux) config + """ + splash = os.path.join(cr_workdir, "ISO/boot/splash.jpg") + if os.path.exists(splash): + splashline = "menu background splash.jpg" + else: + splashline = "" + + bootloader = creator.ks.bootloader + + syslinux_conf = "" + syslinux_conf += "PROMPT 0\n" + syslinux_conf += "TIMEOUT %s \n" % (bootloader.timeout or 10) + syslinux_conf += "\n" + syslinux_conf += "ALLOWOPTIONS 1\n" + syslinux_conf += "SERIAL 0 115200\n" + syslinux_conf += "\n" + if splashline: + syslinux_conf += "%s\n" % splashline + syslinux_conf += "DEFAULT boot\n" + syslinux_conf += "LABEL boot\n" + + kernel = get_bitbake_var("KERNEL_IMAGETYPE") + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) + + syslinux_conf += "KERNEL /" + kernel + "\n" + syslinux_conf += "APPEND initrd=/initrd LABEL=boot %s\n" \ + % bootloader.append + + logger.debug("Writing syslinux config %s/ISO/isolinux/isolinux.cfg", + cr_workdir) + + with open("%s/ISO/isolinux/isolinux.cfg" % cr_workdir, "w") as cfg: + cfg.write(syslinux_conf) + + @classmethod + def do_configure_grubefi(cls, part, creator, target_dir): + """ + Create loader-specific (grub-efi) config + """ + configfile = creator.ks.bootloader.configfile + if configfile: + grubefi_conf = get_custom_config(configfile) + if grubefi_conf: + logger.debug("Using custom configuration file %s for grub.cfg", + configfile) + else: + raise WicError("configfile is specified " + "but failed to get it from %s", configfile) + else: + splash = os.path.join(target_dir, "splash.jpg") + if os.path.exists(splash): + splashline = "menu background splash.jpg" + else: + splashline = "" + + bootloader = creator.ks.bootloader + + grubefi_conf = "" + grubefi_conf += "serial --unit=0 --speed=115200 --word=8 " + grubefi_conf += "--parity=no --stop=1\n" + grubefi_conf += "default=boot\n" + grubefi_conf += "timeout=%s\n" % (bootloader.timeout or 10) + grubefi_conf += "\n" + grubefi_conf += "search --set=root --label %s " % part.label + grubefi_conf += "\n" + grubefi_conf += "menuentry 'boot'{\n" + + kernel = get_bitbake_var("KERNEL_IMAGETYPE") + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) + + grubefi_conf += "linux /%s rootwait %s\n" \ + % (kernel, bootloader.append) + grubefi_conf += "initrd /initrd \n" + grubefi_conf += "}\n" + + if splashline: + grubefi_conf += "%s\n" % splashline + + cfg_path = os.path.join(target_dir, "grub.cfg") + logger.debug("Writing grubefi config %s", cfg_path) + + with open(cfg_path, "w") as cfg: + cfg.write(grubefi_conf) + + @staticmethod + def _build_initramfs_path(rootfs_dir, cr_workdir): + """ + Create path for initramfs image + """ + + initrd = get_bitbake_var("INITRD_LIVE") or get_bitbake_var("INITRD") + if not initrd: + initrd_dir = get_bitbake_var("DEPLOY_DIR_IMAGE") + if not initrd_dir: + raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting.") + + image_name = get_bitbake_var("IMAGE_BASENAME") + if not image_name: + raise WicError("Couldn't find IMAGE_BASENAME, exiting.") + + image_type = get_bitbake_var("INITRAMFS_FSTYPES") + if not image_type: + raise WicError("Couldn't find INITRAMFS_FSTYPES, exiting.") + + machine = os.path.basename(initrd_dir) + + pattern = '%s/%s*%s.%s' % (initrd_dir, image_name, machine, image_type) + files = glob.glob(pattern) + if files: + initrd = files[0] + + if not initrd or not os.path.exists(initrd): + # Create initrd from rootfs directory + initrd = "%s/initrd.cpio.gz" % cr_workdir + initrd_dir = "%s/INITRD" % cr_workdir + shutil.copytree("%s" % rootfs_dir, \ + "%s" % initrd_dir, symlinks=True) + + if os.path.isfile("%s/init" % rootfs_dir): + shutil.copy2("%s/init" % rootfs_dir, "%s/init" % initrd_dir) + elif os.path.lexists("%s/init" % rootfs_dir): + os.symlink(os.readlink("%s/init" % rootfs_dir), \ + "%s/init" % initrd_dir) + elif os.path.isfile("%s/sbin/init" % rootfs_dir): + shutil.copy2("%s/sbin/init" % rootfs_dir, \ + "%s" % initrd_dir) + elif os.path.lexists("%s/sbin/init" % rootfs_dir): + os.symlink(os.readlink("%s/sbin/init" % rootfs_dir), \ + "%s/init" % initrd_dir) + else: + raise WicError("Couldn't find or build initrd, exiting.") + + exec_cmd("cd %s && find . | cpio -o -H newc -R root:root >%s/initrd.cpio " \ + % (initrd_dir, cr_workdir), as_shell=True) + exec_cmd("gzip -f -9 %s/initrd.cpio" % cr_workdir, as_shell=True) + shutil.rmtree(initrd_dir) + + return initrd + + @classmethod + def do_configure_partition(cls, part, source_params, creator, cr_workdir, + oe_builddir, bootimg_dir, kernel_dir, + native_sysroot): + """ + Called before do_prepare_partition(), creates loader-specific config + """ + isodir = "%s/ISO/" % cr_workdir + + if os.path.exists(isodir): + shutil.rmtree(isodir) + + install_cmd = "install -d %s " % isodir + exec_cmd(install_cmd) + + # Overwrite the name of the created image + logger.debug(source_params) + if 'image_name' in source_params and \ + source_params['image_name'].strip(): + creator.name = source_params['image_name'].strip() + logger.debug("The name of the image is: %s", creator.name) + + @staticmethod + def _install_payload(source_params, iso_dir): + """ + Copies contents of payload directory (as specified in 'payload_dir' param) into iso_dir + """ + + if source_params.get('payload_dir'): + payload_dir = source_params['payload_dir'] + + logger.debug("Payload directory: %s", payload_dir) + shutil.copytree(payload_dir, iso_dir, symlinks=True, dirs_exist_ok=True) + + @classmethod + def do_prepare_partition(cls, part, source_params, creator, cr_workdir, + oe_builddir, bootimg_dir, kernel_dir, + rootfs_dir, native_sysroot): + """ + Called to do the actual content population for a partition i.e. it + 'prepares' the partition to be incorporated into the image. + In this case, prepare content for a bootable ISO image. + """ + + isodir = "%s/ISO" % cr_workdir + + cls._install_payload(source_params, isodir) + + if part.rootfs_dir is None: + if not 'ROOTFS_DIR' in rootfs_dir: + raise WicError("Couldn't find --rootfs-dir, exiting.") + rootfs_dir = rootfs_dir['ROOTFS_DIR'] + else: + if part.rootfs_dir in rootfs_dir: + rootfs_dir = rootfs_dir[part.rootfs_dir] + elif part.rootfs_dir: + rootfs_dir = part.rootfs_dir + else: + raise WicError("Couldn't find --rootfs-dir=%s connection " + "or it is not a valid path, exiting." % + part.rootfs_dir) + + if not os.path.isdir(rootfs_dir): + rootfs_dir = get_bitbake_var("IMAGE_ROOTFS") + if not os.path.isdir(rootfs_dir): + raise WicError("Couldn't find IMAGE_ROOTFS, exiting.") + + part.rootfs_dir = rootfs_dir + deploy_dir = get_bitbake_var("DEPLOY_DIR_IMAGE") + img_iso_dir = get_bitbake_var("ISODIR") + + # Remove the temporary file created by part.prepare_rootfs() + if os.path.isfile(part.source_file): + os.remove(part.source_file) + + # Support using a different initrd other than default + if source_params.get('initrd'): + initrd = source_params['initrd'] + if not deploy_dir: + raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting") + cp_cmd = "cp %s/%s %s" % (deploy_dir, initrd, cr_workdir) + exec_cmd(cp_cmd) + else: + # Prepare initial ramdisk + initrd = "%s/initrd" % deploy_dir + if not os.path.isfile(initrd): + initrd = "%s/initrd" % img_iso_dir + if not os.path.isfile(initrd): + initrd = cls._build_initramfs_path(rootfs_dir, cr_workdir) + + install_cmd = "install -m 0644 %s %s/initrd" % (initrd, isodir) + exec_cmd(install_cmd) + + # Remove the temporary file created by _build_initramfs_path function + if os.path.isfile("%s/initrd.cpio.gz" % cr_workdir): + os.remove("%s/initrd.cpio.gz" % cr_workdir) + + kernel = get_bitbake_var("KERNEL_IMAGETYPE") + if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": + if get_bitbake_var("INITRAMFS_IMAGE"): + kernel = "%s-%s.bin" % \ + (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) + + install_cmd = "install -m 0644 %s/%s %s/%s" % \ + (kernel_dir, kernel, isodir, kernel) + exec_cmd(install_cmd) + + #Create bootloader for efi boot + try: + target_dir = "%s/EFI/BOOT" % isodir + if os.path.exists(target_dir): + shutil.rmtree(target_dir) + + os.makedirs(target_dir) + + if source_params['loader'] == 'grub-efi': + # Builds bootx64.efi/bootia32.efi if ISODIR didn't exist or + # didn't contains it + target_arch = get_bitbake_var("TARGET_SYS") + if not target_arch: + raise WicError("Coludn't find target architecture") + + if re.match("x86_64", target_arch): + grub_src_image = "grub-efi-bootx64.efi" + grub_dest_image = "bootx64.efi" + elif re.match('i.86', target_arch): + grub_src_image = "grub-efi-bootia32.efi" + grub_dest_image = "bootia32.efi" + else: + raise WicError("grub-efi is incompatible with target %s" % + target_arch) + + grub_target = os.path.join(target_dir, grub_dest_image) + if not os.path.isfile(grub_target): + grub_src = os.path.join(deploy_dir, grub_src_image) + if not os.path.exists(grub_src): + raise WicError("Grub loader %s is not found in %s. " + "Please build grub-efi first" % (grub_src_image, deploy_dir)) + shutil.copy(grub_src, grub_target) + + if not os.path.isfile(os.path.join(target_dir, "boot.cfg")): + cls.do_configure_grubefi(part, creator, target_dir) + + else: + raise WicError("unrecognized bootimg-efi loader: %s" % + source_params['loader']) + except KeyError: + raise WicError("bootimg-efi requires a loader, none specified") + + # Create efi.img that contains bootloader files for EFI booting + # if ISODIR didn't exist or didn't contains it + if os.path.isfile("%s/efi.img" % img_iso_dir): + install_cmd = "install -m 0644 %s/efi.img %s/efi.img" % \ + (img_iso_dir, isodir) + exec_cmd(install_cmd) + else: + # Default to 100 blocks of extra space for file system overhead + esp_extra_blocks = int(source_params.get('esp_extra_blocks', '100')) + + du_cmd = "du -bks %s/EFI" % isodir + out = exec_cmd(du_cmd) + blocks = int(out.split()[0]) + blocks += esp_extra_blocks + logger.debug("Added 100 extra blocks to %s to get to %d " + "total blocks", part.mountpoint, blocks) + + # dosfs image for EFI boot + bootimg = "%s/efi.img" % isodir + + esp_label = source_params.get('esp_label', 'EFIimg') + + dosfs_cmd = 'mkfs.vfat -n \'%s\' -S 512 -C %s %d' \ + % (esp_label, bootimg, blocks) + exec_native_cmd(dosfs_cmd, native_sysroot) + + mmd_cmd = "mmd -i %s ::/EFI" % bootimg + exec_native_cmd(mmd_cmd, native_sysroot) + + mcopy_cmd = "mcopy -i %s -s %s/EFI/* ::/EFI/" \ + % (bootimg, isodir) + exec_native_cmd(mcopy_cmd, native_sysroot) + + chmod_cmd = "chmod 644 %s" % bootimg + exec_cmd(chmod_cmd) + + # Prepare files for legacy boot + syslinux_dir = get_bitbake_var("STAGING_DATADIR") + if not syslinux_dir: + raise WicError("Couldn't find STAGING_DATADIR, exiting.") + + if os.path.exists("%s/isolinux" % isodir): + shutil.rmtree("%s/isolinux" % isodir) + + install_cmd = "install -d %s/isolinux" % isodir + exec_cmd(install_cmd) + + cls.do_configure_syslinux(creator, cr_workdir) + + install_cmd = "install -m 444 %s/syslinux/ldlinux.sys " % syslinux_dir + install_cmd += "%s/isolinux/ldlinux.sys" % isodir + exec_cmd(install_cmd) + + install_cmd = "install -m 444 %s/syslinux/isohdpfx.bin " % syslinux_dir + install_cmd += "%s/isolinux/isohdpfx.bin" % isodir + exec_cmd(install_cmd) + + install_cmd = "install -m 644 %s/syslinux/isolinux.bin " % syslinux_dir + install_cmd += "%s/isolinux/isolinux.bin" % isodir + exec_cmd(install_cmd) + + install_cmd = "install -m 644 %s/syslinux/ldlinux.c32 " % syslinux_dir + install_cmd += "%s/isolinux/ldlinux.c32" % isodir + exec_cmd(install_cmd) + + #create ISO image + iso_img = "%s/tempiso_img.iso" % cr_workdir + iso_bootimg = "isolinux/isolinux.bin" + iso_bootcat = "isolinux/boot.cat" + efi_img = "efi.img" + + mkisofs_cmd = "mkisofs -V %s " % part.label + mkisofs_cmd += "-o %s -U " % iso_img + mkisofs_cmd += "-J -joliet-long -r -iso-level 2 -b %s " % iso_bootimg + mkisofs_cmd += "-c %s -no-emul-boot -boot-load-size 4 " % iso_bootcat + mkisofs_cmd += "-boot-info-table -eltorito-alt-boot " + mkisofs_cmd += "-eltorito-platform 0xEF -eltorito-boot %s " % efi_img + mkisofs_cmd += "-no-emul-boot %s " % isodir + + logger.debug("running command: %s", mkisofs_cmd) + exec_native_cmd(mkisofs_cmd, native_sysroot) + + shutil.rmtree(isodir) + + du_cmd = "du -Lbks %s" % iso_img + out = exec_cmd(du_cmd) + isoimg_size = int(out.split()[0]) + + part.size = isoimg_size + part.source_file = iso_img + + @classmethod + def do_install_disk(cls, disk, disk_name, creator, workdir, oe_builddir, + bootimg_dir, kernel_dir, native_sysroot): + """ + Called after all partitions have been prepared and assembled into a + disk image. In this case, we insert/modify the MBR using isohybrid + utility for booting via BIOS from disk storage devices. + """ + + iso_img = "%s.p1" % disk.path + full_path = creator._full_path(workdir, disk_name, "direct") + full_path_iso = creator._full_path(workdir, disk_name, "iso") + + isohybrid_cmd = "isohybrid -u %s" % iso_img + logger.debug("running command: %s", isohybrid_cmd) + exec_native_cmd(isohybrid_cmd, native_sysroot) + + # Replace the image created by direct plugin with the one created by + # mkisofs command. This is necessary because the iso image created by + # mkisofs has a very specific MBR is system area of the ISO image, and + # direct plugin adds and configures an another MBR. + logger.debug("Replaceing the image created by direct plugin\n") + os.remove(disk.path) + shutil.copy2(iso_img, full_path_iso) + shutil.copy2(full_path_iso, full_path) From patchwork Tue Jan 21 10:12:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4018 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 21 Jan 2025 11:13:10 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f64.google.com (mail-lf1-f64.google.com [209.85.167.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 50LAD9mc025882 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 21 Jan 2025 11:13:09 +0100 Received: by mail-lf1-f64.google.com with SMTP id 2adb3069b0e04-53e1bddea1dsf3388671e87.2 for ; Tue, 21 Jan 2025 02:13:09 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1737454383; cv=pass; d=google.com; s=arc-20240605; b=Btt4+rWHENYMQdWVIT/KXVeaCyCQoUlk2/L/1BQXab0cGCeYht1nyNZmGliSnIyx0C NqyXnHPw7iYljGuaTZoCi596rNq26tL+Aun9x1vp83/2y4TSxoPzIf0Q5/Wz41GVB3Y1 i/YDncj/KNJRZdFY6cuIKLWBhATEyhEyK/3xKBk8rC8Ldo8ToLqPoHt3flWpIp+fGL0f gdcCMQi19gVijGY1is4Jw7OLy8r3HWIiyzKaeDhoN14EO/uKguRT4n3ZdxxoZzGPxh4K G3OFFDTiHc3gkxV/CTwbj6w8mkVchlGaOF9R5DM0hQkSA9kDZECxlt0VaBObaOeVXMsq FAZg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=lsUCZl2+4E5wwxP48HEtMTaFJxVvFH+A01AVsOnsP4M=; fh=oYpJyxc7fmtSMqjuxtV6WKBTe3SywzaeV9hltzr92Mk=; b=M3ett2Nyna2zHLVFkOJ5NG69uAS+l19q7SI0Ya8jY19rGbiPTfesBpMSob3rcotxbV RjV9Gzk1/w9l6XpkkH9vTfRkCSuvwZG3d7IZHg295S6NneLkMJAYmvT0w5Zua5VqZD8q u3yE5m8GeRgxa9fUlLHqxR/8bS0LaBX4hAptU3TjtnIuXTXpx5aF5xnsccW03ukjWFAF lIuWRGlYJruxQRR7RlSsVGMWPs5FYXmo83EsL2pn3Ne6Oq/Q+gu9HwbwJH7gpkQkt5Ob MBMky2+R1JwQyZZcC9lF3o8Ivy/hhYC4rJf1+qKNXtXFe9q5ri9LOBK42ijMm3uyuH3z kUAg==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=GggXx4WC; spf=pass (google.com: domain of fm-1321639-20250121101259636e9458f49e91692a-tbijrl@rts-flowmailer.siemens.com designates 185.136.65.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101259636e9458f49e91692a-TbIJrl@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1737454383; x=1738059183; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=lsUCZl2+4E5wwxP48HEtMTaFJxVvFH+A01AVsOnsP4M=; b=DztkJD6fdcGyoStQIDAjBZukh1hwSMLi4ZZC1jrueujF+wFXiOA8tFbGsiNv2BcmxO RMH+ZZkeRmhJhcIxjy6UDuwutIREfBaS5RpZ0y09frV/zB9Tk2IvDeSh+AMQ6fWs/gzB hUvNK5Qs1vqYF8SjShFa+8VwO8feigMFimzihqLaIbjnnbIWaAidS11EDzpIYn/qvQsK f3pp2OHjmo0GsgP9XeXzaI93wRQXOqw8J+h+x+E80xgRiSMPpHiuXt71/4TNA9Na17hT awCmjzrqSnrjmLiIZUdO0nZ8HJUNXI+b8tvPAX7aHxXoBu4fMVs/YXWwP9/pNnuyRlwS TFKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737454383; x=1738059183; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lsUCZl2+4E5wwxP48HEtMTaFJxVvFH+A01AVsOnsP4M=; b=jCAyFHNHjw26MIMEKq78ix1Q6N9kOPwPJgczbnDKPAfcotHawv3bPV5nCRL//C6q7B XjNrGImOqCwJaqOmINRXgOtYfsqXxf1aOAlbJwNX71Z5a4ieRyIXJLnrXs5AYxr3XfEN Tc5x5CewW/gnbxlC7OX47t45cgp5gRbMz9jl9BxxTs6EKXYEq9ICQUFF8IsGn3jWV0J1 3v70ftC3a89QTrbxtDZRNQxp5P1Wt33ShqePcn3R9TTbtE6yzVGN28mOIz8Zxjw03oaZ /YWf8h8JOOYiS3Ol8OWHKOXbLzlCrts9+9eMe89HeerbyRTCaA/gwUAg4Lyvxq3y7ddP NFFg== X-Forwarded-Encrypted: i=2; AJvYcCWwEZfvC3E2iVJRAl4Q5/5wpSBLa4tY1g3+wOq3rfeQYUk1FWdxub5FHLku2L4wLbKEaQGc0jk=@isar-build.org X-Gm-Message-State: AOJu0YysccwSAVnct4aByAkF+4ic8rPm3qOhB/Oue46/HEnJI9rDDAds LOIm+ffbcLO+zhcUwAcFOc5VV7wwXcETXcBpbyTorf0mePpGFLZk X-Google-Smtp-Source: AGHT+IH0nnqThgqUDt7bGN+sKUwSIyir2+CBJlLjsnPTREi4rhtBpHVRJ68WUv6YFUb/gho4MdT/zg== X-Received: by 2002:a05:6512:b23:b0:53e:fa8b:822e with SMTP id 2adb3069b0e04-5439c28258dmr5070770e87.37.1737454382607; Tue, 21 Jan 2025 02:13:02 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3f09:b0:540:c34b:91f3 with SMTP id 2adb3069b0e04-543ae297c37ls473818e87.2.-pod-prod-02-eu; Tue, 21 Jan 2025 02:13:00 -0800 (PST) X-Received: by 2002:ac2:5611:0:b0:540:2543:1b19 with SMTP id 2adb3069b0e04-5439c251de3mr5445822e87.24.1737454379782; Tue, 21 Jan 2025 02:12:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1737454379; cv=none; d=google.com; s=arc-20240605; b=d9kaungsV85Vhep3603GjMOLK1D3Rrsx7Or7r0Q6GIRpyEQQBENaiwzllM6EB+g+RB yzqqZup+97arkj+z+7KIENmyfglw/RJKD+nfQJVgMGqyLxsYubWHqAWr4QKYrKDXssxj 2GbZMwfcimRmP/3KS4JRROFfJb6QRKjlD2Rn+Qg37mjXc8JJQPvZeY70zmqzpK60Xb9p wnMSNLyV0NkXP0eC2h88hdCmdCmtKKtsF7M+rPIR62+rF5QETF+XPf946SqDSjf0vawh jZqUI/BDucm60RfKl1FVHGXUvou5unnpwjl0f9ajYvJIecvV7pTyFp74Udd/Rl0r7XXe oDOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=ZbLOhl80gbV2bSiuY9N4dAptMeBobewG3bgfOi83Q14=; fh=Bo8ZbdhPy/JbmTSxHxcgeG9JPAXIanSEMBVfErZw+70=; b=NbcxwwNCgx5Ct2Ylm6KK7O2kyTg82HprZBUf9YO/+ytQmvO/D5gfvA0fLo3P9wb9pU SFQNCCWw+bDNVQR+Hs8sZf8cwJem0UGFwBhWXCHLMYnzkwrAUo71c59s30GnagSWQctw clQStFveLECcncnrjQFphOqdlhvglKOcawaCwo568P0PlO0Ij23A87hDhSNgg556P4gU sCbMwmknclzzcp8gwoWmlNHDVBJhl0JWXtmFIbDFqom8Jv2r9nzqFHT9cqHuLdnR3gQW eIKEnR07oPSk1b7yTnhvMKmoqm2kI1qjOOCvC3x7zFTRaHr8J3KwsdJ7LlBEmEpJ4rnK s9sQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=GggXx4WC; spf=pass (google.com: domain of fm-1321639-20250121101259636e9458f49e91692a-tbijrl@rts-flowmailer.siemens.com designates 185.136.65.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101259636e9458f49e91692a-TbIJrl@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-65-227.siemens.flowmailer.net (mta-65-227.siemens.flowmailer.net. [185.136.65.227]) by gmr-mx.google.com with ESMTPS id 2adb3069b0e04-5439af04c52si247794e87.2.2025.01.21.02.12.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Jan 2025 02:12:59 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1321639-20250121101259636e9458f49e91692a-tbijrl@rts-flowmailer.siemens.com designates 185.136.65.227 as permitted sender) client-ip=185.136.65.227; Received: by mta-65-227.siemens.flowmailer.net with ESMTPSA id 20250121101259636e9458f49e91692a for ; Tue, 21 Jan 2025 11:12:59 +0100 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: clara.kowalsky@siemens.com, florian.bezdeka@siemens.com, jan.kiszka@siemens.com, Felix Moessbauer Subject: [PATCH 2/5] wic: add ISAR version of isohybrid-efi plugin Date: Tue, 21 Jan 2025 11:12:49 +0100 Message-ID: <20250121101252.324899-3-felix.moessbauer@siemens.com> In-Reply-To: <20250121101252.324899-1-felix.moessbauer@siemens.com> References: <20250121101252.324899-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1321639:519-21489:flowmailer X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=GggXx4WC; spf=pass (google.com: domain of fm-1321639-20250121101259636e9458f49e91692a-tbijrl@rts-flowmailer.siemens.com designates 185.136.65.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101259636e9458f49e91692a-TbIJrl@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= This adds support to generate a hybrid grub-efi + syslinux ISO9660 image. The patch is written in an add-only style to simplify updates of the upstream plugin. Signed-off-by: Felix Moessbauer --- .../plugins/source/isoimage-isohybrid-isar.py | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py index afc9ea0f..b46527b8 100644 --- a/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py +++ b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py @@ -18,6 +18,12 @@ from wic.engine import get_custom_config from wic.pluginbase import SourcePlugin from wic.misc import exec_cmd, exec_native_cmd, get_bitbake_var +# allow plugins to import from isarpluginbase +if '__file__' in globals(): + import sys + sys.path.append(os.path.dirname(os.path.abspath(__file__)) + "/..") +from isarpluginbase import (isar_get_filenames, isar_populate_boot_cmd) + logger = logging.getLogger('wic') class IsoImagePlugin(SourcePlugin): @@ -44,6 +50,7 @@ class IsoImagePlugin(SourcePlugin): """ name = 'isoimage-isohybrid' + name = 'isoimage-isohybrid-isar' @classmethod def do_configure_syslinux(cls, creator, cr_workdir): @@ -71,6 +78,9 @@ class IsoImagePlugin(SourcePlugin): syslinux_conf += "LABEL boot\n" kernel = get_bitbake_var("KERNEL_IMAGETYPE") + kernel, initrd = isar_get_filenames( + get_bitbake_var("IMAGE_ROOTFS"), get_bitbake_var("KERNEL_FILE") + ) if get_bitbake_var("INITRAMFS_IMAGE_BUNDLE") == "1": if get_bitbake_var("INITRAMFS_IMAGE"): kernel = "%s-%s.bin" % \ @@ -80,6 +90,13 @@ class IsoImagePlugin(SourcePlugin): syslinux_conf += "APPEND initrd=/initrd LABEL=boot %s\n" \ % bootloader.append + # replace initrd with correct one + if initrd: + syslinux_conf = syslinux_conf.replace( + "initrd=/initrd", "initrd=/%s" % initrd) + else: + raise WicError("Couldn't find initrd, exiting.") + logger.debug("Writing syslinux config %s/ISO/isolinux/isolinux.cfg", cr_workdir) @@ -125,9 +142,23 @@ class IsoImagePlugin(SourcePlugin): kernel = "%s-%s.bin" % \ (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME")) + kernel, initrd = isar_get_filenames( + get_bitbake_var("IMAGE_ROOTFS"), get_bitbake_var("KERNEL_FILE") + ) + + bootloader.append = bootloader.append or "" grubefi_conf += "linux /%s rootwait %s\n" \ % (kernel, bootloader.append) grubefi_conf += "initrd /initrd \n" + grubefi_conf = '\n'.join(grubefi_conf.splitlines()[:-1]) + '\n' + + if initrd: + initrds = initrd.split(';') + grubefi_conf += "initrd" + for rd in initrds: + grubefi_conf += " /%s" % rd + grubefi_conf += "\n" + grubefi_conf += "}\n" if splashline: @@ -156,12 +187,14 @@ class IsoImagePlugin(SourcePlugin): raise WicError("Couldn't find IMAGE_BASENAME, exiting.") image_type = get_bitbake_var("INITRAMFS_FSTYPES") + image_type = image_type or "img" if not image_type: raise WicError("Couldn't find INITRAMFS_FSTYPES, exiting.") machine = os.path.basename(initrd_dir) pattern = '%s/%s*%s.%s' % (initrd_dir, image_name, machine, image_type) + pattern = '%s/%s-%s-initrd.%s' % (initrd_dir, image_name, machine, image_type) files = glob.glob(pattern) if files: initrd = files[0] @@ -227,6 +260,12 @@ class IsoImagePlugin(SourcePlugin): logger.debug("Payload directory: %s", payload_dir) shutil.copytree(payload_dir, iso_dir, symlinks=True, dirs_exist_ok=True) + if source_params.get('payload'): + payload = source_params.get('payload') + + logger.debug("Payload: %s", payload) + os.mkdir('%s/live' % iso_dir) + shutil.copy(payload, '%s/live' % iso_dir) @classmethod def do_prepare_partition(cls, part, source_params, creator, cr_workdir, @@ -299,6 +338,7 @@ class IsoImagePlugin(SourcePlugin): install_cmd = "install -m 0644 %s/%s %s/%s" % \ (kernel_dir, kernel, isodir, kernel) + install_cmd = isar_populate_boot_cmd(rootfs_dir, isodir) exec_cmd(install_cmd) #Create bootloader for efi boot @@ -313,19 +353,46 @@ class IsoImagePlugin(SourcePlugin): # Builds bootx64.efi/bootia32.efi if ISODIR didn't exist or # didn't contains it target_arch = get_bitbake_var("TARGET_SYS") + distro_arch = get_bitbake_var("DISTRO_ARCH") + if distro_arch == "amd64": + target_arch = "x86_64" + else: + target_arch = distro_arch + if not target_arch: raise WicError("Coludn't find target architecture") if re.match("x86_64", target_arch): + grub_target = "x86_64-efi" grub_src_image = "grub-efi-bootx64.efi" grub_dest_image = "bootx64.efi" + grub_modules = "multiboot efi_uga iorw ata " + if get_bitbake_var("DISTRO").startswith("ubuntu") and \ + os.path.exists('/usr/lib/grub/x86_64-efi/linuxefi.mod'): + grub_modules += "linuxefi " elif re.match('i.86', target_arch): + grub_target = "i386-efi" grub_src_image = "grub-efi-bootia32.efi" grub_dest_image = "bootia32.efi" + grub_modules = "multiboot efi_uga iorw ata " else: raise WicError("grub-efi is incompatible with target %s" % target_arch) + if not os.path.isfile("%s/%s" \ + % (target_dir, grub_dest_image)): + grub_cmd = "grub-mkimage -p /EFI/BOOT " + grub_cmd += "-O %s -o %s/%s " \ + % (grub_target, target_dir, grub_dest_image) + grub_cmd += "part_gpt part_msdos ntfs ntfscomp fat ext2 " + grub_cmd += "normal chain boot configfile linux " + grub_cmd += "search efi_gop font gfxterm gfxmenu " + grub_cmd += "terminal minicmd test 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 regexp " + grub_modules + exec_cmd(grub_cmd) + grub_target = os.path.join(target_dir, grub_dest_image) if not os.path.isfile(grub_target): grub_src = os.path.join(deploy_dir, grub_src_image) @@ -393,18 +460,23 @@ class IsoImagePlugin(SourcePlugin): cls.do_configure_syslinux(creator, cr_workdir) install_cmd = "install -m 444 %s/syslinux/ldlinux.sys " % syslinux_dir + # different name in Debian + install_cmd = "install -m 444 %s/syslinux/modules/bios/ldlinux.c32 " % syslinux_dir install_cmd += "%s/isolinux/ldlinux.sys" % isodir exec_cmd(install_cmd) install_cmd = "install -m 444 %s/syslinux/isohdpfx.bin " % syslinux_dir + install_cmd = install_cmd.replace('/syslinux/', '/ISOLINUX/') install_cmd += "%s/isolinux/isohdpfx.bin" % isodir exec_cmd(install_cmd) install_cmd = "install -m 644 %s/syslinux/isolinux.bin " % syslinux_dir + install_cmd = install_cmd.replace('/syslinux/', '/ISOLINUX/') install_cmd += "%s/isolinux/isolinux.bin" % isodir exec_cmd(install_cmd) install_cmd = "install -m 644 %s/syslinux/ldlinux.c32 " % syslinux_dir + install_cmd = install_cmd.replace('/syslinux/', '/syslinux/modules/bios/') install_cmd += "%s/isolinux/ldlinux.c32" % isodir exec_cmd(install_cmd) @@ -415,6 +487,8 @@ class IsoImagePlugin(SourcePlugin): efi_img = "efi.img" mkisofs_cmd = "mkisofs -V %s " % part.label + # use xorriso from Debian + mkisofs_cmd = "xorriso -as mkisofs -V %s " % part.label mkisofs_cmd += "-o %s -U " % iso_img mkisofs_cmd += "-J -joliet-long -r -iso-level 2 -b %s " % iso_bootimg mkisofs_cmd += "-c %s -no-emul-boot -boot-load-size 4 " % iso_bootcat From patchwork Tue Jan 21 10:12:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4019 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 21 Jan 2025 11:13:13 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f57.google.com (mail-wm1-f57.google.com [209.85.128.57]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 50LADCfM025895 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 21 Jan 2025 11:13:12 +0100 Received: by mail-wm1-f57.google.com with SMTP id 5b1f17b1804b1-4361d4e8359sf42282555e9.3 for ; Tue, 21 Jan 2025 02:13:12 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1737454387; cv=pass; d=google.com; s=arc-20240605; b=G1kObA0uUl6CuS8rptvWOc7eRPiGYA/9i8a9H/kBA12zaHITyLBXv2DSOdLp88oiQW 2kUW39LWNPSQf0Xw0aEcGEwvBIdB4Ya+5EmX8anGKYwbF/3G7N2wg627WUSyAZlai597 vSSvPL2WRPlv7g1X9GkLZBKDwoJp5dh7K2EiVUpeapDjUIRwVv6I+r+o6pmNcEW5FkYs b4OItDe0DVStpMiLAeSdXVtYvGWjUgXTlMavuJtOKJmwoYJuFol+5uS4LgtqlXZ5GtRI fkIQGK6pDn1OGAhr5pnAMBqL42IuwCVW9W2GDZBjEx869zVOroVo5qlKDz4juXDw53HX MW/A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=41xboY/rbspBz/hD+lVVqG80PRqI0DAzxe7ZTs8PjjY=; fh=x5dsLSBCXDenv3BnoWw2C6YgRxL+P0T4dv6ll6i/OkM=; b=R2IJBP55uHy59nQPbbGEqvZvqbAm9DEshm23cVaxHD1MLs08S/jCpeErUknMDC1wlT 531euRBuYWS/eHeNQ+nlC5PDov4X7siCXduUWm1KF0muv6wyiXsMQBhSArjxoTK2WtnC Xmo+1mJ6maYiFCn9kP37J87NScpvhoMrsOEbeO7UNDcalByf4ksluZ2PwV+u6U5ItbEo R2tk74AT0KmTp2LqaIt3FdJS+Bhzj+hnOkSk9r4GaJBtjrLdeQRX/0T6hAYwNnQdPGS+ u3KxCWQhKUVi+z14mg+wRfgylmUCzBztyY+9M/29FMGJnRkkfPgadmJAXeJ9sdWwIeb8 eshg==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=YS++6+II; spf=pass (google.com: domain of fm-1321639-20250121101304bcc4dcd31444d7476c-rxty9t@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101304bcc4dcd31444d7476c-RXty9T@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1737454387; x=1738059187; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=41xboY/rbspBz/hD+lVVqG80PRqI0DAzxe7ZTs8PjjY=; b=B0bCGNMX9J34IdOJ2fuPJYwWNIoASjXr6PJzIdGmi2EvtjGg4VjjPDzY5FLTMqxFcM KQCvpe9ULKKGqPSzMhPYWFHGUCpWm+9QZ7v15vT85V6R3+RYfqc53yV6Y9CAFqpP+ifa 1LAe6B1L/Tkd4ZXbU4ZyQPldreij5YZ4hPiIpnxoEFa6U0IWfhCTHJILThzAFlnJ0OuT g8SNBYLWj1Wx+Xp6jSusJPcq8w53fUE4l5y5fuMw8yh7v9/nTVspGiLDNPzUGCX8pFZE agFrHAVKEZ6+ueEaqJJLB7KkZ/SkG/tH/mtEZIl0gTf/XnXV3oxh44P+W0I9fuHKNtHZ HhKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737454387; x=1738059187; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=41xboY/rbspBz/hD+lVVqG80PRqI0DAzxe7ZTs8PjjY=; b=b3o+PBzKBU8qbU0dfywYaSlRoxquYdef+KVRRD/PfYUVX6QXXMWlfMxJ/sEr5rfU1S Eua+qD/R8+g9ErOM4HzOH7BOzmJ/5mGi2w4f4hWqJZWHgifzCCTzrQYTM9cmokpA2g+3 l5PQe7ZONZSNww1APsuMYp4QZDnhVgIsa+073jgyq8zdsIihgcUNsL382Q+x4hNKEeaC G5OrmjT6EY0OCGOHmdRkvhPJbVwoKkVhpqy60eeqphiE/b1xLtzJNBtteNPdIlP5m6Py UmLMFxOMPaUeTd7LaPADs8bDgZvvjHyqr1q0ZYEvYnHUheg9BZ1tuleK05jtZKAkK7dx N6Lg== X-Forwarded-Encrypted: i=2; AJvYcCXOLPVjJF79/a7Tq996bh5ZN9jqTLRyb/qYbXVwC6ewat0FsUR+mE9IxKT4fROovK6Mw7Crz6s=@isar-build.org X-Gm-Message-State: AOJu0YzJWdUMNqgIkFluqvZrCY5V59GsaLvACcCajOOZBqa7YKe1SQzB bsy84cksfVNi5XH8+mEkx9IyNIWJZ8Adqc679Umm+XwX3DmU/ipL X-Google-Smtp-Source: AGHT+IEjzIkloB4Z2IjwBbI8b7FJEXu+nrCHYbl7af2JCOYEhPo8mhAOTO5U6Qxq/n3dQyeoDhtiPA== X-Received: by 2002:a05:600c:1c83:b0:434:a746:9c82 with SMTP id 5b1f17b1804b1-438913be56bmr158153465e9.5.1737454386766; Tue, 21 Jan 2025 02:13:06 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a7b:c44b:0:b0:434:92f9:ac7 with SMTP id 5b1f17b1804b1-4388aba4f13ls6241255e9.1.-pod-prod-07-eu; Tue, 21 Jan 2025 02:13:04 -0800 (PST) X-Received: by 2002:a05:6000:b10:b0:382:5141:f631 with SMTP id ffacd0b85a97d-38bf56740b4mr11559047f8f.29.1737454384419; Tue, 21 Jan 2025 02:13:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1737454384; cv=none; d=google.com; s=arc-20240605; b=fqFOMMZm/Aw0woNG2fV/BFUm31sTi0EMfCuJY2SEiVSfbSwEp9zpOkACB2w2TaLWbg IxRClcRILkESzamLGtS+3mQh/tHXd9ftFlhZQKeCgpVZLMbhJC1mv3eFHfiMuQnSR5+o nULHOxOi6NS8oDeaNPx7xA6FfK/dezKSTwpCm2wiaKtF1uPwkDY9n88sAH0RIoai8UqD E98vBvrHlbIirWdhy+Tbojx0lJ2MqmlquSpl80c7iufb+jit4U17weySW2alkipoX2lu qwVo5l+FK6OCW1499seXgQnO+oFs7ho368wkXZg0LELUv/43/CQOsPCWsJDsbVUuWy9A G8hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=tJmIxvEtLArcxaSvByPmQqHuMZ9WIYVSQSctXgJ+GDk=; fh=Bo8ZbdhPy/JbmTSxHxcgeG9JPAXIanSEMBVfErZw+70=; b=PZWZHRq9WR8ixWuof7at90TvTYEi4ofRCesMvzcgC2p9oBROEiVz7hi0wND3Q46EU+ YYKQ49DZinzYZfWs5FhkXXhH+DN4H4dCuEd4fLngJ9756n1KGidyqJofIvqbu8l8zlv3 zq2tgWJI/3oXIpMt3xO5Tnd1+Q0swFStNLHckiV4E65yPngyQrNFESxm/0/Ccu/UINzU 1D0/dryhzCQSQfV5gVrAlWTzGnkR30N+mCsmMOkuZhOz5p1ysEOwJ1clXUphIn3zAiAa UCCAAKVbwDQdAy1HHBtnhQwmho/SrHvn1vPsQUZIff5W2MZymx0P2eX3wr+YxCcuC2Fi SLuQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=YS++6+II; spf=pass (google.com: domain of fm-1321639-20250121101304bcc4dcd31444d7476c-rxty9t@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101304bcc4dcd31444d7476c-RXty9T@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-227.siemens.flowmailer.net (mta-64-227.siemens.flowmailer.net. [185.136.64.227]) by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-38bf32156e5si121937f8f.1.2025.01.21.02.13.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Jan 2025 02:13:04 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1321639-20250121101304bcc4dcd31444d7476c-rxty9t@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) client-ip=185.136.64.227; Received: by mta-64-227.siemens.flowmailer.net with ESMTPSA id 20250121101304bcc4dcd31444d7476c for ; Tue, 21 Jan 2025 11:13:04 +0100 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: clara.kowalsky@siemens.com, florian.bezdeka@siemens.com, jan.kiszka@siemens.com, Felix Moessbauer Subject: [PATCH 3/5] move squashfs imagetype class from CIP to ISAR Date: Tue, 21 Jan 2025 11:12:50 +0100 Message-ID: <20250121101252.324899-4-felix.moessbauer@siemens.com> In-Reply-To: <20250121101252.324899-1-felix.moessbauer@siemens.com> References: <20250121101252.324899-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1321639:519-21489:flowmailer X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=YS++6+II; spf=pass (google.com: domain of fm-1321639-20250121101304bcc4dcd31444d7476c-rxty9t@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101304bcc4dcd31444d7476c-RXty9T@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= As a preparation for live images, we move the squashfs class from isar-cip-core to ISAR and register it as always included. ISAR-cip-core revision: 0e85378341fb7b37cf95b1c910ca0260cf4f5cf4 Signed-off-by: Felix Moessbauer --- meta-isar/classes/squashfs.bbclass | 47 ++++++++++++++++++++++++++++++ meta/classes/image.bbclass | 2 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 meta-isar/classes/squashfs.bbclass diff --git a/meta-isar/classes/squashfs.bbclass b/meta-isar/classes/squashfs.bbclass new file mode 100644 index 00000000..9cd7ed3d --- /dev/null +++ b/meta-isar/classes/squashfs.bbclass @@ -0,0 +1,47 @@ +# squashfs image rootfs +# +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2021-2025 +# +# SPDX-License-Identifier: MIT + +def get_free_mem(): + try: + with open('/proc/meminfo') as meminfo: + lines = meminfo.readlines() + for line in lines: + if line.startswith('MemAvailable:'): + return int(line.split()[1]) * 1024 + except FileNotFoundError: + pass + return 4*1024*1024*1024 # 4G + +IMAGER_INSTALL:squashfs += "squashfs-tools" + +SQUASHFS_EXCLUDE_DIRS ?= "" +SQUASHFS_CONTENT ?= "${PP_ROOTFS}" +SQUASHFS_CREATION_ARGS ?= "" + +SQUASHFS_THREADS ?= "${@oe.utils.cpu_count(at_least=2)}" +SQUASHFS_MEMLIMIT ?= "${@int(get_free_mem() * 3/4)}" +SQUASHFS_CREATION_LIMITS = "-mem ${SQUASHFS_MEMLIMIT} -processors ${SQUASHFS_THREADS}" + +python __anonymous() { + exclude_directories = d.getVar('SQUASHFS_EXCLUDE_DIRS').split() + if len(exclude_directories) == 0: + return + # Use wildcard to exclude only content of the directory. + # This allows to use the directory as a mount point. + args = " -wildcards" + for dir in exclude_directories: + args += " -e '{dir}/*' ".format(dir=dir) + d.appendVar('SQUASHFS_CREATION_ARGS', args) +} + +IMAGE_CMD:squashfs[depends] = "${PN}:do_transform_template" +IMAGE_CMD:squashfs[vardepsexclude] += "SQUASHFS_CREATION_LIMITS" +IMAGE_CMD:squashfs() { + ${SUDO_CHROOT} /bin/mksquashfs \ + '${SQUASHFS_CONTENT}' '${IMAGE_FILE_CHROOT}' \ + -noappend ${SQUASHFS_CREATION_LIMITS} ${SQUASHFS_CREATION_ARGS} +} diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index db21cc76..49861b75 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -129,7 +129,7 @@ IMAGE_BASETYPES = "${@get_image_basetypes(d)}" # image types IMAGE_CLASSES ??= "" -IMGCLASSES = "imagetypes imagetypes_wic imagetypes_vm imagetypes_container" +IMGCLASSES = "imagetypes imagetypes_wic imagetypes_vm imagetypes_container squashfs" IMGCLASSES += "${IMAGE_CLASSES}" inherit ${IMGCLASSES} From patchwork Tue Jan 21 10:12:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4020 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 21 Jan 2025 11:13:13 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f64.google.com (mail-wm1-f64.google.com [209.85.128.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 50LADC7L025899 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 21 Jan 2025 11:13:13 +0100 Received: by mail-wm1-f64.google.com with SMTP id 5b1f17b1804b1-43621907030sf42884045e9.1 for ; Tue, 21 Jan 2025 02:13:13 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1737454387; cv=pass; d=google.com; s=arc-20240605; b=eUka8ct2IOLCc6R10Q0HfLBiL0FyeGB/85eOrM27+kUMjoJYdf83e9e4jUzGRkjJpA QVX+6agWzOf3X6+6ugn7xi710xnO4UDCOuC9wSmi2ZVtKz70wSqpEHwL0LSycmox6PJh dOGjcimGkCWldomIj38gu6G0p137kMqkfMf3PXebwdcAtF4q5oUJ6XjzokkgfqpsvjXK R8EhI4fx9KSb/sNiYG+uDCZOcQrZdJN34KYNLrJ7i+wljzGyqD3IhgA52hWChVhNlg85 kZWNzuy3BTWRrtSgFp+GS1p6miINbX/2G3b6Jev34oLJEtUlNTopKVIozwW1rs00UNtZ Zgxg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=kYGZIMjIE+y6R6rTIWJ44MrYKSlPV6WA2pxXHjscgj4=; fh=Uc3GINe/PozpXF0rP9O1jJr9kOuAO4DaelPt7KhdacY=; b=dApRtnTk/jF79G+XhWEsajTemPTzcWljAJWoBhWxfu6QXzwQlGNN5736+RyBwJpg6c gqFJgX/dXPK6xVybLbeLReDMTkRPubFr6QNi9gyo1yN1bjMmBCWO0gHXT98cn1iYAevh BYpmzgu1NksQ8sviGLPZtg0Upfl4ChgMrvvczjXVNnH5xeMHlqg2W8aGNAb5kyAZqT27 DmQW1GC00vgabBUi+mTAnH7CiDd/jE/L0BOEiAfmtpCJHBlJf950ZpY4B3WOBt8s3O4c RukVCA3Lkys22FWuvE2TUGnWHKmY9n0YElFtnuLe6Tiwmi9rFQpZkYE5M0G2d+V/p8rt gGtQ==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b="dqG/Vr6I"; spf=pass (google.com: domain of fm-1321639-20250121101304f84c55e85f107e1c19-a14pmh@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101304f84c55e85f107e1c19-A14Pmh@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1737454387; x=1738059187; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=kYGZIMjIE+y6R6rTIWJ44MrYKSlPV6WA2pxXHjscgj4=; b=DecOmnTpdaTOJohADF4OvUKcHpFp++1fj+RRoFdHt/wIcK1rtXOqYniF4qSIrqKTlC SXuLJ6Z9lYRMNMGARyKS/P8XaSGjQ0xMAsV9Qt02L3PKOgz+sqRiNAMpmDoQ1rcnUstV zLipNpxB7fGLdcFVrQA8BIR+X8lHAgdcX8i2FJZJ4RHXEhprnZ/5hEtoC9LBoWdjUZia ydme4h+aqFTHBIc5ZNGQEyNX9wr50V7+I94m2/qoGQGx4FVPxLKBHgIvMtFtAz9L3cj0 dPNt1wnYCUkNRt56ryPD/IGzfwZrPcfFmYngP2nSCJ6ke2u/Fq00yUVE69hO/G3PnNuw XWfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737454387; x=1738059187; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=kYGZIMjIE+y6R6rTIWJ44MrYKSlPV6WA2pxXHjscgj4=; b=KJ47QeQiBWu8Dan6tSZEKGfR09D4ei2VZwTwrGIyB3Oucm72wNE0bzyeqV4DWAMem2 Kopt5k5hhcYnEfPYfNIJIpU1kxpzeaRRlety5WGEiXf3xKacLz1uf+95NP2nNl2Iq4Gl ArQPnmBcAWdQTMFJmXpllicl0ZppqaXqwfhI5R0Y5lQa2X+bCNN0D2h1h4kb8ztnh6yT yUo/EwJMCezUwvollKdNfKnrWNd48ZrGPh/sGXcdQLUWqesDSQ6V18X14FFjdcEYl1l8 QeibmRbuexFXyUWDNgQt4HU/fhaGSydDAS6zMhx5usojqfJHsJ22bdduNzbNyw4CXwIC xn1g== X-Forwarded-Encrypted: i=2; AJvYcCWHmLwMGM+NcXPt7Whq65cpXlxSfFVBqxkp009/+zrvZ1n+hmLsKN4mNHnIyHzfRW+mx9kCMuE=@isar-build.org X-Gm-Message-State: AOJu0Yx9J+h0lDV4aP+F73QGvRMooCQ+sJG7Ey1/EWlUzeN2UU4jVXdF DhqOZH7OOrcvgNuoOCB18YYY8QgbJYimbxNx96b0YWWDfkHqh8YM X-Google-Smtp-Source: AGHT+IFqTJSvzfLzDDbffHOBQKFVvGC32++lbPyCfXPLlR7gY60mWqB+1shydbC64h6qhedY4nIUYQ== X-Received: by 2002:a05:600c:1d20:b0:434:a781:f5d9 with SMTP id 5b1f17b1804b1-438913e1b1fmr181751165e9.11.1737454387031; Tue, 21 Jan 2025 02:13:07 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6000:504:b0:386:3761:450f with SMTP id ffacd0b85a97d-38beaf4385cls1379543f8f.1.-pod-prod-05-eu; Tue, 21 Jan 2025 02:13:05 -0800 (PST) X-Received: by 2002:a5d:6489:0:b0:385:f6f4:f8e with SMTP id ffacd0b85a97d-38bf57bd824mr12223640f8f.50.1737454384771; Tue, 21 Jan 2025 02:13:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1737454384; cv=none; d=google.com; s=arc-20240605; b=lCUaVny9q54DK3X3x/uXnRZqQTr6af5RZk9GmKHzly8HLtf/Lbht9gSJSlXgETp3Lk AbaCbUT9q5JVdTUr3pOXiK5ippSbhIrqz94ip4p0S0fNwNZnvmtkzqaUQMP4RuxN5SHF LFAoUCDgouZGo0EzPFS0KyqQo8KqhXOaR2cxo1+pgr0o3gzFhosgrutrrbPn2E/ZDqfb N1FQDUuJWVhibGBh1sEHexFSJWH0LbWdttWwqIiONdHhHd6siL0pZzRHxLSaYM1A8Op3 IwDn9Xb/9P9XzrZkAXQT3+I/r/ShY+iJbHHIH+puFH3YF5HFxhXVRnCLqRHeJ8pIAY7I udmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=+qmOtyl2+xd5jsl86R+p4zX0ow0Oc5Fj4C5/BmCuZAg=; fh=Bo8ZbdhPy/JbmTSxHxcgeG9JPAXIanSEMBVfErZw+70=; b=F1keMlHUg/914N0hXP2cnlRInD68BdJ8Q1Eoegzj8XDz7oVyEqHhj8FfRRTJk4ip0N 3y638mAE9D0Q5qD3tWPie7oyi4IN4Vt3yVEAYgsvi9UxIOYARogms5iLx/8jVbz/O8sD qJAblVa4BrY/Yy5B2xq6Dp9c7WxoNK1dl4NoZAaNraNo2FWiNpKpTlM781gAPAZ+JUjl IDr9IaTD+H3NRt99mTUoGbdy3zPwbEZZ8ijATS9QWCkrCWUWfpkDYUSPrsAl7HXKE8ht 9pNKi3RCmbS+OvWw2xDUdZom3PGg1R8buiN5sSkpR6F0Emdy7OHbguCLOBstY5vuN6+u eovg==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b="dqG/Vr6I"; spf=pass (google.com: domain of fm-1321639-20250121101304f84c55e85f107e1c19-a14pmh@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101304f84c55e85f107e1c19-A14Pmh@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-227.siemens.flowmailer.net (mta-64-227.siemens.flowmailer.net. [185.136.64.227]) by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-38bf3266300si130404f8f.5.2025.01.21.02.13.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Jan 2025 02:13:04 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1321639-20250121101304f84c55e85f107e1c19-a14pmh@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) client-ip=185.136.64.227; Received: by mta-64-227.siemens.flowmailer.net with ESMTPSA id 20250121101304f84c55e85f107e1c19 for ; Tue, 21 Jan 2025 11:13:04 +0100 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: clara.kowalsky@siemens.com, florian.bezdeka@siemens.com, jan.kiszka@siemens.com, Felix Moessbauer Subject: [PATCH 4/5] add qemuamd64 target for hybrid iso9660 image Date: Tue, 21 Jan 2025 11:12:51 +0100 Message-ID: <20250121101252.324899-5-felix.moessbauer@siemens.com> In-Reply-To: <20250121101252.324899-1-felix.moessbauer@siemens.com> References: <20250121101252.324899-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1321639:519-21489:flowmailer X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b="dqG/Vr6I"; spf=pass (google.com: domain of fm-1321639-20250121101304f84c55e85f107e1c19-a14pmh@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-20250121101304f84c55e85f107e1c19-A14Pmh@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= Signed-off-by: Felix Moessbauer --- meta-isar/conf/machine/qemuamd64-iso.conf | 29 +++++++++++++++++++ .../multiconfig/qemuamd64-iso-bookworm.conf | 4 +++ .../lib/wic/canned-wks/isohybrid-efi.wks.in | 2 ++ 3 files changed, 35 insertions(+) create mode 100644 meta-isar/conf/machine/qemuamd64-iso.conf create mode 100644 meta-isar/conf/multiconfig/qemuamd64-iso-bookworm.conf create mode 100644 meta-isar/scripts/lib/wic/canned-wks/isohybrid-efi.wks.in diff --git a/meta-isar/conf/machine/qemuamd64-iso.conf b/meta-isar/conf/machine/qemuamd64-iso.conf new file mode 100644 index 00000000..36cbdf54 --- /dev/null +++ b/meta-isar/conf/machine/qemuamd64-iso.conf @@ -0,0 +1,29 @@ +# This software is a part of ISAR. +# Copyright (C) 2025 Siemens AG + +DISTRO_ARCH ?= "amd64" + +KERNEL_NAME ?= "amd64" + +IMAGE_FSTYPES ?= "wic" +WKS_FILE ?= "isohybrid-efi.wks.in" +IMAGER_INSTALL:wic += " \ + ${GRUB_BOOTLOADER_INSTALL} \ + ${SYSLINUX_BOOTLOADER_INSTALL} \ + syslinux-utils \ + isolinux \ + xorriso \ +" + +IMAGE_PREINSTALL += "live-boot" +IMAGE_INSTALL:remove = "expand-on-first-boot" +IMAGE_TYPEDEP:wic += "squashfs" +SQUASHFS_EXCLUDE_DIRS = "boot" + +QEMU_ARCH ?= "x86_64" +QEMU_MACHINE ?= "q35" +QEMU_CPU ?= "" +QEMU_DISK_ARGS ?= "-cdrom ##ROOTFS_IMAGE## -bios /usr/share/ovmf/OVMF.fd" + +MACHINE_SERIAL ?= "ttyS0" +BAUDRATE_TTY ?= "115200" diff --git a/meta-isar/conf/multiconfig/qemuamd64-iso-bookworm.conf b/meta-isar/conf/multiconfig/qemuamd64-iso-bookworm.conf new file mode 100644 index 00000000..b5cf9c27 --- /dev/null +++ b/meta-isar/conf/multiconfig/qemuamd64-iso-bookworm.conf @@ -0,0 +1,4 @@ +# This software is a part of ISAR. + +MACHINE ?= "qemuamd64-efi-iso" +DISTRO ?= "debian-bookworm" diff --git a/meta-isar/scripts/lib/wic/canned-wks/isohybrid-efi.wks.in b/meta-isar/scripts/lib/wic/canned-wks/isohybrid-efi.wks.in new file mode 100644 index 00000000..514f756c --- /dev/null +++ b/meta-isar/scripts/lib/wic/canned-wks/isohybrid-efi.wks.in @@ -0,0 +1,2 @@ +part /boot --source isoimage-isohybrid-isar --sourceparams="loader=grub-efi,payload=${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.squashfs" --ondisk cd --label LIVECD +bootloader --timeout=10 --append "console=ttyS0,115200 console=tty0 boot=live toram=${IMAGE_FULLNAME}.squashfs" From patchwork Tue Jan 21 10:12:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4021 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 21 Jan 2025 11:13:15 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-ed1-f62.google.com (mail-ed1-f62.google.com [209.85.208.62]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 50LADEhA026015 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 21 Jan 2025 11:13:14 +0100 Received: by mail-ed1-f62.google.com with SMTP id 4fb4d7f45d1cf-5d821f9730asf7421102a12.1 for ; Tue, 21 Jan 2025 02:13:14 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1737454388; cv=pass; d=google.com; s=arc-20240605; b=lEvlb176YRftNVoWIK/CZyT1T2q/BD7Mc/gpGHNffVMOInyhzXzldVDkRDcxOLxyDG T3gfBvqCwUCt4Tt14F3F61I+cJqcZzFY3/G0tI/01sMuUFEFKok80BQ07cxwX+xtloIX CYiR9q4zW4lzyZ2PTxDO+ejr/VcJaB1Kpt/Np6hAB/6km8ECYEOcHWgr+axh91r6gxmr +2F+lF8J62Xd0MDOZ2/+Zq8yMg1GILRu29Vgoneo8aG7M2MB1CCYASFG02nVo9u/VDbY WG4kHZvg57V9S819sk77NMdqlD/pb1YINDV3+1s11sgFlDmSQWCAR4snLmS5mA3D3ZnM 0KFQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jpqvUAQ8uqtWVO1oOtpDCjtdLrhkj4c7CPxxJ8HqQUQ=; fh=HSRbHXfaKf/c2Mff4PQq/bmoN5Iiex3TogvsNTbX8fQ=; b=LsH9nsy+L132itWXFNmZw2wMz2FSBWkd2b+qcgPhlilXiUVcppQUIj9jetgVdnt43B L2DUSD080OFuUs/eDS8gC0BEWXUl9DcW9hykAk1OCa6SBTa0KwNPXQJuSQvgIeUhIz94 qcUawUwdKA65NG9CzrkSCZx/+BXOHmPLKnOVB4KQoorQXDlcEI/mYS95HeFxkijWAm6n iW1duBIjIdwRAkyTE7z1ysiJ8gA5lFIYmMP5hL+iIFX9O8SQDBGzpZHdUkX0zkUqnkCw 1udqxqvaCht3mIkVQBt+ljVcGFvK0ccxFl1Ahmz46mHOKDwQwL+U8xm+okyUjS7W9ReB 6Hlw==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=aZxchQE0; spf=pass (google.com: domain of fm-1321639-2025012110130422a1f9c8f7215eab69-mfm6ua@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-2025012110130422a1f9c8f7215eab69-Mfm6UA@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1737454388; x=1738059188; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=jpqvUAQ8uqtWVO1oOtpDCjtdLrhkj4c7CPxxJ8HqQUQ=; b=jxl7ntTmma6C3A/TajzAiGP9E9ScDfhSYf2WcflsKjv2TsVJI+VsPzmp16MZ0Fg1EI ppf8roKg3bS98keZHg3Kkxvfz/JYmoefDeYKmCSIa7D10RWLou3GpeiNtYbpURBGfN/n gcv4RkvhZ8WhPw9uK3QyEP/2QGSPmubRLa12lb3VnEVXIKtUPti+zAHnC+3jw1bwVBsk lO+d8+DBgT44p6f5uwdfutacuvWYcgF2DIkaWu+tumeTtG5TF7sttZaonmkyMnEc6ZLx Ffs1n/DFFxAyblQQnpjzXqS8iwNEr4ibBYYrmCJ1fIyzy44wJf/l3GwQQWwRQDxLW1n1 uYgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737454388; x=1738059188; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jpqvUAQ8uqtWVO1oOtpDCjtdLrhkj4c7CPxxJ8HqQUQ=; b=eFWVG+H0d1xY9hI2Y/5/EdKhU00dhbCgB3lBfEISvSqIMRHAigH/qixA5WGauFxi5u zIb1JLOHbF5Z+++ByiHBnUkd3eh78wA8w8Pl2KYngzJv2rv1h9H1qwSiOqcgy3O2BGVs y6/+7srxcW4F9GgaA3y/OuIhifV1u4U54YtGQnvx65OtQ0zygnDwOmgaGFJzdX6585rM SM2cdd9+fUTSX42VrVmxh0z120Dx85vds9V8UMvBPH3MIr0O2mZWie2h71CVCDEGDBFT Ur2jbjyoE0T4yXeZABPG/CojwpljBMcwJ3SVH2TMD/hQ1xBYM744TSpTNWK1vpv0hXVK lR7g== X-Forwarded-Encrypted: i=2; AJvYcCXNR1pnJ+OrlJCUG2u6vtEB3TAZfGd31xwMwOoByGDosvUXYbyArr4Euf/R67FGzOoeuobl46A=@isar-build.org X-Gm-Message-State: AOJu0YydkZG1Xr10RrEA1Uww7LjGkZAiAiNxkB3kpTF9SgKU76N31D6V IGsbhQ8B5LPKPour7uOJGeVHoZQCIM8+rjVhKOp8TlhOJmOesTcm X-Google-Smtp-Source: AGHT+IFbkumynBNoXOS02Y2g0xUxc7zWuWbKot8nrCVyUl1r2TPu3BVLj8hOBnIfw/A5y24Z6gGhGA== X-Received: by 2002:a05:6402:51d3:b0:5d4:c0c:70f9 with SMTP id 4fb4d7f45d1cf-5da0c27e591mr21835017a12.6.1737454387807; Tue, 21 Jan 2025 02:13:07 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a50:875d:0:b0:5d0:acf2:b111 with SMTP id 4fb4d7f45d1cf-5dbcfb90034ls904965a12.1.-pod-prod-00-eu; Tue, 21 Jan 2025 02:13:05 -0800 (PST) X-Received: by 2002:a05:6000:2ce:b0:38a:4184:14ec with SMTP id ffacd0b85a97d-38bf5ac6859mr13827150f8f.1.1737454384827; Tue, 21 Jan 2025 02:13:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1737454384; cv=none; d=google.com; s=arc-20240605; b=X8REbMt0y46injtkC+Y3Y4/Rm35WbgMyNpiFXg4L4XcBpogh2nhVBtJAbIHjijnGlj hYuPaWbt/i/F74OwQBP2Xg6hi8F/6up8x+9pIEJNLWzHZgQg8u1xehJSEKtL/cf/NMVH HaFXiEm52zeMstakbUtUiv/qU1+XMadR9G59fl/PSIzqL4BUEnLK/yCw3nXOgjmvo1ee NOfUdufVma7BfCWuEfD0PO0svMlFNjQFjl3pDmOWNAjB6uZ+rvwnwKnBtLl70Dgy223w XSYi56yQAlEcMdKC5dyJ8UMjbPFewPiGMYwMUZCuRDNMDdh5PhZ85hmLiu0QBqr4AdUL 0jpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=ryy4AxjgLL5k6ipYuMyRrmKS4m3DdkRqc5NbdOFjGIA=; fh=Bo8ZbdhPy/JbmTSxHxcgeG9JPAXIanSEMBVfErZw+70=; b=Brfb0Zhju4yXZ9y4bgW/bEaQ8RD23QzkzryKpPLfMyK5U61IbFZjS08W8fFuBj4dyZ 0of4bXZ6WSJqav7cV+JVGFNU563mqkBRwj3Tk2Po6IWBH5aMNFoQUvzqMXJ3HBwp8/mb jxmf6i9VeGDS8TQG2FEYwOihgp1WJluPLfqMI+AZPGitVc5DaFhKsExLgoJbl1TF2FK4 v0AQE678W1sZ/OlRTTYj8UqK9CUf+V2onfI67/4QgDHgmTg/ZTzCqccQE2HF7JPzWigd fsNWRgBKLp+74c5YZMzmpq6u7CMIQQt0WQhdyLBn4DEkpzJA57PV4CMljVf2us8w6K3H w2pg==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=aZxchQE0; spf=pass (google.com: domain of fm-1321639-2025012110130422a1f9c8f7215eab69-mfm6ua@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-2025012110130422a1f9c8f7215eab69-Mfm6UA@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-227.siemens.flowmailer.net (mta-64-227.siemens.flowmailer.net. [185.136.64.227]) by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-38bf32156e5si121937f8f.1.2025.01.21.02.13.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Jan 2025 02:13:04 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1321639-2025012110130422a1f9c8f7215eab69-mfm6ua@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) client-ip=185.136.64.227; Received: by mta-64-227.siemens.flowmailer.net with ESMTPSA id 2025012110130422a1f9c8f7215eab69 for ; Tue, 21 Jan 2025 11:13:04 +0100 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: clara.kowalsky@siemens.com, florian.bezdeka@siemens.com, jan.kiszka@siemens.com, Felix Moessbauer Subject: [PATCH 5/5] add kas menu target for qemuamd64-iso machine Date: Tue, 21 Jan 2025 11:12:52 +0100 Message-ID: <20250121101252.324899-6-felix.moessbauer@siemens.com> In-Reply-To: <20250121101252.324899-1-felix.moessbauer@siemens.com> References: <20250121101252.324899-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1321639:519-21489:flowmailer X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=aZxchQE0; spf=pass (google.com: domain of fm-1321639-2025012110130422a1f9c8f7215eab69-mfm6ua@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-1321639-2025012110130422a1f9c8f7215eab69-Mfm6UA@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= The iso support has been tested with the following distributions: - Debian: buster, bullseye, bookworm, trixie - Ubuntu: Focal, Jammy, Noble Signed-off-by: Felix Moessbauer --- kas/machine/Kconfig | 14 ++++++++++++++ kas/machine/qemuamd64-iso.yaml | 7 +++++++ 2 files changed, 21 insertions(+) create mode 100644 kas/machine/qemuamd64-iso.yaml diff --git a/kas/machine/Kconfig b/kas/machine/Kconfig index 1740bd56..c37a1465 100644 --- a/kas/machine/Kconfig +++ b/kas/machine/Kconfig @@ -107,6 +107,19 @@ config MACHINE_QEMU_AMD64_SB select CODENAME_BULLSEYE select ARCH_AMD64 +config MACHINE_QEMU_AMD64_ISO + bool "qemuamd64-iso" + select DISTRO_DEBIAN + select CODENAME_BUSTER + select CODENAME_BULLSEYE + select CODENAME_BOOKWORM + select CODENAME_TRIXIE + select DISTRO_UBUNTU + select CODENAME_FOCAL + select CODENAME_JAMMY + select CODENAME_NOBLE + select ARCH_AMD64 + config MACHINE_QEMU_AMD64 bool "qemuamd64" select DISTRO_DEBIAN @@ -252,6 +265,7 @@ config KAS_INCLUDE_MACHINE default "kas/machine/phyboard-mira.yaml" if MACHINE_PHYBOARD_MIRA default "kas/machine/qemuamd64-cip.yaml" if MACHINE_QEMU_AMD64_CIP default "kas/machine/qemuamd64-sb.yaml" if MACHINE_QEMU_AMD64_SB + default "kas/machine/qemuamd64-iso.yaml" if MACHINE_QEMU_AMD64_ISO default "kas/machine/qemuamd64.yaml" if MACHINE_QEMU_AMD64 default "kas/machine/qemuarm.yaml" if MACHINE_QEMU_ARM default "kas/machine/qemuarm64.yaml" if MACHINE_QEMU_ARM64 diff --git a/kas/machine/qemuamd64-iso.yaml b/kas/machine/qemuamd64-iso.yaml new file mode 100644 index 00000000..f58a1217 --- /dev/null +++ b/kas/machine/qemuamd64-iso.yaml @@ -0,0 +1,7 @@ +# This software is a part of ISAR. +# Copyright (C) 2025 Siemens AG + +header: + version: 14 + +machine: qemuamd64-iso