From e62cf724dacabfa4133984dda518200c384cc5af35ec1488e31e5ed174b8f44c Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Thu, 19 Jan 2023 13:31:36 +0000 Subject: [PATCH] - package the modprobe.d file as a sample in /usr/lib/nvidia-open-driver-G06-signed; then adjust GUID of video group for nvidia's NVreg_DeviceFileGID option and write the result to /etc/modprobe.d, i.e. no longer touch a packaged modprobe.d file below /usr OBS-URL: https://build.opensuse.org/package/show/X11:Drivers:Video:Redesign/nvidia-open-driver-G06-signed?expand=0&rev=9 --- kmp-filelist | 6 ++---- kmp-post.sh | 5 +++++ nvidia-open-driver-G06-signed.changes | 9 +++++++++ nvidia-open-driver-G06-signed.spec | 21 +++++---------------- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/kmp-filelist b/kmp-filelist index 3147796..a0a1195 100644 --- a/kmp-filelist +++ b/kmp-filelist @@ -2,15 +2,13 @@ %dir %{kernel_module_directory}/%2-%1 %dir %{kernel_module_directory}/%2-%1/updates %{kernel_module_directory}/%2-%1/updates/nvidia*.ko +%dir /usr/lib/nvidia-open-driver-G06-signed +/usr/lib/nvidia-open-driver-G06-signed/50-nvidia-%1.conf %if 0%{?suse_version} >= 1550 -%dir /usr/lib/modprobe.d -%config /usr/lib/modprobe.d/50-nvidia-%1.conf %dir /usr/lib/dracut %dir /usr/lib/dracut/dracut.conf.d /usr/lib/dracut/dracut.conf.d/60-nvidia-%1.conf %else -%dir %{_sysconfdir}/modprobe.d -%config %{_sysconfdir}/modprobe.d/50-nvidia-%1.conf %dir /etc/dracut.conf.d /etc/dracut.conf.d/60-nvidia-%1.conf %endif diff --git a/kmp-post.sh b/kmp-post.sh index c1b3316..e7dcf46 100644 --- a/kmp-post.sh +++ b/kmp-post.sh @@ -27,6 +27,11 @@ for dev in $(ls -d /sys/bus/pci/devices/*); do fi done +# groups are now dynamic +VIDEOGID=`getent group video | cut -d: -f3` +sed "s/33/$VIDEOGID/" /usr/lib/nvidia-open-driver-G06-signed/50-nvidia-$flavor.conf > \ + /etc/modprobe.d/50-nvidia-$flavor.conf + # Workaround needed on TW for simpledrm (boo#1201392) %if 0%{?suse_version} >= 1550 pbl --add-option nosimplefb=1 --config diff --git a/nvidia-open-driver-G06-signed.changes b/nvidia-open-driver-G06-signed.changes index fd2faef..e264d3c 100644 --- a/nvidia-open-driver-G06-signed.changes +++ b/nvidia-open-driver-G06-signed.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Thu Jan 19 13:26:44 UTC 2023 - Stefan Dirsch + +- package the modprobe.d file as a sample in + /usr/lib/nvidia-open-driver-G06-signed; then adjust GUID of + video group for nvidia's NVreg_DeviceFileGID option and write the + result to /etc/modprobe.d, i.e. no longer touch a packaged + modprobe.d file below /usr + ------------------------------------------------------------------- Thu Jan 19 10:56:45 UTC 2023 - Stefan Dirsch diff --git a/nvidia-open-driver-G06-signed.spec b/nvidia-open-driver-G06-signed.spec index 53e8d0b..00ea161 100644 --- a/nvidia-open-driver-G06-signed.spec +++ b/nvidia-open-driver-G06-signed.spec @@ -133,30 +133,19 @@ for flavor in %{flavors_to_build}; do popd done -%if 0%{?suse_version} >= 1550 -MODPROBE_DIR=%{buildroot}/usr/lib/modprobe.d -%else -MODPROBE_DIR=%{buildroot}%{_sysconfdir}/modprobe.d -%endif +MODPROBE_SAMPLE_DIR=%{buildroot}/usr/lib/%{name} -# groups are now dynamic -# let's hope it's not installation, but only distribution release specific -# so it's the same for build systems and installed systems later -# for some reason it's not allowed to do this in %post -# and hopefully this is no longer needed with usage of ACLs anyway -VIDEOGID=`getent group video | cut -d: -f3` -mkdir -p $MODPROBE_DIR +mkdir -p $MODPROBE_SAMPLE_DIR for flavor in %flavors_to_build; do - cat > $MODPROBE_DIR/50-nvidia-$flavor.conf << EOF + cat > $MODPROBE_SAMPLE_DIR/50-nvidia-$flavor.conf << EOF blacklist nouveau options nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=33 NVreg_DeviceFileMode=0660 NVreg_PreserveVideoMemoryAllocations=1 options nvidia-drm modeset=1 ### Enable support on *all* Turing/Ampere GPUs: Alpha Quality! #options nvidia NVreg_OpenRmEnableUnsupportedGpus=1 EOF - sed -i "s/33/$VIDEOGID/" $MODPROBE_DIR/50-nvidia-$flavor.conf - echo -n "install nvidia " >> $MODPROBE_DIR/50-nvidia-$flavor.conf - tail -n +3 %_sourcedir/modprobe.nvidia.install | awk '{ printf "%s ", $0 }' >> $MODPROBE_DIR/50-nvidia-$flavor.conf + echo -n "install nvidia " >> $MODPROBE_SAMPLE_DIR/50-nvidia-$flavor.conf + tail -n +3 %_sourcedir/modprobe.nvidia.install | awk '{ printf "%s ", $0 }' >> $MODPROBE_SAMPLE_DIR/50-nvidia-$flavor.conf # otherwise nvidia-uvm is missing in initrd and won't get loaded when nvidia # module is loaded in initrd; so better let's load all the nvidia modules # later ...