{"id":2224863,"url":"http://patchwork.ozlabs.org/api/patches/2224863/?format=json","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=json","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=json","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=json","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"]}