From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.6 Received: by atuin.qyliss.net (Postfix, from userid 496) id 2C63EA656; Sun, 12 Dec 2021 15:51:17 +0000 (UTC) Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id E577CA60E; Sun, 12 Dec 2021 15:50:51 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id 8999DA5CD; Sun, 12 Dec 2021 15:50:49 +0000 (UTC) Received: from mail.yuka.dev (mail.yuka.dev [195.39.247.168]) by atuin.qyliss.net (Postfix) with ESMTPS id 92384A5C4 for ; Sun, 12 Dec 2021 15:50:47 +0000 (UTC) From: Yureka DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yuka.dev; s=mail; t=1639324247; bh=aRCVaN2EyQ488hrd0iYvWczaTny6zN2gauohkYQsFWI=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=ZYgYVQH11dyZF74pBAUcsFZmkJf/Kvf5bdU+8Ec12QJr3UNQ0zH/5Lo2ZYih6E3mh cU2r0sCG2+pjZlgKBjWptH2K33Th3iWiPzTp4BVTYmKhlfkUT6vq5pa8eCpiHvN1DF JFtu7U2OK3N26hcC2213tp8MTamDcj6ETCwCqvfU= To: devel@spectrum-os.org Subject: [PATCH 2/2] speed up installer image build Date: Sun, 12 Dec 2021 16:50:36 +0100 Message-Id: <20211212155036.3624860-2-yuka@yuka.dev> In-Reply-To: <20211212155036.3624860-1-yuka@yuka.dev> References: <20211212155036.3624860-1-yuka@yuka.dev> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: NJDDT4PNPO6XONVX6L54PEWLTWZKXIKH X-Message-ID-Hash: NJDDT4PNPO6XONVX6L54PEWLTWZKXIKH X-MailFrom: yuka@yuka.dev X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Yureka X-Mailman-Version: 3.3.4 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --- installer/default.nix | 33 ++++++++++++++++++++------------- installer/grub.cfg.in | 10 ++++++++++ 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/installer/default.nix b/installer/default.nix index 39933d9..8c2a3d0 100644 --- a/installer/default.nix +++ b/installer/default.nix @@ -21,6 +21,22 @@ let ] ++ config.boot.kernelParams); }; + efi = runCommand "efi.img" { + nativeBuildInputs = [ grub libfaketime dosfstools mtools ]; + } '' + install -D ${grubCfg} files/grub/grub.cfg + cp -r ${grub}/lib/grub/${grub.grubTarget} files/grub/ + cp ${grub}/share/grub/unicode.pf2 files/grub/ + grub-mkimage -o grubx64.efi -p "(hd0,gpt1)/grub" -O ${grub.grubTarget} part_gpt fat + install -D grubx64.efi files/EFI/BOOT/BOOTX64.EFI + + img=$out + truncate -s 15M $img + faketime "1970-01-01 00:00:00" mkfs.vfat -i 0x2178694e -n EFI $img + (cd files; mcopy -psvm -i $img ./* ::) + fsck.vfat -vn $img + ''; + installer = runCommand "installer.img" { nativeBuildInputs = [ squashfs-tools-ng ]; } '' @@ -47,7 +63,7 @@ let ''); in -vmTools.runInLinuxVM (runCommand "spectrum-installer" { +runCommand "spectrum-installer" { nativeBuildInputs = [ dosfstools grub jq kmod util-linux systemdMinimal ]; } '' blockSize() { @@ -60,7 +76,7 @@ vmTools.runInLinuxVM (runCommand "spectrum-installer" { dd if="$3" of="$1" seek="$start" count="$size" conv=notrunc } - efiSize=40000 + efiSize="$(blockSize ${efi})" installerSize="$(blockSize ${installer})" eosimagesSize="$(blockSize ${eosimages})" @@ -72,16 +88,7 @@ vmTools.runInLinuxVM (runCommand "spectrum-installer" { size=$eosimagesSize, type=56a3bbc3-aefa-43d9-a64d-7b3fd59bbc4e EOF + fillPartition $out 0 ${efi} fillPartition $out 1 ${installer} fillPartition $out 2 ${eosimages} - - modprobe loop - loop="$(losetup -P --show -f $out)" - mkfs.vfat "$loop"p1 - mkdir /mnt - mount "$loop"p1 /mnt - grub-install --target ${grub.grubTarget} --removable \ - --boot-directory /mnt --efi-directory /mnt "$loop" - cp ${grubCfg} /mnt/grub/grub.cfg - umount /mnt -'') +'' diff --git a/installer/grub.cfg.in b/installer/grub.cfg.in index 46171ec..e4370f1 100644 --- a/installer/grub.cfg.in +++ b/installer/grub.cfg.in @@ -1,6 +1,16 @@ # SPDX-License-Identifier: EUPL-1.2 # SPDX-FileCopyrightText: 2021 Alyssa Ross +insmod efi_gop +insmod efi_uga +insmod font +loadfont /grub/unicode.pf2 +insmod gfxterm +set gfxmode=auto +set gfxpayload=keep +terminal_output gfxterm +set timeout=5 + menuentry "Try Spectrum" { loopback live (hd0,gpt3)/Spectrum-0.0-x86_64-generic.0.Live.img chainloader (live,gpt1)/efi/boot/bootx64.efi -- 2.34.0