public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
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


  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox