[SRU kernel-snaps-uc24.04/pc][SRU canonical-kernel-snap/main][RFC PATCH v2 0/2] add nvidia-550 driver components
Aaron Jauregui
aaron.jauregui at canonical.com
Thu Dec 5 02:50:43 UTC 2024
BugLink: https://bugs.launchpad.net/bugs/2088970
[Changes between v1 and v2]
kernel-snaps-u24.04:
- replaced TODO HACK FOR HOOKS
- updated nvidia userspace component type to standard
hooks:
- included install hook for the pc-kernel to install nouveau
component by default
[Impact]
Snap components are a way to have optional content for snaps available
for install without resorting to building a completely new snap. It's
useful to think of them as lazy loading for snaps. Concretely, components
are themselves snaps with locked-down functionality that are mounted
within their parent snap's filesystem. Component revisions are tied 1 to
1 with their parent snap revision at upload time, meaning that any refresh
also refreshes the components tied to the snap. This also means that
components MUST be uploaded alongside the parent snap, or the store will
reject the upload.
We use components here with the aim of providing a way for nvidia
drivers to be selected for the pc-kernel without having to rebuild,
targetting the nvidia-550 driver as a starting point with the aim of
supporting more driver versions in the future. Since nouveau, currently
included in the pc-kernel, conflicts with nvidia, we replace the nouveau
.ko with a component compatible with the nvidia component scheme.
The implemented components rely on install, refresh, and remove hooks
for the respective functionality. These are intended to be placed in
canonical-kernel-snaps.
Nvidia components are mostly self-contained, but a few changes to the pc-kernel
snap were required. files/meta/kernel.yaml is required to enable kernel
module support in snapd. The kernel-gpu-2404 content interface is
declared for exposing nvidia userspace libraries, and is not intended to
be accessed directly by users.
[Test case]
Nvidia components can be installed as follows:
$ snap install pc-kernel+nvidia-550-ko pc-kernel+nvidia-550-user
The components install their files in $SNAP_DATA/modules/$(uname -r)/graphics
[Regression potential]
There is potential for regressions to be introduced by the pc-kernel install
hook, as it is executed on every install and and refresh event. If this
script fails, the installation or update of the snap will abort.
Aaron Jauregui (1):
snapcraft.yaml: Add nvidia-550 and nouveau component support
files/meta/kernel.yaml | 1 +
snapcraft.yaml | 109 ++++++++++++++++++++++++++++++++++++++++-
2 files changed, 109 insertions(+), 1 deletion(-)
create mode 100644 files/meta/kernel.yaml
Aaron Jauregui (1):
nvidia-hooks: add hooks for nvidia kernel components
hooks/install.module | 21 +++++++++++++++++++++
hooks/install.nvidia-ko | 25 +++++++++++++++++++++++++
hooks/install.nvidia-user | 18 ++++++++++++++++++
hooks/install.pc-kernel | 6 ++++++
hooks/kernel-gpu-2404-provider-mangler | 12 ++++++++++++
hooks/remove.module | 13 +++++++++++++
hooks/remove.nvidia-ko | 6 ++++++
hooks/remove.nvidia-user | 10 ++++++++++
8 files changed, 111 insertions(+)
create mode 100644 hooks/install.module
create mode 100644 hooks/install.nvidia-ko
create mode 100644 hooks/install.nvidia-user
create mode 100644 hooks/install.pc-kernel
create mode 100644 hooks/kernel-gpu-2404-provider-mangler
create mode 100644 hooks/remove.module
create mode 100644 hooks/remove.nvidia-ko
create mode 100644 hooks/remove.nvidia-user
--
2.43.0
More information about the kernel-team
mailing list