** Description changed:

  [Availability]
  
  Currently in universe
  
  [Rationale]
  
  stubble is an EFI boot stub that can be combined with a linux kernel
  image and device-tree binaries into a self-executing PE UEFI executable
  that will load device specific device-trees before passing control to
  Linux. This will allow us to enabled UEFI secure boot on devices where
  dtb management has to be done by the OS rather than by firmware.
  
  We want stubble to be part of our default kernel binary on arm64. While
  stubble is technically a kernel build dependency, it will also literally
  be part of the produced kernel binary, so it should really be in main.
+ 
+ The package stubble is required in Ubuntu main no later than 25.10 due
+ to our plan to use it as a dependency for the default arm64 kernel.
  
  [Security]
  
  stubble is originally based on the systemd-stub(1) used in UKI with lots of 
features that we don't need removed. This results in a relatively small and 
easy to review binary. I have worked closely with our secure boot experts to 
make sure we get everything right in regards to shim compliance.
  We have also submitted review requests with shim upstream.
  
  An additional review from the security team would be welcome.
  
  [Quality assurance]
  
  The resulting kernel image will be covered by all arm64 kernel tests as
  soon as it becomes the default. Currently stubble based kernels are
  already deployed as part of the Ubuntu Concept images to catch potential
  issues early.
  
  mkukri has been looking into adding stubble kernels to
  https://code.launchpad.net/~ubuntu-uefi-team/+git/ubuntu-boot-test to
  have them in our official boot test suite.
  
  [Maintenance/Owner]
  Owned by the Foundations team.
  
  [Background information]
  
  For arm64 laptops we need a way to load device trees during boot, since
  Linux support depends on them and the firmware doesn't provide any. With
  our current boot stack this would traditionally be done in grub, but
  that would break UEFI secure boot since grub only handles unsigned dtb
  files and the devicetree command is prohibited in lockdown mode.
  
  The proposed solution is a UEFI boot stub called stubble[1] that is combined 
with the Linux kernel and dtb files in a single self-executing binary  (similar 
to systemd UKI).
  The stub is open source and originally a fork of the systemd-stub
  which we adjusted for our use case. We essentially removed all code except 
for the parts which handle device tree loading and booting the embedded Linux 
kernel.
  Since all of this happens within a single PE binary all of kernel, stub and 
dtbs can be signed and verified by shim.
  
  The implementation intentionally stays close to systemd because we are
  aware that the systemd codebase is well trusted and has been reviewed
  and approved for signing before.
  
  The biggest change compared to systemd is the size of the codebase. In
  stubble,  we have deleted around 7500 lines of C code since the initial
  fork according to git, leaving us with 6000 lines of C source code and
  headers. In particular the stub does not support UKI addons or
  extensions, embedded command line, ucode, splash images, profiles,
  legacy boot flows, automatically constructed initrd and thus cpio
  support and a lot more.
  
  One major difference is that bundling of an initrd is optional.
  Stubble does allow external unsigned initrds loaded by grub to ensure the new 
bundled stub+kernel behave exactly like a raw kernel image would.
  Since this is also allowed in the current default boot architecture without 
stub, it should not be problematic.
  
  In contrast to systemd we include a CHID database in the source code
  repo inside the hwids/ directory. It includes raw text dumps of the
  device CHIDs, a tool to filter and transform them into json files
  compatible with ukify and the generated json files.
  
  Switching the default to stubble kernel images will also allow us to drop our 
current debian-cd grub config which provides a giant if...else clause 
implementing a similar dtb loading mechanism, see
  
https://git.launchpad.net/~ubuntu-cdimage/debian-cd/+git/ubuntu/tree/tools/boot/questing/boot-arm64#n90

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2120322

Title:
  [MIR] stubble

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/stubble/+bug/2120322/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to