From 73b50f3d05654f7ceb7b1298be7f6502e3463eb8 Mon Sep 17 00:00:00 2001 From: Benjamin Sherman Date: Mon, 28 Oct 2024 18:50:11 -0500 Subject: [PATCH] feat: add udev rules for nvidia extra device PM This is a nice-to-have so that any extra USB/Audio devices on nvidia cards are also able to take advantage of powermanagement. Closes: #291 --- Containerfile.nvidia | 2 +- Containerfile.nvidia-open | 2 +- files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules | 8 ++++++++ ublue-os-nvidia-addons.spec | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules diff --git a/Containerfile.nvidia b/Containerfile.nvidia index 51d625ab..cca26cb5 100644 --- a/Containerfile.nvidia +++ b/Containerfile.nvidia @@ -31,7 +31,7 @@ COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-nvidia-a COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/ublue-nvctk-cdi.service COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset - +COPY files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/60-nvidia-extra-devices-pm.rules RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-prep.sh && \ diff --git a/Containerfile.nvidia-open b/Containerfile.nvidia-open index 6670e78a..e0c25203 100644 --- a/Containerfile.nvidia-open +++ b/Containerfile.nvidia-open @@ -31,7 +31,7 @@ COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-nvidia-a COPY files/usr/lib/systemd/system/ublue-nvctk-cdi.service /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/ublue-nvctk-cdi.service COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset COPY files/usr/lib/systemd/system-preset/70-ublue-nvctk-cdi.preset /tmp/ublue-os-ucore-nvidia/rpmbuild/SOURCES/70-ublue-nvctk-cdi.preset - +COPY files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules /tmp/ublue-os-nvidia-addons/rpmbuild/SOURCES/60-nvidia-extra-devices-pm.rules RUN --mount=type=cache,dst=/var/cache/dnf \ /tmp/build-prep.sh && \ diff --git a/files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules b/files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules new file mode 100644 index 00000000..fd76aff5 --- /dev/null +++ b/files/etc/udev/rules.d/60-nvidia-extra-devices-pm.rules @@ -0,0 +1,8 @@ +# Remove NVIDIA USB xHCI Host Controller devices, if present +ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1" + +# Remove NVIDIA USB Type-C UCSI devices, if present +ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{remove}="1" + +# Remove NVIDIA Audio devices, if present +ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{remove}="1" diff --git a/ublue-os-nvidia-addons.spec b/ublue-os-nvidia-addons.spec index 5aa0544b..d91c3569 100644 --- a/ublue-os-nvidia-addons.spec +++ b/ublue-os-nvidia-addons.spec @@ -16,6 +16,7 @@ Source3: 70-ublue-nvctk-cdi.preset Source4: environment Source5: negativo17-fedora-nvidia.repo Source6: eyecantcu-supergfxctl.repo +Source7: 60-nvidia-extra-devices-pm.rules %description Adds various runtime files for nvidia support.