1
0
mirror of https://github.com/systemd/systemd.git synced 2025-02-28 05:57:33 +03:00

stub/measure: document and measure .uname UKI section

This commit is contained in:
Luca Boccassi 2023-05-21 14:32:09 +01:00
parent e1f1b5fc62
commit b6f2e68602
5 changed files with 9 additions and 1 deletions

View File

@ -57,6 +57,9 @@
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> file of <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> file of
the OS the kernel belongs to, in the <literal>.osrel</literal> PE section.</para></listitem> the OS the kernel belongs to, in the <literal>.osrel</literal> PE section.</para></listitem>
<listitem><para>Kernel version information, i.e. the output of <command>uname -r</command> for the
kernel included in the UKI, in the <literal>.uname</literal> PE section.</para></listitem>
<listitem><para>The initrd will be loaded from the <literal>.initrd</literal> PE section. <listitem><para>The initrd will be loaded from the <literal>.initrd</literal> PE section.
</para></listitem> </para></listitem>

View File

@ -83,6 +83,7 @@ static int help(int argc, char *argv[], void *userdata) {
" --initrd=PATH Path to initrd image file %7$s .initrd\n" " --initrd=PATH Path to initrd image file %7$s .initrd\n"
" --splash=PATH Path to splash bitmap file %7$s .splash\n" " --splash=PATH Path to splash bitmap file %7$s .splash\n"
" --dtb=PATH Path to Devicetree file %7$s .dtb\n" " --dtb=PATH Path to Devicetree file %7$s .dtb\n"
" --uname=PATH Path to 'uname -r' file %7$s .uname\n"
" --pcrpkey=PATH Path to public key for PCR signatures %7$s .pcrpkey\n" " --pcrpkey=PATH Path to public key for PCR signatures %7$s .pcrpkey\n"
"\nSee the %2$s for details.\n", "\nSee the %2$s for details.\n",
program_invocation_short_name, program_invocation_short_name,
@ -122,6 +123,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_INITRD, ARG_INITRD,
ARG_SPLASH, ARG_SPLASH,
ARG_DTB, ARG_DTB,
ARG_UNAME,
_ARG_PCRSIG, /* the .pcrsig section is not input for signing, hence not actually an argument here */ _ARG_PCRSIG, /* the .pcrsig section is not input for signing, hence not actually an argument here */
_ARG_SECTION_LAST, _ARG_SECTION_LAST,
ARG_PCRPKEY = _ARG_SECTION_LAST, ARG_PCRPKEY = _ARG_SECTION_LAST,
@ -144,6 +146,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "initrd", required_argument, NULL, ARG_INITRD }, { "initrd", required_argument, NULL, ARG_INITRD },
{ "splash", required_argument, NULL, ARG_SPLASH }, { "splash", required_argument, NULL, ARG_SPLASH },
{ "dtb", required_argument, NULL, ARG_DTB }, { "dtb", required_argument, NULL, ARG_DTB },
{ "uname", required_argument, NULL, ARG_UNAME },
{ "pcrpkey", required_argument, NULL, ARG_PCRPKEY }, { "pcrpkey", required_argument, NULL, ARG_PCRPKEY },
{ "current", no_argument, NULL, 'c' }, { "current", no_argument, NULL, 'c' },
{ "bank", required_argument, NULL, ARG_BANK }, { "bank", required_argument, NULL, ARG_BANK },

View File

@ -11,6 +11,7 @@ const char* const unified_sections[_UNIFIED_SECTION_MAX + 1] = {
[UNIFIED_SECTION_INITRD] = ".initrd", [UNIFIED_SECTION_INITRD] = ".initrd",
[UNIFIED_SECTION_SPLASH] = ".splash", [UNIFIED_SECTION_SPLASH] = ".splash",
[UNIFIED_SECTION_DTB] = ".dtb", [UNIFIED_SECTION_DTB] = ".dtb",
[UNIFIED_SECTION_UNAME] = ".uname",
[UNIFIED_SECTION_PCRSIG] = ".pcrsig", [UNIFIED_SECTION_PCRSIG] = ".pcrsig",
[UNIFIED_SECTION_PCRPKEY] = ".pcrpkey", [UNIFIED_SECTION_PCRPKEY] = ".pcrpkey",
NULL, NULL,

View File

@ -29,6 +29,7 @@ typedef enum UnifiedSection {
UNIFIED_SECTION_INITRD, UNIFIED_SECTION_INITRD,
UNIFIED_SECTION_SPLASH, UNIFIED_SECTION_SPLASH,
UNIFIED_SECTION_DTB, UNIFIED_SECTION_DTB,
UNIFIED_SECTION_UNAME,
UNIFIED_SECTION_PCRSIG, UNIFIED_SECTION_PCRSIG,
UNIFIED_SECTION_PCRPKEY, UNIFIED_SECTION_PCRPKEY,
_UNIFIED_SECTION_MAX, _UNIFIED_SECTION_MAX,

View File

@ -658,10 +658,10 @@ def make_uki(opts):
('.osrel', opts.os_release, True ), ('.osrel', opts.os_release, True ),
('.cmdline', opts.cmdline, True ), ('.cmdline', opts.cmdline, True ),
('.dtb', opts.devicetree, True ), ('.dtb', opts.devicetree, True ),
('.uname', opts.uname, True ),
('.splash', opts.splash, True ), ('.splash', opts.splash, True ),
('.pcrpkey', pcrpkey, True ), ('.pcrpkey', pcrpkey, True ),
('.initrd', initrd, True ), ('.initrd', initrd, True ),
('.uname', opts.uname, False),
# linux shall be last to leave breathing room for decompression. # linux shall be last to leave breathing room for decompression.
# We'll add it later. # We'll add it later.