diff -Nru nvidia-prime-0.8.13/debian/changelog nvidia-prime-0.8.14/debian/changelog --- nvidia-prime-0.8.13/debian/changelog 2019-08-21 15:22:10.000000000 +0000 +++ nvidia-prime-0.8.14/debian/changelog 2020-02-19 12:24:26.000000000 +0000 @@ -1,3 +1,15 @@ +nvidia-prime (0.8.14) focal; urgency=medium + + * prime-offload: + - Detect nvidia modules more accurately before using prime. + We don't want to catch i2c_nvidia_gpu or any other module + that is not relevant. + * prime-select: + - Use udev rules to run early (LP: #1848326). + - Remove the 380 pci class. + + -- Alberto Milone Wed, 19 Feb 2020 13:24:26 +0100 + nvidia-prime (0.8.13) eoan; urgency=medium * prime-select: diff -Nru nvidia-prime-0.8.13/prime-offload nvidia-prime-0.8.14/prime-offload --- nvidia-prime-0.8.13/prime-offload 2019-07-23 15:07:34.000000000 +0000 +++ nvidia-prime-0.8.14/prime-offload 2020-02-19 12:22:47.000000000 +0000 @@ -32,7 +32,7 @@ fi # Only for NVIDIA's proprietary driver -if ! lsmod | grep nvidia > /dev/null; then +if ! lsmod | grep ^nvidia > /dev/null; then # Sorry the driver is not is loaded echo "Sorry the nvidia kernel module is not is loaded" \ >> $LOG 2>&1 diff -Nru nvidia-prime-0.8.13/prime-select nvidia-prime-0.8.14/prime-select --- nvidia-prime-0.8.13/prime-select 2019-08-21 15:22:10.000000000 +0000 +++ nvidia-prime-0.8.14/prime-select 2020-02-19 12:24:26.000000000 +0000 @@ -58,7 +58,8 @@ self._blacklist_file = '/lib/modprobe.d/blacklist-nvidia.conf' self._nvidia_kms_file = '/lib/modprobe.d/nvidia-kms.conf' self._gdm_conf_file = '/etc/gdm3/custom.conf' - self._udev_rule_file = '/lib/udev/rules.d/80-pm-nvidia.rules' + self._udev_rule_file = '/lib/udev/rules.d/50-pm-nvidia.rules' + self._old_udev_rule_file = '/lib/udev/rules.d/80-pm-nvidia.rules' def _get_profile(self): @@ -163,6 +164,7 @@ disable_nvidia_stub = ''' # Remove NVIDIA VGA/3D controller ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", ATTR{remove}="1" +ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x038000", ATTR{remove}="1" ''' if keep_nvidia or not self._has_intel_gpu(): complete_stub = '' @@ -170,6 +172,11 @@ complete_stub = disable_nvidia_stub udev_rule = udev_rule_stub % (complete_stub) + try: + os.unlink(self._old_udev_rule_file) + except: + pass + rule_fd = open(self._udev_rule_file, 'w') rule_fd.write('%s\n' % (udev_rule)) rule_fd.close() @@ -188,6 +195,11 @@ else: self._blacklist_nvidia() + try: + os.unlink(self._old_udev_rule_file) + except: + pass + self._create_pm_udev_rule(keep_nvidia_modules) def _enable_nvidia(self):