From patchwork Mon Feb 4 23:11:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Hilliard X-Patchwork-Id: 1036325 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="kB17HzGa"; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43tk3f4nHqz9s3l for ; Tue, 5 Feb 2019 10:11:26 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 35DD38626F; Mon, 4 Feb 2019 23:11:25 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5KAjXFMKvhPZ; Mon, 4 Feb 2019 23:11:23 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 919268692F; Mon, 4 Feb 2019 23:11:23 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 902D91BF3B5 for ; Mon, 4 Feb 2019 23:11:22 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 8D14222699 for ; Mon, 4 Feb 2019 23:11:22 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6lXMPRKDJ2GM for ; Mon, 4 Feb 2019 23:11:22 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-it1-f195.google.com (mail-it1-f195.google.com [209.85.166.195]) by silver.osuosl.org (Postfix) with ESMTPS id E27592154E for ; Mon, 4 Feb 2019 23:11:21 +0000 (UTC) Received: by mail-it1-f195.google.com with SMTP id b5so4054656iti.2 for ; Mon, 04 Feb 2019 15:11:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=ZBZRmgXVHYABDq2mPS/kzS42BsrXFbxVbiY38d7mzSE=; b=kB17HzGapO9LFn8XFcyklL9PE5Qb518qeIPsby9pcKDyqVy6BCwWkr6/NGWsAooEWz c/9r954eEZhRCNLK7hJpWNw2f41hERcYxvyqu0kflyvGqMKq/UG/38CsKGLGr6mCvx/X bP/Ln1Y8m9bOBxfRMJMGmzQ7y0MHY3zfFGvpXmx8Nn9tH2YdunYCegq8cNxmwoCQmEAo IJS5Gm1S5PxBK2SEY5X3ZQ8uF/igZW3dzQRJ89t2JTi1eV2tnfE26yrWuy2QHU65wp/8 FcghxPMA8eH4xNnziOjM+yP8ysKU4lqSGp+lll1VciYQGzvXG5DrNCbYtVRqRffDEAob eJfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ZBZRmgXVHYABDq2mPS/kzS42BsrXFbxVbiY38d7mzSE=; b=MAQpJ4Yx6RrUaQii6nn1fpCFrvLAHwTSJVVExoL1KlZSKZtHtwd7HvlEJrmQjA7Bjf popafUn3tod9+7YHdonLDM/Y/dB03owFbb/Xg91V65NXRaKR2qtMg0Eu2W6UAGG905mi 9U7RN4P4t4+CAN83rv61z9zj+hI1oGs/zpJD0w3m0Gmd/tH6eOos/rZMtpkTylCaj/pz +4PEK22sMbmw7bTTK1fZsoIADCNbavu+hg6H3EGHBkCY/fLDek+9TolzbJG0mrkijRxJ wqU6KGaFfuikrLUz8ESIEocw46VybohBSYdkcvwR8wHSAq92Xcpl0N30KpR/XhJJS0h3 gRLg== X-Gm-Message-State: AHQUAuZX57Z6/nU7ezDCyqdAUhi6vQlbaYG+dmnSS49gcVzT58xIxT7v Yt8d0vRWsKRF3KNe8JkIpzVUW4SW X-Google-Smtp-Source: AHgI3IayC9UxWR+WEiKzE9MsoADlPK9CATo6D7YVu1gURrrOLeW9MArGYFWiMxe9q/tjwKOOdKBzrg== X-Received: by 2002:a6b:1583:: with SMTP id 125mr1120842iov.102.1549321880703; Mon, 04 Feb 2019 15:11:20 -0800 (PST) Received: from dragon.Home (97-118-109-38.hlrn.qwest.net. [97.118.109.38]) by smtp.gmail.com with ESMTPSA id m45sm664865iti.10.2019.02.04.15.11.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 04 Feb 2019 15:11:20 -0800 (PST) From: james.hilliard1@gmail.com To: buildroot@buildroot.org Date: Tue, 5 Feb 2019 07:11:17 +0800 Message-Id: <1549321878-9108-1-git-send-email-james.hilliard1@gmail.com> X-Mailer: git-send-email 2.7.4 Subject: [Buildroot] [PATCH v2 1/2] package/systemd: enable building of systemd-boot X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: James Hilliard , Fabrice Fontaine , "Yann E . MORIN" , Thomas Petazzoni , Maxime Hadjinlian MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: James Hilliard 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 [yann.morin.1998@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) ] Signed-off-by: "Yann E. MORIN" --- package/systemd/Config.in | 28 +++++++++++++++++++++++++ package/systemd/boot-files/buildroot.conf | 3 +++ package/systemd/boot-files/loader.conf | 2 ++ package/systemd/systemd.mk | 34 +++++++++++++++++++++++++++++-- 4 files changed, 65 insertions(+), 2 deletions(-) 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 25f322e..a99358f 100644 --- a/package/systemd/Config.in +++ b/package/systemd/Config.in @@ -77,6 +77,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 0000000..16d4d85 --- /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 0000000..93b77b8 --- /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 f9df66b..23816a6 100644 --- a/package/systemd/systemd.mk +++ b/package/systemd/systemd.mk @@ -24,8 +24,6 @@ SYSTEMD_CONF_OPTS += \ -Dman=false \ -Dima=false \ -Dlibcryptsetup=false \ - -Defi=false \ - -Dgnu-efi=false \ -Dldconfig=false \ -Ddefault-dnssec=no \ -Dtests=false \ @@ -338,6 +336,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) @@ -362,6 +388,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