Subject: Re: [PATCH 5/9] gnu: ovmf-aarch64: Update installed firmware.

From: Efraim Flashner <[email-masked]>
Date: Sun, 23 Mar 2025 17:21:29 +0200

On Sat, Mar 22, 2025 at 04:10:46PM +0900, Maxim Cournoyer wrote:
> Hi,
> 
> Efraim Flashner <[email-masked]> writes:
> 
> > * gnu/packages/firmware.scm (ovmf-aarch64)[arguments]: Adjust the
> > 'install phase to install another binary and to truncate the file to the
> > expected length.
> >
> > Change-Id: I53958d5f2ca392e1033630e1dfd29d86c25a74fc
> > ---
> >  gnu/packages/firmware.scm | 11 ++++++++---
> >  1 file changed, 8 insertions(+), 3 deletions(-)
> >
> > diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
> > index e7d2e390acc..049fd9246fb 100644
> > --- a/gnu/packages/firmware.scm
> > +++ b/gnu/packages/firmware.scm
> > @@ -1190,9 +1190,14 @@ (define-public ovmf-aarch64
> >                   (lambda _
> >                     (let ((fmw (string-append #$output "/share/firmware")))
> >                      (mkdir-p fmw)
> > -                    (copy-file (string-append "Build/ArmVirtQemu-AARCH64/"
> > -                                              "RELEASE_GCC/FV/QEMU_EFI.fd")
> > -                               (string-append fmw "/ovmf_aarch64.bin"))))))))))))
> > +                    (with-directory-excursion "Build/ArmVirtQemu-AARCH64/RELEASE_GCC/FV"
> > +                      ;; Make the files the desired length and then install them
> > +                      (truncate-file "QEMU_EFI.fd" (* 64 1024 1024))
> > +                      (truncate-file "QEMU_VARS.fd" (* 64 1024 1024))
> > +                      (copy-file "QEMU_VARS.fd"
> > +                                 (string-append fmw "/ovmf_vars_aarch64.bin"))
> > +                      (copy-file "QEMU_EFI.fd"
> > +                                 (string-append fmw "/ovmf_aarch64.bin")))))))))))))
> 
> It's surprising that the firmware files must be truncated; does it not
> work if we leave them at their original size (and what would that be?).
> Expounding the explanatory comment would help.

ovmf_aarch64.bin is currently 2097152 bytes (2.0 Mb). I'll try to find
an actual explanation somewhere, but Debian also uses truncate on their
files¹

¹ https://sources.debian.org/src/edk2/2024.11-5/debian/rules/#L249

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted