All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC 00/18] EFI boot partition improvements
@ 2017-12-19 22:58 California Sullivan
  2017-12-19 22:58 ` [PATCH RFC 01/18] fs-uuid.bbclass: rewrite get_fs_uuid function California Sullivan
                   ` (20 more replies)
  0 siblings, 21 replies; 23+ messages in thread
From: California Sullivan @ 2017-12-19 22:58 UTC (permalink / raw)
  To: openembedded-core

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



^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2017-12-20 11:34 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-19 22:58 [PATCH RFC 00/18] EFI boot partition improvements California Sullivan
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

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.