Move kmod-6.18 nvidia drivers to use overlayfs at boot - #536
Open
vigh-m wants to merge 3 commits into
Open
Conversation
Install the driver's libraries, binaries, kernel-module objects, driverdog tomls and /etc configs under a per-branch storage root (/usr/nvidia/lts) instead of directly onto the canonical system paths, and overlay them into place at bootime. - Add nvidia-lts-overlay-driver.service: a oneshot that overlays lib64, bin, share-nvidia, share-vulkan, share-glvnd and share-egl from the storage root onto their canonical /usr and /usr/share paths - Add nvidia-lts-overlay-config.service: overlay etc-nvidia onto /etc/nvidia and etc-nvidia-imex onto /etc/nvidia-imex - Namespace the driverdog module sets and the link/load/copy unit filenames under the branch so the overlay wiring is unambiguous Signed-off-by: Vighnesh Maheshwari <[email protected]>
Install the driver's libraries, binaries, kernel-module objects, driverdog tomls and /etc configs under a per-branch storage root (/usr/nvidia/fb) instead of directly onto the canonical system paths, and overlay them into place at bootime. - Add nvidia-fb-overlay-driver.service: a oneshot that overlays lib64, bin, share-nvidia, share-vulkan, share-glvnd and share-egl from the storage root onto their canonical /usr and /usr/share paths - Add nvidia-fb-overlay-config.service: overlay etc-nvidia onto /etc/nvidia and etc-nvidia-imex onto /etc/nvidia-imex - Namespace the driverdog module sets and the link/load/copy unit filenames under the branch so the overlay wiring is unambiguous Signed-off-by: Vighnesh Maheshwari <[email protected]>
Adds the full IMEX support and a default-channel modprobe config - Add nvidia-imex.service, its config.cfg and tmpfiles to the imex subpackage. Signed-off-by: Vighnesh Maheshwari <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of changes:
Enables the NVIDIA
lts(r580) andfb(r595) driver branches to be co-installed on a single Bottlerocket image, with exactly one branch activated at boot. Single-driver images continue to work unchanged.Both branches previously installed their libraries, binaries, module objects and configs directly onto the canonical system paths (/usr/lib64, /usr/bin, /usr/share/nvidia, /etc/nvidia, ...). This PR moves each branch's files under a per-branch storage root and overlays the selected branch onto the canonical paths at boot.
/usr/nvidia/<branch>/(ltsorfb).nvidia-<branch>-overlay-driver.service: lib64, bin, share-nvidia, share-vulkan, share-glvnd, share-egl.nvidia-<branch>-overlay-config.service: etc-nvidia -> /etc/nvidia, etc-nvidia-imex -> /etc/nvidia-imex.usr/lib64overlay would otherwise shadow the writable/usr/lib/modulesmount, so the base module tree is bound to a /run mount point and re-layered as a lowerdir with a writable upper under/var/lib/kernel-modules/.nvidia.nvidia-lts-*/nvidia-fb-*) so both branches' units coexist without collision. driverdog config tomls are also branch-named and installed normally into the flat/etc/drivers.New driver file layout
Each branch now lives under its own root, e.g.:
Renames
To keep the projected roots unambiguous under the storage root, the
packaged trees were renamed:
share/share-nvidia//usr/share/nvidiaetc/(nvidia)etc-nvidia//etc/nvidiaetc/(imex)etc-nvidia-imex//etc/nvidia-imexBackwards compatibility
Testing
lts(r580) image: boots, driver loads,nvidia-smiworksfb(r595) image: boots, driver loads,nvidia-smiworksTerms of contribution:
By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.