From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 05 Nov 2024 10:29:30 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qt1-f189.google.com (mail-qt1-f189.google.com [209.85.160.189]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 4A59TSvm012173 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 5 Nov 2024 10:29:29 +0100 Received: by mail-qt1-f189.google.com with SMTP id d75a77b69052e-460ca856886sf109646761cf.1 for ; Tue, 05 Nov 2024 01:29:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1730798963; x=1731403763; darn=ilbers.de; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-sender:mime-version :subject:references:in-reply-to:message-id:to:from:date:sender:from :to:cc:subject:date:message-id:reply-to; bh=fOMlvqWLMb4N9jZPeWuyTqszOJABa93b41zVbGsjbMQ=; b=CZULpUHyuj1YvtmfualO5urMVs9rnUMzLTd7BFF4EIfvxPpTLSKBJWtmSowu7C+2J9 riwEbxpGFnVA/Lw0rjZUCm9u4oeaLZVnMVucXryOQgmuZsHmMd38esgQA2d286givWTk K3tq2mwki+JiMHLliPhJXjWFP2sCUIVO++yPHR8+iEqSI66g9EVystu8oDiM0fA73QKK Wo6i2AHnKpLaV6GeKQMZP4yoh8e4mcOv2kTJZqzZsFRhf0e2hdDCH02HwiJf2H4hB8yS IUUbfGsuBZdtMDn4eAqbxg2rHyqCzsp6YqliF5LXbZNHhm0O1b83LCj9PU1QVR8E1yY4 iQtA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730798963; x=1731403763; darn=ilbers.de; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-sender:mime-version :subject:references:in-reply-to:message-id:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=fOMlvqWLMb4N9jZPeWuyTqszOJABa93b41zVbGsjbMQ=; b=hkUzq64Wk4ml091ZwH31FWC4EfI1dunnp6EVziynueRnCp1qop1FcNL3KFolN38/uH +Kk56vdSormUunKsawzxLhkXNwVlnaR/H29iXnAbRTm/OK4ilOTjNrQ+kSMKCA+vyOuj y+VkUsQV/RHjg9i/7hnIBIwGYFW5yiKsyEEZCNsfDt+BX+RP5CRveDHtRHJJNwPEf5Il UV5ys2oq95Hsvmx8iEpwiCiKH0VNlMLRRvs6xF1amtaz1HUUX4sNsc67Mr1n0ZYVB8qg jrCAJ32X5sI6L4UPbjnI3TGBVuzXHmR7omWbyMygtZQqvUPEUmhdktOMW/UpW/GO7N4z 35CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730798963; x=1731403763; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-sender:mime-version:subject:references:in-reply-to :message-id:to:from:date:x-beenthere:x-gm-message-state:sender:from :to:cc:subject:date:message-id:reply-to; bh=fOMlvqWLMb4N9jZPeWuyTqszOJABa93b41zVbGsjbMQ=; b=jGdb+wRywcTbiTGNbu62rUNwXioD7ZKga3sex9XpZp/x+0ZSKfyxEpYLZbtXOOAfkU 4bKJFWa0FBz9+kr1bQq36qV0DJlNEoUGTeyE0e40GgJEVkqA/tAsFy3erTc17ERQYP30 PEl/Urm3Bk40S4fBFHLcNmHJ/OUCpYjOzGC95H17gwFuMbNa5L6HoTt5JfWfZNcxaxIC U3zqGwU7cB9z6OscghZaDC+eNxdtCWhUUYjLtLicQJJA4ZMpZcaY6CqCmz7BpNTrkng0 3oSs0qNsbX6M3CrMVFqkuYRpna3jUXikCNKBlpwiECa1a744Ns/LLzBdJEZZHFWMPEUd T2cw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=1; AJvYcCVccsU+3dJwTAtuGux4bUb1ydp8YOrJ2QTzH9wU0UcwkJmqaS3SGqYybJYNZsPBPkvQqwcz@ilbers.de X-Gm-Message-State: AOJu0YwU5FA4J5JiGDFq5j72yJIWTWXVbPd88vw1v6IjaOFW5C72Neer 8DtDX4cnJnVnVZ78THusAX4Xn6ykFW36v2ESvZDsWeRTNtdxm0jD X-Google-Smtp-Source: AGHT+IGAy+h+kE9YNzdLZDSWj5tjuNWIB4NoDS0aPOCC/ViyhDuEH9+EeYQShrJdPMM3rWxIzzmPlg== X-Received: by 2002:a05:622a:1b8b:b0:460:8f80:909a with SMTP id d75a77b69052e-4613c030d57mr523360941cf.32.1730798962756; Tue, 05 Nov 2024 01:29:22 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:622a:5cc:b0:458:355c:362b with SMTP id d75a77b69052e-462aa876c19ls38608461cf.0.-pod-prod-06-us; Tue, 05 Nov 2024 01:29:21 -0800 (PST) X-Received: by 2002:a05:620a:17a8:b0:7b1:44f1:cb6d with SMTP id af79cd13be357-7b2fb9aac43mr2265307085a.42.1730798961391; Tue, 05 Nov 2024 01:29:21 -0800 (PST) Date: Tue, 5 Nov 2024 01:29:21 -0800 (PST) From: Herbert Bernecker To: isar-users Message-Id: <939743ed-7e16-43e9-9869-1e3de655301dn@googlegroups.com> In-Reply-To: References: Subject: Re: wic fails with mkhybridiso.wks/isoimage-isohybrid MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_20188_1417724805.1730798961151" X-Original-Sender: herbert.bernecker.siemens@gmail.com 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.7 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, 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-TUID: aux/GKr637zM ------=_Part_20188_1417724805.1730798961151 Content-Type: multipart/alternative; boundary="----=_Part_20189_437989956.1730798961151" ------=_Part_20189_437989956.1730798961151 Content-Type: text/plain; charset="UTF-8" Hi, i copied/modified isoimage-isohybrid-isar.py from isoimage-isohybrid.py and used it to create a Debian Live ISO Image. Patches: diff --git a/scripts/lib/wic/plugins/source/isoimage-isohybrid.py b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py index afc9ea0f..9ac9e4ee 100644 --- a/scripts/lib/wic/plugins/source/isoimage-isohybrid.py +++ b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: GPL-2.0-only # # DESCRIPTION -# This implements the 'isoimage-isohybrid' source plugin class for 'wic' +# This implements the 'isoimage-isohybrid-isar' source plugin class for 'wic' # # AUTHORS # Mihaly Varga @@ -12,12 +12,19 @@ import logging import os import re import shutil +import subprocess 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 +# 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): @@ -43,7 +50,7 @@ class IsoImagePlugin(SourcePlugin): extension added by direct imeger plugin) and a file named IsoImage-cd.iso """ - name = 'isoimage-isohybrid' + name = 'isoimage-isohybrid-isar' @classmethod def do_configure_syslinux(cls, creator, cr_workdir): @@ -170,8 +177,8 @@ class IsoImagePlugin(SourcePlugin): # 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) + cmd = "rsync -avP --numeric-ids --exclude='/dev' --exclude='/proc' --exclude='/sys' %s %s" % (rootfs_dir, initrd_dir) + subprocess.call(cmd.split()) if os.path.isfile("%s/init" % rootfs_dir): shutil.copy2("%s/init" % rootfs_dir, "%s/init" % initrd_dir) @@ -278,13 +285,13 @@ class IsoImagePlugin(SourcePlugin): exec_cmd(cp_cmd) else: # Prepare initial ramdisk - initrd = "%s/initrd" % deploy_dir + pkg_suffix = get_bitbake_var('ROOTFS_PACKAGE_SUFFIX') + initrd = "%s/%s-initrd.img" % (deploy_dir, pkg_suffix) 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) + install_cmd = "install -m 0644 %s/%s %s/initrd" % (cr_workdir, initrd, isodir) exec_cmd(install_cmd) # Remove the temporary file created by _build_initramfs_path function @@ -317,7 +324,7 @@ class IsoImagePlugin(SourcePlugin): raise WicError("Coludn't find target architecture") if re.match("x86_64", target_arch): - grub_src_image = "grub-efi-bootx64.efi" + grub_src_image = "grubx64.efi" grub_dest_image = "bootx64.efi" elif re.match('i.86', target_arch): grub_src_image = "grub-efi-bootia32.efi" @@ -328,7 +335,7 @@ class IsoImagePlugin(SourcePlugin): 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) + grub_src = os.path.join("/usr/lib/grub/x86_64-efi/monolithic/", 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)) @@ -392,29 +399,39 @@ class IsoImagePlugin(SourcePlugin): 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 = "install -m 444 %s/ISOLINUX/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 = "install -m 644 %s/ISOLINUX/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 = "install -m 644 %s/syslinux/modules/bios/ldlinux.c32 " % syslinux_dir install_cmd += "%s/isolinux/ldlinux.c32" % isodir exec_cmd(install_cmd) + # copy squashfs + pkg_suffix = get_bitbake_var('ROOTFS_PACKAGE_SUFFIX') + if not os.path.exists("%s/live" % isodir): + mk_cmd = "mkdir %s/live/" % isodir + exec_cmd(mk_cmd) + + logger.debug("%s/%s.squashfs", (deploy_dir, pkg_suffix)) + if os.path.exists("%s/%s.squashfs" % (deploy_dir, pkg_suffix)): + logger.debug("copy squashfs") + cp_cmd = "cp %s/%s.squashfs %s/live/filesystem.squashfs" % (deploy_dir, pkg_suffix, isodir) + exec_cmd(cp_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 = "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 @@ -444,6 +461,7 @@ class IsoImagePlugin(SourcePlugin): """ iso_img = "%s.p1" % disk.path + iso_img2 = "%s" % disk.path full_path = creator._full_path(workdir, disk_name, "direct") full_path_iso = creator._full_path(workdir, disk_name, "iso") @@ -457,5 +475,6 @@ class IsoImagePlugin(SourcePlugin): # 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, iso_img2) shutil.copy2(iso_img, full_path_iso) shutil.copy2(full_path_iso, full_path) diff --git a/meta/classes/imagetypes.bbclass b/meta/classes/imagetypes.bbclass index a3be0a1d..f65c2368 100644 --- a/meta/classes/imagetypes.bbclass +++ b/meta/classes/imagetypes.bbclass @@ -3,6 +3,13 @@ # # SPDX-License-Identifier: MIT +#image type: squashfs +IMAGER_INSTALL:squashfs += "squashfs-tools" +IMAGE_CMD:squashfs() { + ${SUDO_CHROOT} /bin/mksquashfs \ + '${PP_ROOTFS}' '${IMAGE_FILE_CHROOT}' -noappend +} + #image type: tar IMAGER_INSTALL:tar = "tar" TAR_TRANSFORM = "--transform='s|rootfs|.|'" diff --git a/meta/classes/imagetypes_wic.bbclass b/meta/classes/imagetypes_wic.bbclass index 3b697cdd..ff2608c6 100644 --- a/meta/classes/imagetypes_wic.bbclass +++ b/meta/classes/imagetypes_wic.bbclass @@ -107,7 +107,7 @@ WICVARS += "\ ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS TRANSLATED_TARGET_ARCH" # Isar specific vars used in our plugins -WICVARS += "DISTRO DISTRO_ARCH" +WICVARS += "DISTRO DISTRO_ARCH KERNEL_IMAGETYPE ROOTFS_PACKAGE_SUFFIX" python do_rootfs_wicenv () { wicvars = d.getVar('WICVARS') Jan Kiszka schrieb am Freitag, 4. Oktober 2024 um 09:59:13 UTC+2: > On 28.09.24 17:31, Herbert Bernecker wrote: > > Hi everyone, > > > > I am trying to create an ISO image with Isar and mkhybridiso.wks. > > However, the build fails due to some missing files (grub, syslinux). > > It seems that the files are missing because the grup_cmd and > > syslinux_cmd are not executed in isoimage-isohybrid.py. > > Is this a configuration Problem? > > How are bootimg-pcbios.py and bootimg-efi-isar.py additionally executed? > > > > Used Isar commit: 8b30a4f86cb3ea3369bff3884141872c3a7d9979 > > You will have to convert that plugin to isar, see other examples in > meta/scripts/lib/wic/plugins/source/ like bootimg-biosplusefi.py -> > bootimg-biosplusefi-isar.py. Patches welcome. > > Jan > > -- > Siemens AG, Technology > Linux Expert Center > -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/939743ed-7e16-43e9-9869-1e3de655301dn%40googlegroups.com. ------=_Part_20189_437989956.1730798961151 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi,
i copied/modified isoimage-isohybrid-isar.py from isoimage-isohybr= id.py and used it to create a Debian Live ISO Image.
Patches:

diff --git a/scripts/lib/wic/plugins/source/isoimage-iso= hybrid.py b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py<= br />index afc9ea0f..9ac9e4ee 100644
--- a/scripts/lib/wic/plugins/sou= rce/isoimage-isohybrid.py
+++ b/meta/scripts/lib/wic/plugins/source/is= oimage-isohybrid-isar.py
@@ -2,7 +2,7 @@
=C2=A0# SPDX-License-Ide= ntifier: GPL-2.0-only
=C2=A0#
=C2=A0# DESCRIPTION
-# This im= plements the 'isoimage-isohybrid' source plugin class for 'wic'
+# Thi= s implements the 'isoimage-isohybrid-isar' source plugin class for 'wic'=C2=A0#
=C2=A0# AUTHORS
=C2=A0# Mihaly Varga <mihaly.varga = (at] ni.com>
@@ -12,12 +12,19 @@ import logging
=C2=A0import o= s
=C2=A0import re
=C2=A0import shutil
+import subprocess
=C2=A0
=C2=A0from wic import WicError
=C2=A0from wic.engine imp= ort get_custom_config
=C2=A0from wic.pluginbase import SourcePlugin=C2=A0from wic.misc import exec_cmd, exec_native_cmd, get_bitbake_var=C2=A0
+# allow plugins to import from isarpluginbase
+if '__f= ile__' in globals():
+ =C2=A0 =C2=A0import sys
+ =C2=A0 =C2=A0sys= .path.append(os.path.dirname(os.path.abspath(__file__)) + "/..")
+from= isarpluginbase import (isar_get_filenames, isar_populate_boot_cmd)
+<= br />=C2=A0logger =3D logging.getLogger('wic')
=C2=A0
=C2=A0class= IsoImagePlugin(SourcePlugin):
@@ -43,7 +50,7 @@ class IsoImagePlugin(= SourcePlugin):
=C2=A0 =C2=A0 =C2=A0extension added by direct imeger pl= ugin) and a file named IsoImage-cd.iso
=C2=A0 =C2=A0 =C2=A0"""
= =C2=A0
- =C2=A0 =C2=A0name =3D 'isoimage-isohybrid'
+ =C2=A0 =C2= =A0name =3D 'isoimage-isohybrid-isar'
=C2=A0
=C2=A0 =C2=A0 =C2=A0= @classmethod
=C2=A0 =C2=A0 =C2=A0def do_configure_syslinux(cls, creato= r, cr_workdir):
@@ -170,8 +177,8 @@ class IsoImagePlugin(SourcePlugin)= :
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# Create initrd from= rootfs directory
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0init= rd =3D "%s/initrd.cpio.gz" % cr_workdir
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0initrd_dir =3D "%s/INITRD" % cr_workdir
- =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0shutil.copytree("%s" % rootfs_dir, \
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0"%s" % initrd_dir, symlinks=3DTrue)
+ =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cmd =3D "rsync -avP --numeric-ids --e= xclude=3D'/dev' --exclude=3D'/proc' --exclude=3D'/sys' %s %s" % (rootfs_dir= , initrd_dir)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0subprocess.ca= ll(cmd.split())
=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0if os.path.isfile("%s/init" % rootfs_dir):
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0shutil.copy2("%s/init" % rootfs_di= r, "%s/init" % initrd_dir)
@@ -278,13 +285,13 @@ class IsoImagePlugin(= SourcePlugin):
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0exec_cm= d(cp_cmd)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0else:
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# Prepare initial ramdisk
- =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0initrd =3D "%s/initrd" % deploy_dir
= + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkg_suffix =3D get_bitbake_var('= ROOTFS_PACKAGE_SUFFIX')
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ini= trd =3D "%s/%s-initrd.img" % (deploy_dir, pkg_suffix)
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if not os.path.isfile(initrd):
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0initrd =3D "%s/i= nitrd" % img_iso_dir
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if not= os.path.isfile(initrd):
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0initrd =3D cls._build_initramfs_path(rootfs_dir, cr_workdi= r)
=C2=A0
- =C2=A0 =C2=A0 =C2=A0 =C2=A0install_cmd =3D "install -= m 0644 %s %s/initrd" % (initrd, isodir)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0i= nstall_cmd =3D "install -m 0644 %s/%s %s/initrd" % (cr_workdir, initrd, iso= dir)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0exec_cmd(install_cmd)
=C2= =A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# Remove the temporary file crea= ted by _build_initramfs_path function
@@ -317,7 +324,7 @@ class IsoIma= gePlugin(SourcePlugin):
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0raise WicError("Coludn't find target archite= cture")
=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0if re.match("x86_64", target_arch):
- =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0grub_src_image =3D "gru= b-efi-bootx64.efi"
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0grub_src_image =3D "grubx64.efi"
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0grub_dest_image = =3D "bootx64.efi"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0elif re.match('i.86', target_arch):
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0grub_src_image =3D "gru= b-efi-bootia32.efi"
@@ -328,7 +335,7 @@ class IsoImagePlugin(SourcePlu= gin):
=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0grub_target =3D os.path.join(target_dir, grub_dest_image)
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if not os.pat= h.isfile(grub_target):
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0grub_src =3D os.path.join(deploy_dir, grub_src_imag= e)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0grub_src =3D os.path.join("/usr/lib/grub/x86_64-efi/monolithic/", gru= b_src_image)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0if not os.path.exists(grub_src):
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ra= ise WicError("Grub loader %s is not found in %s. "
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "Please build grub-efi fir= st" % (grub_src_image, deploy_dir))
@@ -392,29 +399,39 @@ class IsoIma= gePlugin(SourcePlugin):
=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= cls.do_configure_syslinux(creator, cr_workdir)
=C2=A0
- =C2=A0 = =C2=A0 =C2=A0 =C2=A0install_cmd =3D "install -m 444 %s/syslinux/ldlinux.sys= " % syslinux_dir
- =C2=A0 =C2=A0 =C2=A0 =C2=A0install_cmd +=3D "%s/is= olinux/ldlinux.sys" % isodir
- =C2=A0 =C2=A0 =C2=A0 =C2=A0exec_cmd(ins= tall_cmd)
=C2=A0
- =C2=A0 =C2=A0 =C2=A0 =C2=A0install_cmd =3D "in= stall -m 444 %s/syslinux/isohdpfx.bin " % syslinux_dir
+ =C2=A0 =C2=A0= =C2=A0 =C2=A0install_cmd =3D "install -m 444 %s/ISOLINUX/isohdpfx.bin " % = syslinux_dir
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0install_cmd +=3D "%s/is= olinux/isohdpfx.bin" % isodir
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0exec_c= md(install_cmd)
=C2=A0
- =C2=A0 =C2=A0 =C2=A0 =C2=A0install_cmd = =3D "install -m 644 %s/syslinux/isolinux.bin " % syslinux_dir
+ =C2=A0= =C2=A0 =C2=A0 =C2=A0install_cmd =3D "install -m 644 %s/ISOLINUX/isolinux.b= in " % syslinux_dir
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0install_cmd +=3D= "%s/isolinux/isolinux.bin" % isodir
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0exec_cmd(install_cmd)
=C2=A0
- =C2=A0 =C2=A0 =C2=A0 =C2=A0inst= all_cmd =3D "install -m 644 %s/syslinux/ldlinux.c32 " % syslinux_dir
+= =C2=A0 =C2=A0 =C2=A0 =C2=A0install_cmd =3D "install -m 644 %s/syslinux/mod= ules/bios/ldlinux.c32 " % syslinux_dir
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0install_cmd +=3D "%s/isolinux/ldlinux.c32" % isodir
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0exec_cmd(install_cmd)
=C2=A0
+ =C2=A0 =C2=A0 = =C2=A0 =C2=A0# copy squashfs
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0pkg_suffix = =3D get_bitbake_var('ROOTFS_PACKAGE_SUFFIX')
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0if not os.path.exists("%s/live" % isodir):
+ =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0mk_cmd =3D "mkdir %s/live/" % isodir
+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0exec_cmd(mk_cmd)
+
+ =C2=A0 =C2= =A0 =C2=A0 =C2=A0logger.debug("%s/%s.squashfs", (deploy_dir, pkg_suffix))+ =C2=A0 =C2=A0 =C2=A0 =C2=A0if =C2=A0os.path.exists("%s/%s.squashfs" %= (deploy_dir, pkg_suffix)):
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0logger.debug("copy squashfs")
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0cp_cmd =3D "cp %s/%s.squashfs =C2=A0%s/live/filesystem.squashfs" % (d= eploy_dir, pkg_suffix, isodir)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0exec_cmd(cp_cmd)
+
+
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0#create ISO image
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0iso_img =3D "%s= /tempiso_img.iso" % cr_workdir
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0iso_b= ootimg =3D "isolinux/isolinux.bin"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0i= so_bootcat =3D "isolinux/boot.cat"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0e= fi_img =3D "efi.img"
=C2=A0
- =C2=A0 =C2=A0 =C2=A0 =C2=A0mkisofs_= cmd =3D "mkisofs -V %s " % part.label
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0mki= sofs_cmd =3D "xorriso -as mkisofs -V %s " % part.label
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0mkisofs_cmd +=3D "-o %s -U " % iso_img
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0mkisofs_cmd +=3D "-J -joliet-long -r -iso-level 2 -= b %s " % iso_bootimg
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mkisofs_cmd += =3D "-c %s -no-emul-boot -boot-load-size 4 " % iso_bootcat
@@ -444,6 += 461,7 @@ class IsoImagePlugin(SourcePlugin):
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0"""
=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0iso_img = =3D "%s.p1" % disk.path
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0iso_img2 =3D "%s"= % disk.path
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0full_path =3D creator._= full_path(workdir, disk_name, "direct")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0full_path_iso =3D creator._full_path(workdir, disk_name, "iso")
= =C2=A0
@@ -457,5 +475,6 @@ class IsoImagePlugin(SourcePlugin):
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# direct plugin adds and configures an an= other MBR.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0logger.debug("Replaceing = the image created by direct plugin\n")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0os.remove(disk.path)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0shutil.copy2(iso_= img, iso_img2)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0shutil.copy2(iso_img,= full_path_iso)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0shutil.copy2(full_pa= th_iso, full_path)

