From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v4 2/2] package/systemd: enable building of systemd-boot
Date: Sat, 16 Mar 2019 17:48:14 +0100 [thread overview]
Message-ID: <20190316164814.GA7890@scaer> (raw)
In-Reply-To: <20190315222637.2937-2-james.hilliard1@gmail.com>
James, All,
On 2019-03-16 06:26 +0800, james.hilliard1 at gmail.com spake thusly:
> From: James Hilliard <james.hilliard1@gmail.com>
>
> systemd-boot is the integration of gummiboot into systemd, when
> gummiboot is no longer maintained [0].
>
> Add an option to build systemd-boot as part of the systemd build.
>
> Install the boot files, that can serve as a template for the user
> to tweak for their system.
>
> [0] https://cgit.freedesktop.org/gummiboot/commit/?id=55df1539c9d330732e88bd196afee386db6e4a1d
>
> Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> [yann.morin.1998 at free.fr:
> - add missing depends on i386 || x86_64
> - add missing dependency to gnu-efi
> - add missing boot files (they will be shared with standalone
> systemd-boot later)
Since we do not really have a well-defined plan toward actually having a
standalone systemd-boot anytime soon, this part (that I wrote) should
now be dropped.
No need to resend; this can be fixed by whoever applies that patch.
Regards,
Yann E. MORIN.
> ]
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> ---
> package/systemd/Config.in | 28 +++++++++++++++++++
> package/systemd/boot-files/buildroot.conf | 3 +++
> package/systemd/boot-files/loader.conf | 2 ++
> package/systemd/systemd.mk | 33 +++++++++++++++++++++++
> 4 files changed, 66 insertions(+)
> create mode 100644 package/systemd/boot-files/buildroot.conf
> create mode 100644 package/systemd/boot-files/loader.conf
>
> diff --git a/package/systemd/Config.in b/package/systemd/Config.in
> index 490222f376..63d9ea52e3 100644
> --- a/package/systemd/Config.in
> +++ b/package/systemd/Config.in
> @@ -78,6 +78,34 @@ if BR2_PACKAGE_SYSTEMD
> config BR2_PACKAGE_PROVIDES_UDEV
> default "systemd"
>
> +config BR2_PACKAGE_SYSTEMD_BOOT
> + bool "systemd-boot"
> + depends on BR2_i386 || BR2_x86_64
> + select BR2_PACKAGE_GNU_EFI
> + help
> + systemd-boot is a simple UEFI boot manager which executes
> + configured EFI images. The default entry is selected by a
> + configured pattern (glob) or an on-screen menu.
> +
> + systemd-boot operates on the EFI System Partition (ESP)
> + only. Configuration file fragments, kernels, initrds, other
> + EFI images need to reside on the ESP. Linux kernels need to
> + be built with CONFIG_EFI_STUB to be able to be directly
> + executed as an EFI image.
> +
> + See the Grub2 help text for details on preparing an EFI
> + capable disk image using systemd-boot: the instructions are
> + exactly the same, except that the systemd-boot configuration
> + files will be located in /loader/ inside the EFI partition.
> +
> + https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
> +
> +config BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH
> + string
> + default "ia32" if BR2_i386
> + default "x64" if BR2_x86_64
> + depends on BR2_PACKAGE_SYSTEMD_BOOT
> +
> config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
> bool "HTTP server for journal events"
> select BR2_PACKAGE_LIBMICROHTTPD
> diff --git a/package/systemd/boot-files/buildroot.conf b/package/systemd/boot-files/buildroot.conf
> new file mode 100644
> index 0000000000..16d4d85f4a
> --- /dev/null
> +++ b/package/systemd/boot-files/buildroot.conf
> @@ -0,0 +1,3 @@
> +title Buildroot
> +linux /bzImage
> +options root=/dev/sda2 rootwait console=tty1
> diff --git a/package/systemd/boot-files/loader.conf b/package/systemd/boot-files/loader.conf
> new file mode 100644
> index 0000000000..93b77b8f93
> --- /dev/null
> +++ b/package/systemd/boot-files/loader.conf
> @@ -0,0 +1,2 @@
> +timeout 3
> +default buildroot
> diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> index 928e2dc1b6..5389b7ae3a 100644
> --- a/package/systemd/systemd.mk
> +++ b/package/systemd/systemd.mk
> @@ -26,6 +26,7 @@ SYSTEMD_CONF_OPTS += \
> -Dima=false \
> -Defi=false \
> -Dgnu-efi=false \
> + -Dlibcryptsetup=false \
> -Dldconfig=false \
> -Ddefault-dnssec=no \
> -Dtests=false \
> @@ -352,6 +353,34 @@ else
> SYSTEMD_CONF_OPTS += -Dhibernate=false
> endif
>
> +ifeq ($(BR2_PACKAGE_SYSTEMD_BOOT),y)
> +SYSTEMD_INSTALL_IMAGES = YES
> +SYSTEMD_DEPENDENCIES += gnu-efi
> +SYSTEMD_CONF_OPTS += \
> + -Defi=true \
> + -Dgnu-efi=true \
> + -Defi-cc=$(TARGET_CC) \
> + -Defi-ld=$(TARGET_LD) \
> + -Defi-libdir=$(STAGING_DIR)/usr/lib \
> + -Defi-ldsdir=$(STAGING_DIR)/usr/lib \
> + -Defi-includedir=$(STAGING_DIR)/usr/include/efi
> +
> +SYSTEMD_BOOT_EFI_ARCH = $(call qstrip,$(BR2_PACKAGE_SYSTEMD_BOOT_EFI_ARCH))
> +define SYSTEMD_INSTALL_BOOT_FILES
> + $(INSTALL) -D -m 0644 $(@D)/build/src/boot/efi/systemd-boot$(SYSTEMD_BOOT_EFI_ARCH).efi \
> + $(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(SYSTEMD_BOOT_EFI_ARCH).efi
> + echo "boot$(SYSTEMD_BOOT_EFI_ARCH).efi" > \
> + $(BINARIES_DIR)/efi-part/startup.nsh
> + $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/loader.conf \
> + $(BINARIES_DIR)/efi-part/loader/loader.conf
> + $(INSTALL) -D -m 0644 $(SYSTEMD_PKGDIR)/boot-files/buildroot.conf \
> + $(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf
> +endef
> +
> +else
> +SYSTEMD_CONF_OPTS += -Defi=false -Dgnu-efi=false
> +endif # BR2_PACKAGE_SYSTEMD_BOOT == y
> +
> SYSTEMD_FALLBACK_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME))
> ifneq ($(SYSTEMD_FALLBACK_HOSTNAME),)
> SYSTEMD_CONF_OPTS += -Dfallback-hostname=$(SYSTEMD_FALLBACK_HOSTNAME)
> @@ -376,6 +405,10 @@ SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
> SYSTEMD_INSTALL_MACHINEID_HOOK \
> SYSTEMD_INSTALL_RESOLVCONF_HOOK
>
> +define SYSTEMD_INSTALL_IMAGES_CMDS
> + $(SYSTEMD_INSTALL_BOOT_FILES)
> +endef
> +
> define SYSTEMD_USERS
> - - input -1 * - - - Input device group
> - - systemd-journal -1 * - - - Journal
> --
> 2.17.1
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
prev parent reply other threads:[~2019-03-16 16:48 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-15 22:26 [Buildroot] [PATCH v4 1/2] package/gnu-efi: fix gnu-efi in projects using -nostdinc james.hilliard1 at gmail.com
2019-03-15 22:26 ` [Buildroot] [PATCH v4 2/2] package/systemd: enable building of systemd-boot james.hilliard1 at gmail.com
2019-03-16 16:48 ` Yann E. MORIN [this message]
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=20190316164814.GA7890@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/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.