diff --git a/files/nvidia-kargs/90-nvidia-drivers.toml b/files/nvidia/usr/lib/bootc/kargs.d/20-nvidia.toml similarity index 81% rename from files/nvidia-kargs/90-nvidia-drivers.toml rename to files/nvidia/usr/lib/bootc/kargs.d/20-nvidia.toml index c02e7a9..4790494 100644 --- a/files/nvidia-kargs/90-nvidia-drivers.toml +++ b/files/nvidia/usr/lib/bootc/kargs.d/20-nvidia.toml @@ -2,4 +2,5 @@ kargs = [ "rd.driver.blacklist=nouveau", "modprobe.blacklist=nouveau", "nvidia-drm.modeset=1", + "nvidia-drm.fbdev=1" ] diff --git a/files/nvidia/usr/lib/modprobe.d/nvidia-modeset.conf b/files/nvidia/usr/lib/modprobe.d/nvidia-modeset.conf new file mode 100644 index 0000000..c4e6e74 --- /dev/null +++ b/files/nvidia/usr/lib/modprobe.d/nvidia-modeset.conf @@ -0,0 +1,4 @@ +# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting +# support. This must be disabled in case of SLI Mosaic. + +options nvidia-drm modeset=1 fbdev=1 diff --git a/files/nvidia/usr/lib/systemd/system-preset/70-nvctk-cdi.preset b/files/nvidia/usr/lib/systemd/system-preset/70-nvctk-cdi.preset new file mode 100644 index 0000000..d339b04 --- /dev/null +++ b/files/nvidia/usr/lib/systemd/system-preset/70-nvctk-cdi.preset @@ -0,0 +1 @@ +enable nvctk-cdi.service \ No newline at end of file diff --git a/files/nvidia/usr/lib/systemd/system/nvctk-cdi.service b/files/nvidia/usr/lib/systemd/system/nvctk-cdi.service new file mode 100644 index 0000000..beab53e --- /dev/null +++ b/files/nvidia/usr/lib/systemd/system/nvctk-cdi.service @@ -0,0 +1,11 @@ +[Unit] +Description=nvidia container toolkit CDI auto-generation +ConditionFileIsExecutable=/usr/bin/nvidia-ctk +After=local-fs.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/files/scripts/setdrmvariables.sh b/files/scripts/setdrmvariables.sh new file mode 100644 index 0000000..652fcef --- /dev/null +++ b/files/scripts/setdrmvariables.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# Copyright 2025 The Secureblue Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and limitations under the License. + +set -oue pipefail + +echo ' + +# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting +# support. This must be disabled in case of SLI Mosaic. + +options nvidia-drm modeset=1 fbdev=1 + +' > /usr/lib/modprobe.d/nvidia-modeset.conf + +cp /usr/lib/modprobe.d/nvidia-modeset.conf /etc/modprobe.d/nvidia-modeset.conf \ No newline at end of file diff --git a/recipes/base/common.yml b/recipes/base/common.yml index 59c7120..c03998f 100644 --- a/recipes/base/common.yml +++ b/recipes/base/common.yml @@ -32,6 +32,7 @@ modules: - ublue-os/staging install: packages: + - bootc - ublue-os-just - ublue-os-luks - ublue-os-udev-rules diff --git a/recipes/base/nvidia.yml b/recipes/base/nvidia.yml index 5082d10..640e0d9 100644 --- a/recipes/base/nvidia.yml +++ b/recipes/base/nvidia.yml @@ -17,5 +17,10 @@ modules: - installnvidiapackages.sh - type: files files: - - source: nvidia-kargs - destination: /usr/lib/bootc/kargs.d + - source: nvidia + destination: / + - type: script + snippets: + - cp /usr/lib/modprobe.d/nvidia-modeset.conf /etc/modprobe.d/nvidia-modeset.conf + - sed -i 's/omit_drivers/force_drivers/g' /usr/lib/dracut/dracut.conf.d/99-nvidia.conf + - sed -i 's/ nvidia / i915 amdgpu nvidia /g' /usr/lib/dracut/dracut.conf.d/99-nvidia.conf