From: California Sullivan <california.l.sullivan@intel.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH RFC 00/18] EFI boot partition improvements
Date: Tue, 19 Dec 2017 14:58:13 -0800 [thread overview]
Message-ID: <20171219225831.22587-1-california.l.sullivan@intel.com> (raw)
First, note that this is based on top of Haris' multiple kernels patch:
http://lists.openembedded.org/pipermail/openembedded-core/2017-November/144031.html
Currently, the boot partition of an EFI system is entirely controlled by
image creation. Either done entirely through wic, or one of the
bootloader bbclasses. This is rather bad since it makes it very
difficult to add additional items to the boot partition, such as
alternative kernels, bootloaders, or other utilities, and since its not
package controlled its hard to update.
The goal of these changes is to have the boot partition built through
packages instead. We accomplish this by installing everything to /boot,
and using the contents of /boot to create the partition. This required
changes to several bootloaders, the kernel recipe, one new
rootfs-postcommand to avoid data duplication, and a new .wks file to
make use of the new functionality.
Legacy hddimg, iso images, and wic images should be mostly unchanged,
and their functionality is preserved. The only change they received is
the kernel is now installed as ${KERNEL_IMAGETYPE} instead of hardcoded
as vmlinuz, and their bootloader configs have been updated to reflect
that.
This is still a WIP, but I wanted to get some eyes and feedback on it.
Here are some known issues that I've ran into, and am still working on:
* fs-uuid (DISK_SIGNATURE_UUID) seems to have issues when changing MACHINE
types, and the image can get an old uuid when building from sstate
* init-install.sh hasn't been updated to support multiple kernels, and
still uses hardcoded vmlinuz (broken)
* the boot partition is vfat, which doesn't support symlinks, so the
symlink from the long kernel name to bzImage turns into a copy.
I fully expect this to take several iterations to get right, so please
any feedback is welcome.
Thanks,
Cal
California Sullivan (18):
fs-uuid.bbclass: rewrite get_fs_uuid function
image.bbclass: Add fs-uuid bbclass
grub-efi.bbclass: split out configuration portion
grub: create recipe for configuration
grub-efi: install to /boot/
grub-efi: if installed and EFI_PROVIDER, install as bootx64 or
bootia32
rootfs-postcommands: add rootfs postprocess command to avoid /boot/
duplication
packagegroup-core-boot: add bootloader to EFI systems
live-vm-common.bbclass: Don't use vmlinuz or VM_DEFAULT_KERNEL
grub-efi*.bbclass: don't reference vmlinuz
wic: add wks file to make use of new bootfs functionality
init-install-efi.sh: Update to support installing multiple kernels
syslinux.bbclass: don't use vmlinuz
systemd-boot.bbclass: break out configuration creation
systemd: add systemd-bootconf recipe
systemd-boot*.bbclass: Don't use vmlinuz
systemd-boot: add package that installs to boot
packagegroup-core-boot: add kernel for EFI systems
meta/classes/fs-uuid.bbclass | 32 ++++--
.../{grub-efi.bbclass => grub-efi-cfg.bbclass} | 44 +-------
meta/classes/grub-efi.bbclass | 124 +--------------------
meta/classes/image.bbclass | 3 +
meta/classes/live-vm-common.bbclass | 9 +-
meta/classes/rootfs-postcommands.bbclass | 19 ++++
meta/classes/syslinux.bbclass | 4 +-
meta/classes/systemd-boot-cfg.bbclass | 75 +++++++++++++
meta/classes/systemd-boot.bbclass | 72 +-----------
meta/recipes-bsp/grub/grub-bootconf_1.00.bb | 30 +++++
meta/recipes-bsp/grub/grub-efi_2.02.bb | 41 +++++--
.../initrdscripts/files/init-install-efi.sh | 15 ++-
.../packagegroups/packagegroup-core-boot.bb | 3 +
meta/recipes-core/systemd/systemd-boot_234.bb | 28 ++++-
meta/recipes-core/systemd/systemd-bootconf_1.00.bb | 31 ++++++
scripts/lib/wic/canned-wks/efi-bootdisk.wks.in | 6 +
16 files changed, 269 insertions(+), 267 deletions(-)
copy meta/classes/{grub-efi.bbclass => grub-efi-cfg.bbclass} (74%)
create mode 100644 meta/classes/systemd-boot-cfg.bbclass
create mode 100644 meta/recipes-bsp/grub/grub-bootconf_1.00.bb
create mode 100644 meta/recipes-core/systemd/systemd-bootconf_1.00.bb
create mode 100644 scripts/lib/wic/canned-wks/efi-bootdisk.wks.in
--
2.14.3
next reply other threads:[~2017-12-19 22:58 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-19 22:58 California Sullivan [this message]
2017-12-19 22:58 ` [PATCH RFC 01/18] fs-uuid.bbclass: rewrite get_fs_uuid function California Sullivan
2017-12-20 8:00 ` Martin Hundebøll
2017-12-19 22:58 ` [PATCH RFC 02/18] image.bbclass: Add fs-uuid bbclass California Sullivan
2017-12-19 22:58 ` [PATCH RFC 03/18] grub-efi.bbclass: split out configuration portion California Sullivan
2017-12-19 22:58 ` [PATCH RFC 04/18] grub: create recipe for configuration California Sullivan
2017-12-19 22:58 ` [PATCH RFC 05/18] grub-efi: install to /boot/ California Sullivan
2017-12-19 22:58 ` [PATCH RFC 06/18] grub-efi: if installed and EFI_PROVIDER, install as bootx64 or bootia32 California Sullivan
2017-12-19 22:58 ` [PATCH RFC 07/18] rootfs-postcommands: add rootfs postprocess command to avoid /boot/ duplication California Sullivan
2017-12-19 22:58 ` [PATCH RFC 08/18] packagegroup-core-boot: add bootloader to EFI systems California Sullivan
2017-12-19 22:58 ` [PATCH RFC 09/18] live-vm-common.bbclass: Don't use vmlinuz or VM_DEFAULT_KERNEL California Sullivan
2017-12-19 22:58 ` [PATCH RFC 10/18] grub-efi*.bbclass: don't reference vmlinuz California Sullivan
2017-12-19 22:58 ` [PATCH RFC 11/18] wic: add wks file to make use of new bootfs functionality California Sullivan
2017-12-19 22:58 ` [PATCH RFC 12/18] init-install-efi.sh: Update to support installing multiple kernels California Sullivan
2017-12-19 22:58 ` [PATCH RFC 13/18] syslinux.bbclass: don't use vmlinuz California Sullivan
2017-12-19 22:58 ` [PATCH RFC 14/18] systemd-boot.bbclass: break out configuration creation California Sullivan
2017-12-19 22:58 ` [PATCH RFC 15/18] systemd: add systemd-bootconf recipe California Sullivan
2017-12-19 22:58 ` [PATCH RFC 16/18] systemd-boot*.bbclass: Don't use vmlinuz California Sullivan
2017-12-19 22:58 ` [PATCH RFC 17/18] systemd-boot: add package that installs to boot California Sullivan
2017-12-19 22:58 ` [PATCH RFC 18/18] packagegroup-core-boot: add kernel for EFI systems California Sullivan
2017-12-19 23:03 ` ✗ patchtest: failure for EFI boot partition improvements Patchwork
2017-12-19 23:16 ` [PATCH RFC 00/18] " Cal Sullivan
2017-12-20 11:29 ` Alexander Kanavin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171219225831.22587-1-california.l.sullivan@intel.com \
--to=california.l.sullivan@intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.