Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2224863/?format=api
{ "id": 2224863, "url": "http://patchwork.ozlabs.org/api/patches/2224863/?format=api", "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/20260419-wip-obbardc-boot-efibootguard-initial-pkg-v2-2-1420c48f78fa@gmail.com/", "project": { "id": 27, "url": "http://patchwork.ozlabs.org/api/projects/27/?format=api", "name": "Buildroot development", "link_name": "buildroot", "list_id": "buildroot.buildroot.org", "list_email": "buildroot@buildroot.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260419-wip-obbardc-boot-efibootguard-initial-pkg-v2-2-1420c48f78fa@gmail.com>", "list_archive_url": null, "date": "2026-04-19T00:20:52", "name": "[v2,2/2] board/pc-efibootguard: add example efibootguard recipe", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "3934aba4a1a76ca9234baae69670738a4077fbc2", "submitter": { "id": 80843, "url": "http://patchwork.ozlabs.org/api/people/80843/?format=api", "name": "Christopher Obbard", "email": "obbardc@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/20260419-wip-obbardc-boot-efibootguard-initial-pkg-v2-2-1420c48f78fa@gmail.com/mbox/", "series": [ { "id": 500478, "url": "http://patchwork.ozlabs.org/api/series/500478/?format=api", "web_url": "http://patchwork.ozlabs.org/project/buildroot/list/?series=500478", "date": "2026-04-19T00:20:50", "name": "Add efibootguard bootloader package & example recipe", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/500478/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2224863/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2224863/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<buildroot-bounces@buildroot.org>", "X-Original-To": [ "incoming-buildroot@patchwork.ozlabs.org", "buildroot@buildroot.org" ], "Delivered-To": [ "patchwork-incoming-buildroot@legolas.ozlabs.org", "buildroot@buildroot.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=buildroot.org header.i=@buildroot.org\n header.a=rsa-sha256 header.s=default header.b=HWH4SRFX;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org\n (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org;\n envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org)" ], "Received": [ "from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fyq6Z3r3bz1yDF\n\tfor <incoming-buildroot@patchwork.ozlabs.org>;\n Sun, 19 Apr 2026 10:21:26 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 0BD7B40F6F;\n\tSun, 19 Apr 2026 00:21:23 +0000 (UTC)", "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id O7KWHNzOjubV; Sun, 19 Apr 2026 00:21:21 +0000 (UTC)", "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id DF07E40F60;\n\tSun, 19 Apr 2026 00:21:20 +0000 (UTC)", "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n by lists1.osuosl.org (Postfix) with ESMTP id F2B3D35B\n for <buildroot@buildroot.org>; Sun, 19 Apr 2026 00:21:17 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id E458F814DE\n for <buildroot@buildroot.org>; Sun, 19 Apr 2026 00:21:17 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id fM5HxziR_Jar for <buildroot@buildroot.org>;\n Sun, 19 Apr 2026 00:21:17 +0000 (UTC)", "from mail-wm1-x336.google.com (mail-wm1-x336.google.com\n [IPv6:2a00:1450:4864:20::336])\n by smtp1.osuosl.org (Postfix) with ESMTPS id C5CBE814C3\n for <buildroot@buildroot.org>; Sun, 19 Apr 2026 00:21:16 +0000 (UTC)", "by mail-wm1-x336.google.com with SMTP id\n 5b1f17b1804b1-488a29e6110so16454495e9.3\n for <buildroot@buildroot.org>; Sat, 18 Apr 2026 17:21:16 -0700 (PDT)", "from localhost (host86-170-11-80.range86-170.btcentralplus.com.\n [86.170.11.80]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488fc1393d3sm246504025e9.11.2026.04.18.17.21.13\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 18 Apr 2026 17:21:13 -0700 (PDT)" ], "X-Virus-Scanned": [ "amavis at osuosl.org", "amavis at osuosl.org" ], "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org;\n receiver=<UNKNOWN> ", "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 smtp4.osuosl.org DF07E40F60", "OpenDKIM Filter v2.11.0 smtp1.osuosl.org C5CBE814C3" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildroot.org;\n\ts=default; t=1776558081;\n\tbh=uvR53R4+ZW5hYSbtZpUEN1b4iAtPK06IRzF/vQ0buaE=;\n\th=From:Date:References:In-Reply-To:To:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t Cc:From;\n\tb=HWH4SRFX+O4qKSrY/v3BLYd7f429S2hsyz4PXWpYhkXe2zkv84LBhdhkNYfPgGj/O\n\t pm1BQ7Ls7wMmsNkrYiMI5OuX8hezStwpnLi6Sqi61/a52GysdpjNRxLpCKcJUSoecy\n\t IIuIZy8rC8QYvKg2DhpRHstqaJh6Hs7L1FkCmknMh2ZXv/5CE8jdeuaj5fB70vjPzd\n\t wlM36wZLdl6aV/E7v1ImK3V6DGyNdx5XQWHswi2e6FYWf5mShj6chgw15VHc3Ub9Xe\n\t 0wkPo1ZrEA3ZIsp4dYVpziZNP80McCXSknNdS9R5mYqyLqzSGff1Up+EuxzzBYgLKN\n\t Ci5abP100B5QA==", "Received-SPF": "Pass (mailfrom) identity=mailfrom;\n client-ip=2a00:1450:4864:20::336; helo=mail-wm1-x336.google.com;\n envelope-from=obbardc@gmail.com; receiver=<UNKNOWN>", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org C5CBE814C3", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776558074; x=1777162874;\n h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=sBle49uuqOkxIyAHC06lvZq3WJkLpql3+9Wrahl/VR8=;\n b=b5L0nnhvtvOcG768a2A4cd8dZVMUoAthGU7PHGe8vx2AD2lQMrFAJdc2CaYXjKWyl2\n /Xv2tvK4QVrkMlTcLRBqkOrFW66isykX6jaTEw7CNIgmSW3+/TJA6h3t1WGV96wnGBb2\n UXVBGmHGm75YGvbns0Rcs1YpXuO7pJjYH/aIgB0WSvNTiyqadZwahL9ZmFj2+81sDv59\n zuggbxuLzZz3NUybk0uRF3xKqi9FduqT3udArLKYkLDzWL2TKdu1DdDtHm5dC46hs82d\n cM63M8ibEr++3qzJYpzlXdLqG5jAsxA3M6nJ8He0+Zspb6OmDIPFAPJ/BRntdqfoqfsD\n bJ5A==", "X-Gm-Message-State": "AOJu0YzqbiC8AMIMo+3tFDZHb0t6LBHAk+hOVeuy/aDpTs436O5TqPfJ\n gfFL4HYz+cykNjsLF5ulz4rTIWtSWp9Z7Tkd287s0GRGep3ll8intFYz", "X-Gm-Gg": "AeBDievz5wyREApVTgAYrbOkbOoFK58pni/mzlEkrImhl3mh3sdVl2IupbTprWyBq8f\n lZsieWoylR4+2+sUrB/LlYYVSQLEjkrlDHt0zQ2qQgpoE+3G2tHzBH+f0SUwvHA4qKV5HthJCSv\n 55T5ST3KoYjAvPlfmDVNvI0eL4c3UYY29URlRMnCkIdmhVP6F9kPta2Ztjx6hSb3HexCbaKVtEE\n IcKuuyMMFXBdJHa/z3xBn5trtKrce/HnIiiAOlmaWri5MwWpYTuDSGBLxdaLqoXxqTEcrWNEcFe\n Qq6iIR5hWSyfPoRzmEycn03otLV9s528b1tylyu1lQtRvRMHdx9ppZuH5I4BPAFDxOhQpKNXIqG\n oxeyIFtWYK/DGaNJ+T33wIZV424u04WO4f8nzrGt1xJozsEgZXdZeI3NexGWfCBwu1dBBU33JQg\n 7ZADt//OzZeL0dVnEQE/l82Nu3t09WzHBwR8f2hfNImQrmaoI3n6rXSoTlxw0//V0WMziWkbL6e\n BjaZHJT9gP3kbY1QwVx4JmAA10ENTJ09Cza1MR3KsygLCDohbw8nkRsDVh47371SV0bMZ6zxY9V\n fL5B+NNfiBYwS5biOpa66v7Ts5LUtZY1TjdWHo9+dfpl/4ny/tSmj+aMgQfERYCdeIJJK4xbp1k\n 6iOBKfJ9ETajh3JA=", "X-Received": "by 2002:a05:600c:a309:b0:488:af14:f1da with SMTP id\n 5b1f17b1804b1-488fb74dd31mr89788895e9.7.1776558074354;\n Sat, 18 Apr 2026 17:21:14 -0700 (PDT)", "From": "Christopher Obbard <obbardc@gmail.com>", "Date": "Sun, 19 Apr 2026 01:20:52 +0100", "MIME-Version": "1.0", "Message-Id": "\n <20260419-wip-obbardc-boot-efibootguard-initial-pkg-v2-2-1420c48f78fa@gmail.com>", "References": "\n <20260419-wip-obbardc-boot-efibootguard-initial-pkg-v2-0-1420c48f78fa@gmail.com>", "In-Reply-To": "\n <20260419-wip-obbardc-boot-efibootguard-initial-pkg-v2-0-1420c48f78fa@gmail.com>", "To": "buildroot@buildroot.org", "X-Mailer": "b4 0.14.3", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=8582; i=obbardc@gmail.com;\n h=from:subject:message-id; bh=Tsz4Ygx+RMK9cQiwnmTEB25EUbz7FfKvJcqY6bUrrjU=;\n b=owEBbQKS/ZANAwAKAWNNxPBocEb4AcsmYgBp5B/22f4yPXBiuLX/GJWr0qLPNiDvnG+ueGH+R\n H1PVCUoC5mJAjMEAAEKAB0WIQTxi9yLbCX5CqI9UXRjTcTwaHBG+AUCaeQf9gAKCRBjTcTwaHBG\n +OoPD/9iSETURdj8N5VLaF2rE2gDp+iUB5DD+aXgfqPKK95YoEl4qZSX4yxuuXeaWDk0Cu9Q8PB\n +Mc3m6QZUM4ON0wGFEG/dK8j2osWv5FlEVO7kQyoK3TA4YlAFIAZb0zN2Rw84856+E+wpG8QfH5\n q3ytUs4rFNTRvVguqhC2qtUG/H3CBPbcjEVlgicjuP1NZNIv6GXWgvmFnPsSPtTtwMwIvho3WlC\n LBwG7zB364N4WHGQSS9Qgz/ei1jE4WqN+2V2U+8HX7c6aT8Rz1x5AUk4tFkbZSHl1haKap8luGA\n 2sDvlmesdrOM5ebe6XVQ9qk5i1H3VxRaHXxJKiIwER24Ub+eOtdbNWY1gR5JWVyptz1hyD4lToK\n EQAeMirID6h/Kx0mXtGDz6RYWxE1VDLmBuLfjKmocEZn2usE3vdjcBPTalOTMGI6ymAUrts/xUS\n tk70al2067iL5zQno2C1A4nQccG+bG4yHe9rT08q3EZlgjkaX2/g9kbf9IGyiTXjCNSULkT1WqY\n rSXpqY1OkSXu7yfyfW34hmRPSLULvXlVr4sTZvCAVHq2E2mRRc/PfYMMLq+juatss/7dhIMqaKR\n 39zbk9b/himNcM4AMs+8fe6zX/Qv/EPn6Eju8geTIbdM8NHhxH2SXd/b+BGPCYhhCbIwzuEAI/r\n PZk4DK9/h9Qr/9g==", "X-Developer-Key": "i=obbardc@gmail.com; a=openpgp;\n fpr=F18BDC8B6C25F90AA23D5174634DC4F0687046F8", "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776558074; x=1777162874; darn=buildroot.org;\n h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n :mime-version:subject:date:from:from:to:cc:subject:date:message-id\n :reply-to;\n bh=sBle49uuqOkxIyAHC06lvZq3WJkLpql3+9Wrahl/VR8=;\n b=Zso0HLbb32WHGPGgk+t7r6gL0ltEKMUc84b81R2TvtFGSWWp/wiRdt974xEor/Kabd\n BIDFraCnRpvd6LSXJ3WjZT7pJ4QYIdB6eVZ+wJ9wE4yjChAPxB5hyRSSLmCy2KYHSlbO\n RvOlf/UGVMzuAJmYU4d/Tmj3eryHRgY1y7seu9TwZOfaThud4wisLBZyM03qluItps1o\n mmdBXnqCcV7vwW/3145smW8o0CiczvWPjg6o+KdQXRHJpOnCVabVnKgIewVzP5LJV2aA\n Pd1SwSxXiU/5yAHaZ11jQwmMXuWySngDnlwiDqrTMqZcQMJzhANG86cgEqJpyEXLoeuu\n 159A==", "X-Mailman-Original-Authentication-Results": [ "smtp1.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=gmail.com", "smtp1.osuosl.org;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.a=rsa-sha256 header.s=20251104 header.b=Zso0HLbb" ], "Subject": "[Buildroot] [PATCH v2 2/2] board/pc-efibootguard: add example\n efibootguard recipe", "X-BeenThere": "buildroot@buildroot.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Discussion and development of buildroot <buildroot.buildroot.org>", "List-Unsubscribe": "<https://lists.buildroot.org/mailman/options/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=unsubscribe>", "List-Archive": "<http://lists.buildroot.org/pipermail/buildroot/>", "List-Post": "<mailto:buildroot@buildroot.org>", "List-Help": "<mailto:buildroot-request@buildroot.org?subject=help>", "List-Subscribe": "<https://lists.buildroot.org/mailman/listinfo/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=subscribe>", "Cc": "James Hilliard <james.hilliard1@gmail.com>,\n Christopher Obbard <obbardc@gmail.com>, efibootguard-dev@googlegroups.com,\n Thomas Petazzoni <thomas.petazzoni@bootlin.com>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "buildroot-bounces@buildroot.org", "Sender": "\"buildroot\" <buildroot-bounces@buildroot.org>" }, "content": "Add an example recipe (based on configs/pc_x86_64_efi_defconfig) to\ngenerate an x86-64 image which boots the system using the efibootguard\nbootloader. The recipe is an example of how to create an image using\nefibootguard, including how to create the disk image & how to configure\nefibootguard.\n\nThe created example image contains two boot slots; one of which contains\nthe kernel and the other is a dummy slot (e.g. cannot be booted from).\n\nAlso add instructions (and a silly script) to boot the example image\nwith QEMU.\n\nSigned-off-by: Christopher Obbard <obbardc@gmail.com>\n---\n DEVELOPERS | 2 +\n board/pc-efibootguard/genimage.cfg | 59 ++++++++++++++++++++++++++++\n board/pc-efibootguard/linux-efistub.fragment | 4 ++\n board/pc-efibootguard/post-build.sh | 35 +++++++++++++++++\n board/pc-efibootguard/post-image.sh | 7 ++++\n board/pc-efibootguard/readme.txt | 30 ++++++++++++++\n board/pc-efibootguard/run-image-qemu.sh | 9 +++++\n configs/pc_x86_64_efibootguard_defconfig | 51 ++++++++++++++++++++++++\n 8 files changed, 197 insertions(+)", "diff": "diff --git a/DEVELOPERS b/DEVELOPERS\nindex f64a5d6370..1b8d27bcf1 100644\n--- a/DEVELOPERS\n+++ b/DEVELOPERS\n@@ -699,6 +699,8 @@ F:\tpackage/perl-x10/\n \n N:\tChristopher Obbard <obbardc@gmail.com>\n F:\tboot/efibootguard/\n+F:\tboard/pc-efibootguard/\n+F:\tconfigs/pc_x86_64_efibootguard_defconfig\n \n N:\tClayton Shotwell <clayton.shotwell@collins.com>\n F:\tpackage/audit/\ndiff --git a/board/pc-efibootguard/genimage.cfg b/board/pc-efibootguard/genimage.cfg\nnew file mode 100644\nindex 0000000000..2437a89b63\n--- /dev/null\n+++ b/board/pc-efibootguard/genimage.cfg\n@@ -0,0 +1,59 @@\n+image EFI.vfat {\n+\tvfat {\n+\t\tfile EFI/BOOT/BOOTX64.EFI {\n+\t\t\timage = \"efibootguard/efibootguardx64.efi\"\n+\t\t}\n+\t}\n+\n+\tsize = 16352K # 16MB - 32KB\n+}\n+\n+image boot-a.vfat {\n+\tvfat {}\n+\n+\tsize = 128M\n+\tsrcpath = \"output/images/boot-a-part\"\n+}\n+\n+# # boot-b is a placeholder\n+image boot-b.vfat {\n+\tvfat {}\n+\n+\tsize = 128M\n+\tsrcpath = \"output/images/boot-b-part\"\n+}\n+\n+image disk.img {\n+\thdimage {\n+\t\tpartition-table-type = \"gpt\"\n+\t}\n+\n+\tpartition EFI {\n+\t\timage = \"EFI.vfat\"\n+\t\tpartition-type-uuid = esp\n+\t\toffset = 32K\n+\t\tbootable = true\n+\t}\n+\n+\tpartition boot-a {\n+\t\tpartition-type-uuid = fat32\n+\t\timage = \"boot-a.vfat\"\n+\t}\n+\n+\tpartition boot-b {\n+\t\tpartition-type-uuid = fat32\n+\t\timage = \"boot-b.vfat\"\n+\t}\n+\n+\tpartition system-a {\n+\t\tpartition-type-uuid = root-x86-64\n+\t\timage = \"rootfs.ext4\"\n+\t\tsize = 2G\n+\t}\n+\n+\t# system-b is a placeholder\n+\tpartition system-b {\n+\t\tpartition-type-uuid = root-x86-64\n+\t\tsize = 2G\n+\t}\n+}\ndiff --git a/board/pc-efibootguard/linux-efistub.fragment b/board/pc-efibootguard/linux-efistub.fragment\nnew file mode 100644\nindex 0000000000..82f757b098\n--- /dev/null\n+++ b/board/pc-efibootguard/linux-efistub.fragment\n@@ -0,0 +1,4 @@\n+CONFIG_EFI=y\n+CONFIG_EFI_STUB=y\n+CONFIG_EFIVAR_FS=y\n+CONFIG_EFI_PARTITION=y\ndiff --git a/board/pc-efibootguard/post-build.sh b/board/pc-efibootguard/post-build.sh\nnew file mode 100755\nindex 0000000000..7f5973cd39\n--- /dev/null\n+++ b/board/pc-efibootguard/post-build.sh\n@@ -0,0 +1,35 @@\n+#!/bin/sh\n+\n+set -e\n+\n+BOARD_DIR=$(dirname \"$0\")\n+\n+# Kernel cmdline to append\n+KERNEL_CMDLINE=\"\"\n+\n+# Create efibootguard boot-a slot configuration\n+mkdir -p ${BINARIES_DIR}/boot-a-part\n+echo -n \"boot-a\" | iconv -f ascii -t UTF-16LE > ${BINARIES_DIR}/boot-a-part/EFILABEL\n+${HOST_DIR}/bin/bg_setenv \\\n+ --verbose \\\n+ --watchdog=0 \\\n+ --filepath=${BINARIES_DIR}/boot-a-part/BGENV.DAT \\\n+ --revision=2 \\\n+ --ustate=OK \\\n+ --kernel=\"C:boot-a:bzImage\" \\\n+ --args=\"root=PARTLABEL=system-a $KERNEL_CMDLINE\"\n+\n+# Create efibootguard boot-a slot configuration (unbootable)\n+mkdir -p ${BINARIES_DIR}/boot-b-part\n+echo -n \"boot-b\" | iconv -f ascii -t UTF-16LE > ${BINARIES_DIR}/boot-b-part/EFILABEL\n+${HOST_DIR}/bin/bg_setenv \\\n+ --verbose \\\n+ --watchdog=0 \\\n+ --filepath=${BINARIES_DIR}/boot-b-part/BGENV.DAT \\\n+ --revision=1 \\\n+ --ustate=FAILED \\\n+ --kernel=\"C:boot-b:bzImage\" \\\n+ --args=\"root=PARTLABEL=system-b $KERNEL_CMDLINE\"\n+\n+# Copy kernel into boot-a.\n+cp ${BINARIES_DIR}/bzImage ${BINARIES_DIR}/boot-a-part/\ndiff --git a/board/pc-efibootguard/post-image.sh b/board/pc-efibootguard/post-image.sh\nnew file mode 100755\nindex 0000000000..eec88f707d\n--- /dev/null\n+++ b/board/pc-efibootguard/post-image.sh\n@@ -0,0 +1,7 @@\n+#!/bin/sh\n+\n+set -e\n+\n+UUID=$(dumpe2fs \"$BINARIES_DIR/rootfs.ext2\" 2>/dev/null | sed -n 's/^Filesystem UUID: *\\(.*\\)/\\1/p')\n+sed \"s/UUID_TMP/$UUID/g\" board/pc-efibootguard/genimage.cfg > \"$BINARIES_DIR/genimage.cfg\"\n+support/scripts/genimage.sh -c \"$BINARIES_DIR/genimage.cfg\"\ndiff --git a/board/pc-efibootguard/readme.txt b/board/pc-efibootguard/readme.txt\nnew file mode 100644\nindex 0000000000..d3eeb9793a\n--- /dev/null\n+++ b/board/pc-efibootguard/readme.txt\n@@ -0,0 +1,30 @@\n+EFI Boot Guard Example Recipe\n+=============================\n+\n+1. Build\n+\n+ Build the image:\n+\n+ $ make pc_x86_64_efibootguard_defconfig\n+\n+ Add any additional packages required and build:\n+\n+ $ make\n+\n+Emulation in qemu\n+=================\n+\n+Run the emulation with:\n+\n+qemu-system-x86_64 \\\n+ -M pc \\\n+ -drive if=pflash,format=raw,readonly=on,file=</path/to/OVMF_CODE.fd> \\\n+ -drive file=output/images/disk.img,if=virtio,format=raw \\\n+ -boot menu=on \\\n+ -net nic,model=virtio \\\n+ -net user\n+\n+Note that </path/to/OVMF.fd> needs to point to a valid x86_64 UEFI\n+firmware image for qemu. It may be provided by your distribution as a\n+edk2 or OVMF package, in a path such as /usr/share/OVMF/OVMF_CODE_4M.fd\n+(for Debian).\ndiff --git a/board/pc-efibootguard/run-image-qemu.sh b/board/pc-efibootguard/run-image-qemu.sh\nnew file mode 100755\nindex 0000000000..32be727c3e\n--- /dev/null\n+++ b/board/pc-efibootguard/run-image-qemu.sh\n@@ -0,0 +1,9 @@\n+#!/bin/sh\n+\n+qemu-system-x86_64 \\\n+ -M pc \\\n+ -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.fd \\\n+ -drive file=output/images/disk.img,if=virtio,format=raw \\\n+ -boot menu=on \\\n+ -net nic,model=virtio \\\n+ -net user\ndiff --git a/configs/pc_x86_64_efibootguard_defconfig b/configs/pc_x86_64_efibootguard_defconfig\nnew file mode 100644\nindex 0000000000..276c628e18\n--- /dev/null\n+++ b/configs/pc_x86_64_efibootguard_defconfig\n@@ -0,0 +1,51 @@\n+BR2_x86_64=y\n+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y\n+BR2_GLOBAL_PATCH_DIR=\"board/pc/patches\"\n+BR2_DOWNLOAD_FORCE_CHECK_HASHES=y\n+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y\n+BR2_TARGET_GENERIC_GETTY_PORT=\"tty1\"\n+BR2_ROOTFS_POST_BUILD_SCRIPT=\"board/pc-efibootguard/post-build.sh\"\n+BR2_ROOTFS_POST_IMAGE_SCRIPT=\"board/pc-efibootguard/post-image.sh\"\n+BR2_LINUX_KERNEL=y\n+BR2_LINUX_KERNEL_CUSTOM_VERSION=y\n+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE=\"6.12.47\"\n+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y\n+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=\"board/pc/linux.config\"\n+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES=\"board/pc-efibootguard/linux-efistub.fragment\"\n+BR2_LINUX_KERNEL_INSTALL_TARGET=y\n+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y\n+BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y\n+BR2_PACKAGE_LINUX_FIRMWARE=y\n+BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y\n+BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y\n+BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y\n+BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y\n+BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y\n+BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y\n+BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y\n+BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y\n+BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y\n+BR2_PACKAGE_ACPID=y\n+BR2_PACKAGE_CONNMAN=y\n+BR2_PACKAGE_CONNMAN_WIFI=y\n+BR2_PACKAGE_CONNMAN_CLIENT=y\n+BR2_PACKAGE_WIRELESS_REGDB=y\n+BR2_TARGET_ROOTFS_EXT2=y\n+BR2_TARGET_ROOTFS_EXT2_4=y\n+BR2_TARGET_ROOTFS_EXT2_SIZE=\"120M\"\n+# BR2_TARGET_ROOTFS_TAR is not set\n+BR2_TARGET_EFIBOOTGUARD=y\n+BR2_TARGET_EFIBOOTGUARD_X86_64=y\n+BR2_TARGET_EFIBOOTGUARD_INSTALL_TOOLS=y\n+BR2_TARGET_HOST_EFIBOOTGUARD=y\n+BR2_PACKAGE_HOST_DOSFSTOOLS=y\n+BR2_PACKAGE_HOST_GENIMAGE=y\n+BR2_PACKAGE_HOST_MTOOLS=y\n", "prefixes": [ "v2", "2/2" ] }