[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <204f124d-c79d-4ad6-8f69-b7bb5f8d1ab6@app.fastmail.com>
Date: Tue, 12 Sep 2023 21:25:26 +0200
From: "Jan Hendrik Farr" <kernel@...rr.cc>
To: "Baoquan He" <bhe@...hat.com>
Cc: linux-kernel@...r.kernel.org, kexec@...ts.infradead.org,
x86@...nel.org, tglx@...utronix.de, dhowells@...hat.com,
vgoyal@...hat.com, keyrings@...r.kernel.org,
akpm@...ux-foundation.org, bhelgaas@...gle.com,
"Luca Boccassi" <bluca@...ian.org>, lennart@...ttering.net,
prudo@...hat.com
Subject: Re: [PATCH v2 0/2] x86/kexec: UKI Support
> By the way, could you provide detailed steps about how to test this
> patchset so that people interested can give it a shot?
Sure.
0. Build and run your kernel with my patches.
1. You're gonna need a UKI to kexec. I personally use sbctl or ukify to create them.
sbctl command example (assumes you have the cmdline you want saved in a file called cmdline):
sudo sbctl bundle -k /boot/vmlinuz-6.5.2 -f /boot/initrd.img-6.5.2 -c ./cmdline -s ./uki.efi
ukify command example:
sudo python3 ukify.py build --linux=/boot/vmlinuz-6.5.2 --initrd=/boot/initrd.img-6.5.2 --cmdline <cmdline as string or a filename>
2. If you are running in lockdown mode you'll have to sign the UKI. You can use sbctl, pesign, or sbsign for example.
3. Compile kexec-test (see links below). Simple "gcc main.c -o kexec-test" should work
4. Do the kexec load: ./kexec-text <path to uki>
(this is equivalent to "kexec -a -l <path to UKI>", however that currently complains about not recognizing the format)
5. At this point it's useful to check if the loading succeeded with: "cat /sys/kernel/kexec_loaded" (should return "1")
6. Do a kexec reboot. If you are running systemd, the best way is with: "systemctl kexec". Otherwise you can try "kexec -e", however this will not shut all your services down
If anyone has problems please feel free to ask.
Links:
sbctl: https://github.com/Foxboron/sbctl
ukify: https://github.com/systemd/systemd/tree/main/src/ukify
kexec-test: https://github.com/Cydox/kexec-test/
Powered by blists - more mailing lists