[kernel-snaps-u24.04][pc][RFC PATCH 0/1] add nvidia-550 driver components

Stefan Bader stefan.bader at canonical.com
Wed Nov 20 08:36:02 UTC 2024


On 20.11.24 00:58, Aaron Jauregui wrote:
> BugLink: https://bugs.launchpad.net/bugs/2088970
> 
> [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]
> The components are not downloaded or installed unless requested, so the
> potential for regressions to be introduced by them is small.
> 
> Removing nouveau from the pc-kernel snap is a regression in
> functionality, but the UC22 pc-kernel does not package it and there is
> work in progress to autoinstall the nouveau component when required.
> 
> Aaron Jauregui (1):
>    snapcraft.yaml: Add nvidia-550 and nouveau component support
> 
>   files/meta/kernel.yaml |   1 +
>   snapcraft.yaml         | 121 +++++++++++++++++++++++++++++++++++++++++
>   2 files changed, 122 insertions(+)
>   create mode 100644 files/meta/kernel.yaml
> 

There are 2 submissions around for this. What is not quite clear to me 
is whether one is for the pc branch only and the other for the 
master/main branch? Also is there any form of dependency between the 2? 
If there is, this probably should be send again under one common cover 
email and the patches as "[SRU uc24.04/ma(whateva)]" and "[SRU 
uc24.04/pc]". Usually that makes things applied at the same time which 
removes races.

-Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xE8675DEECBEECEA3.asc
Type: application/pgp-keys
Size: 48643 bytes
Desc: OpenPGP public key
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20241120/5b3281cf/attachment-0001.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20241120/5b3281cf/attachment-0001.sig>


More information about the kernel-team mailing list