diff --git a/meta/classes/imagetyp= es.bbclass b/meta/classes/imagetypes.bbclass
index a3be0a1d..f65c2368 = 100644
--- a/meta/classes/imagetypes.bbclass
+++ b/meta/classes/i= magetypes.bbclass
@@ -3,6 +3,13 @@
=C2=A0#
=C2=A0# SPDX-Lice= nse-Identifier: MIT
=C2=A0
+#image type: squashfs
+IMAGER_IN= STALL:squashfs +=3D "squashfs-tools"
+IMAGE_CMD:squashfs() {
+ = =C2=A0 =C2=A0${SUDO_CHROOT} /bin/mksquashfs \
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0'${PP_ROOTFS}' '${IMAGE_FILE_CHROOT}' -noappend
+}
+
= =C2=A0#image type: tar
=C2=A0IMAGER_INSTALL:tar =3D "tar"
=C2=A0T= AR_TRANSFORM =3D "--transform=3D's|rootfs|.|'"

d= iff --git a/meta/classes/imagetypes_wic.bbclass b/meta/classes/imagetypes_w= ic.bbclass
index 3b697cdd..ff2608c6 100644
--- a/meta/classes/ima= getypes_wic.bbclass
+++ b/meta/classes/imagetypes_wic.bbclass
@@ = -107,7 +107,7 @@ WICVARS +=3D "\
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS TR= ANSLATED_TARGET_ARCH"
=C2=A0
=C2=A0# Isar specific vars used in o= ur plugins
-WICVARS +=3D "DISTRO DISTRO_ARCH"
+WICVARS +=3D "DIST= RO DISTRO_ARCH KERNEL_IMAGETYPE ROOTFS_PACKAGE_SUFFIX"
=C2=A0
=C2= =A0python do_rootfs_wicenv () {
=C2=A0 =C2=A0 =C2=A0wicvars =3D d.getV= ar('WICVARS')


Jan Kiszka schrieb am Freitag, = 4. Oktober 2024 um 09:59:13 UTC+2:
On 28.09.24 17:31, Herbert Bernecker wrote:
> Hi everyone,
>=20
> I am trying to create an ISO image with Isar and mkhybridiso.wks.
> However, the build fails due to some missing files (grub, syslinux= ).
> It seems that the files are missing because the grup_cmd and
> syslinux_cmd are not executed in isoimage-isohybrid.py.
> Is this a configuration Problem?
> How are bootimg-pcbios.py and bootimg-efi-isar.py additionally exe= cuted?
>=20
> Used Isar commit: 8b30a4f86cb3ea3369bff3884141872c3a7d9979

You will have to convert that plugin to isar, see other examples in
meta/scripts/lib/wic/plugins/source/ like bootimg-biosplusefi.py ->
bootimg-biosplusefi-isar.py. Patches welcome.

Jan

--=20
Siemens AG, Technology
Linux Expert Center

--
You received this message because you are subscribed to the Google Groups &= quot;isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to isar-use= rs+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-use= rs/939743ed-7e16-43e9-9869-1e3de655301dn%40googlegroups.com.
------=_Part_20189_437989956.1730798961151-- ------=_Part_20188_1417724805.1730798961151--