From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Luca Bocassi <luca.boccassi@gmail.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>,
openembedded-core@lists.openembedded.org, raj.khem@gmail.com
Subject: Re: [OE-core] [PATCH v8] systemd: update to v254
Date: Mon, 7 Aug 2023 16:40:24 +0200 [thread overview]
Message-ID: <202308071440247bbfcdd8@mail.local> (raw)
In-Reply-To: <CAMw=ZnQ9VDL=TCUzfsSRiGujCyb_-ZO50S3+UFckDh6LkTgnWw@mail.gmail.com>
Hello,
I've been looking a bit more at this. there is definitively another
issue here which is the first one I found:
x86_64-poky-linux-objcopy: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: file format not recognized
This is the main issue here.
$ file /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub
/home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: MS-DOS executable PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows
$ objdump -p /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub (.reloc): section flag STYP_GROUP (0x4) ignored
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub (.reloc): section flag STYP_COPY (0x10) ignored
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: warning: ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .reloc
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub (.reloc): section flag STYP_GROUP (0x4) ignored
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub (.reloc): section flag STYP_COPY (0x10) ignored
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: warning: ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .reloc
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: file format not recognized
I tested with v253.7 and I properly get:
$ file /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub
/home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows
$ ./build-st/tmp/sysroots-components/x86_64/binutils-cross-x86_64/usr/bin/x86_64-poky-linux/x86_64-poky-linux-objdump -h /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub
/home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: file format pei-x86-64
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000d7f0 0000000000004000 0000000000004000 00000400 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .reloc 0000000c 0000000000012000 0000000000012000 0000dc00 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .data 00002ab0 0000000000013000 0000000000013000 0000de00 2**4
CONTENTS, ALLOC, LOAD, DATA
3 .dynamic 00000100 0000000000016000 0000000000016000 00010a00 2**2
CONTENTS, ALLOC, LOAD, DATA
4 .rela 00000630 0000000000017000 0000000000017000 00010c00 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .dynsym 00000018 0000000000018000 0000000000018000 00011400 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .sdmagic 0000002a 000000000001a460 000000000001a460 00011600 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
I really believe the recipe is not generating a working efi.stub. Can
you check?
On 06/08/2023 14:56:16+0100, Luca Bocassi wrote:
> On Sun, 6 Aug 2023 at 14:50, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> >
> > On Sun, 2023-08-06 at 14:34 +0100, Luca Bocassi wrote:
> > > On Sun, 6 Aug 2023 at 14:22, Alexandre Belloni
> > > <alexandre.belloni@bootlin.com> wrote:
> > > >
> > > > On 06/08/2023 14:15:27+0100, Luca Bocassi wrote:
> > > > > Where does that objcopy command come from? It looks awfully like it is
> > > > > hard-coding VMAs? That cannot possibly work reliably, the actual VMAs
> > > > > have to be calculated based on the components being added to the PE.
> > > > > I'd recommend to use 'ukify' as that makes it much easier, and
> > > > > actually we have an intern working to add a bbclass for that just now.
> > > > > But it's not needed, you can do the calculations by hand too, dracut
> > > > > used to do something similar and was fixed some months ago iirc.
> > > >
> > > > This is from do_prepare_partition in scripts/lib/wic/plugins/source/bootimg-efi.py
> > >
> > > https://git.yoctoproject.org/poky/plain/scripts/lib/wic/plugins/source/bootimg-efi.py
> > >
> > > objcopy_cmd = "%s-objcopy" % target_sys
> > > objcopy_cmd += " --enable-deterministic-archives"
> > > objcopy_cmd += " --preserve-dates"
> > > objcopy_cmd += " --add-section
> > > .osrel=%s/usr/lib/os-release" % staging_dir_host
> > > objcopy_cmd += " --change-section-vma .osrel=0x20000"
> > > objcopy_cmd += " --add-section .cmdline=%s" % cmdline.name
> > > objcopy_cmd += " --change-section-vma .cmdline=0x30000"
> > > objcopy_cmd += dtb_params
> > > objcopy_cmd += " --add-section .linux=%s/%s" %
> > > (staging_kernel_dir, kernel)
> > > objcopy_cmd += " --change-section-vma .linux=0x2000000"
> > > objcopy_cmd += " --add-section .initrd=%s" % initrd.name
> > > objcopy_cmd += " --change-section-vma .initrd=0x3000000"
> > > objcopy_cmd += " %s %s/EFI/Linux/linux.efi" % (efi_stub, hdddir)
> > >
> > > Yeah that's a bug, and it needs to be fixed, those sizes can't be
> > > hard-coded like that, as soon as you build a slightly different stub
> > > it's going to break.
> >
> > Given this is causing multiple breakages on the automated testing, the
> > systemd upgrade shouldn't have merged. It has. Technically I should
> > really just revert everything (the upgrade and the fixes on top) and
> > wait until someone has a fix for this. I'd prefer not to since we
> > obviously do want to upgrade eventually.
> >
> > Is there anything we can do with this short term to make things work?
> > Can the offsets we need be read from somewhere?
>
> The Arch wiki has good and concise documentation on how to do it:
>
> https://wiki.archlinux.org/title/Unified_kernel_image#Manually
>
> This is the equivalent fix that was merged in Dracut some months ago:
>
> https://github.com/dracutdevs/dracut/commit/f32e95bcadbc5158843530407adc1e7b700561b1
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#185570): https://lists.openembedded.org/g/openembedded-core/message/185570
> Mute This Topic: https://lists.openembedded.org/mt/100516497/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2023-08-07 14:40 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-28 20:44 [PATCH] systemd: update to v254 luca.boccassi
2023-07-30 8:06 ` [OE-core] " Alexandre Belloni
2023-07-30 12:36 ` Luca Boccassi
2023-07-30 12:43 ` Alexander Kanavin
2023-07-30 15:23 ` Luca Boccassi
2023-07-30 12:40 ` [PATCH v2] " luca.boccassi
2023-07-30 15:22 ` [PATCH v3] " luca.boccassi
2023-07-31 11:27 ` [PATCH v4] " luca.boccassi
2023-07-31 16:40 ` [OE-core] " Alexandre Belloni
2023-07-31 16:41 ` Alexandre Belloni
2023-07-31 16:56 ` Luca Boccassi
2023-07-31 17:13 ` Alexandre Belloni
2023-07-31 17:22 ` Luca Boccassi
2023-07-31 17:33 ` Alexander Kanavin
[not found] ` <1777043202ABE7FB.4565@lists.openembedded.org>
2023-07-31 17:37 ` Alexander Kanavin
2023-07-31 18:00 ` Luca Boccassi
2023-08-02 8:12 ` Luca Boccassi
2023-08-02 17:14 ` Khem Raj
2023-08-02 17:21 ` Luca Boccassi
2023-08-02 17:42 ` Khem Raj
2023-08-02 18:55 ` Luca Boccassi
2023-07-31 17:21 ` [PATCH v5] " luca.boccassi
2023-07-31 18:00 ` [PATCH v6] " luca.boccassi
2023-08-02 18:54 ` [PATCH v7] " luca.boccassi
2023-08-02 19:27 ` Khem Raj
2023-08-02 23:16 ` Luca Boccassi
2023-08-03 18:34 ` Luca Boccassi
2023-08-03 19:29 ` Khem Raj
2023-08-04 10:38 ` [OE-core] " Alexandre Belloni
2023-08-02 23:16 ` [PATCH v8] " luca.boccassi
2023-08-06 12:38 ` [OE-core] " Alexandre Belloni
2023-08-06 13:15 ` Luca Boccassi
2023-08-06 13:22 ` Alexandre Belloni
2023-08-06 13:34 ` Luca Boccassi
2023-08-06 13:50 ` Richard Purdie
2023-08-06 13:56 ` Luca Boccassi
2023-08-07 14:40 ` Alexandre Belloni [this message]
2023-08-07 22:37 ` Alexandre Belloni
2023-08-07 22:48 ` Luca Boccassi
2023-08-08 0:01 ` Khem Raj
2023-08-08 0:51 ` Alexandre Belloni
2023-08-08 16:10 ` Jose Quaresma
2023-08-09 15:01 ` Luca Boccassi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202308071440247bbfcdd8@mail.local \
--to=alexandre.belloni@bootlin.com \
--cc=luca.boccassi@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=raj.khem@gmail.com \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.