blue-build / modules

BlueBuild standard modules used for building your Atomic Images
Apache License 2.0
24 stars 1 forks source link

module idea: custom-kernel #148

Open fiftydinar opened 7 months ago

fiftydinar commented 7 months ago

Usecase

It would allow users to experience better hardware support, without making multiple custom images (avoiding quirks like needing to rebase back & forth if different hardware configuration is used). Most custom kernels contain Surface, Asus or Lenovo Legion patches, along with Steam Deck patches too & some others.

It would also allow users to enjoy using some additional hardware functionality, which is not possible to obtain through akmods module. F.e. overclocking USB peripherals polling rate is not possible to get through akmods.

Which custom kernel to offer?

This one would highly depend on user demand & custom kernel reliability, but I think that those 2 kernels are the most preferable:

  1. fsync kernel
    • most reliable, as it uses vanilla Fedora kernel as a base, Bazzite uses this as their kernel too
  2. CachyOS kernel
    • uses cutting-edge tweaks, for users that need those, but is less reliable, as it's direct port from Arch

Xanmod kernel was used before, but it's depreciated for Fedora at this point (it's also worse then 2 kernels mentioned above imo).

Interestingly, akmods offers support for fsync kernel, for kernel modules which are not or won't be built into kernel. Bazzite has a list of akmods they install for fsync kernel in their Containerfile. This would also mean that fsync is the only custom kernel where you could install Nvidia drivers into them.

Implementation

While you can install custom kernel successfully now by regularly using rpm-ostree (with cliwrap install-to-root), you still won't get Secure Boot support if you boot with this kernel.

To solve this, we would need to use GitHub action, which is similar to this one: https://github.com/EyeCantCU/kernel-signer

I don't know if it's necessary to implement this both in GitHub Action & BlueBuild CLI, or just in GitHub Action.

This would need to get merged to support kernels which have more exotic kernel-version naming, like CachyOS: https://github.com/EyeCantCU/kernel-signer/pull/10

xynydev commented 7 months ago

Interesting idea, but seems kind of hard to do. I would prioritize easier to build modules such as #119, and improving overall code standards, quality, formatting and stability in this repo.

fiftydinar commented 2 months ago

Utilizing this can make this module easy & reliable to implement (with limited kernel options by the repo): https://github.com/ublue-os/kernel-cache

Secure Boot support is solved, since they sign the kernel in that repo now.

Current kernel options include:

Maybe another custom kernel can be added too, like CachyOS kernel, but that is not guaranteed, since the repo is utilized with needs of Universal Blue maintainers.

fiftydinar commented 2 months ago

Here's related issue, which should increase compatibility with installing custom kernels on Fedora Atomic systems:

https://github.com/blue-build/modules/issues/276