Package Details: nvidia-settings-performance 470.57.02-1

Git Clone URL: https://aur.archlinux.org/nvidia-dkms-performance.git (read-only, click to copy)
Package Base: nvidia-dkms-performance
Description: Tool for configuring the NVIDIA graphics driver
Upstream URL: https://www.nvidia.com/
Keywords: dkms driver nvidia performance
Licenses: custom
Conflicts: nvidia-settings
Provides: nvidia-settings=470.57.02, nvidia-settings-performance=470.57.02
Submitter: Cabopust
Maintainer: Cabopust
Last Packager: Cabopust
Votes: 11
Popularity: 4.36
First Submitted: 2021-01-22 18:42
Last Updated: 2021-07-19 15:32

Required by (13)

Sources (9)

Pinned Comments

Cabopust commented on 2021-05-04 21:11

So. I have now rebased this package and done some work to fix and improve it. Among the major changes:

  • The package now has its own duplicates of nvidia-utils, opencl-nvidia, lib32-nvidia-utils, and lib32-opencl-nvidia. This gets rid of the dependencies from the extra Arch Linux repository. It also fixes the not-so-good dependency situation that was there before. However, this change now requires the user to enable the Multilib repository because of the lib32-nvidia-utils-performance and lib32-opencl-nvidia-performance packages, although you can ignore installing them :)

This change also expands the ability to add new patches.

  • Added two new binary patches, this nvidia-patch integration (https://github.com/keylase/nvidia-patch) in this package. Which removes some restrictions from NVENC/NvFBC. You can optionally apply them via the _nvidia_patch parameter in PKGBUILD.

  • The _pref_max_performance parameter has now been replaced by the _powermizer_scheme parameter, giving more control over the power management of the NVIDIA driver through the PowerMizer setup. You can read more information in PKGBUILD.

  • Added the ability to customize the nvidia-settings icon (https://github.com/NVIDIA/nvidia-settings/pull/56).

  • The previously mandatory egl-wayland dependency is now taken out as an optional dependency.

Let me remind you that you can suggest your own patches and I will try to add them to this package.

Latest Comments

1 2 3 4 5 Next › Last »

as3ii commented on 2021-07-25 14:42

@Cabopust thank you! Now it works

Cabopust commented on 2021-07-24 16:24

@as3ii I tried to compile the rt kernel with this ugly patch to bypass GPL restrictions and my package and nvidia-dkms from the repositories installed correctly.

diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
index fa61e6b24513..e529735f0d63 100644
--- a/kernel/locking/mutex-debug.c
+++ b/kernel/locking/mutex-debug.c
@@ -101,4 +101,4 @@ void _mutex_t_destroy(_mutex_t *lock)
    DEBUG_LOCKS_WARN_ON(_mutex_t_is_locked(lock));
    lock->magic = NULL;
 }
-EXPORT_SYMBOL_GPL(_mutex_t_destroy);
+EXPORT_SYMBOL(_mutex_t_destroy);
diff --git a/kernel/locking/rtmutex_api.c b/kernel/locking/rtmutex_api.c
index e4eed067873c..676f01af40ae 100644
--- a/kernel/locking/rtmutex_api.c
+++ b/kernel/locking/rtmutex_api.c
@@ -44,7 +44,7 @@ void __sched rt_mutex_lock_nested(struct rt_mutex *lock, unsigned int subclass)
 {
    __rt_mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, subclass);
 }
-EXPORT_SYMBOL_GPL(rt_mutex_lock_nested);
+EXPORT_SYMBOL(rt_mutex_lock_nested);

 #else /* !CONFIG_DEBUG_LOCK_ALLOC */

@@ -57,7 +57,7 @@ void __sched rt_mutex_lock(struct rt_mutex *lock)
 {
    __rt_mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, 0);
 }
-EXPORT_SYMBOL_GPL(rt_mutex_lock);
+EXPORT_SYMBOL(rt_mutex_lock);
 #endif

 /**
@@ -73,7 +73,7 @@ int __sched rt_mutex_lock_interruptible(struct rt_mutex *lock)
 {
    return __rt_mutex_lock_common(lock, TASK_INTERRUPTIBLE, 0);
 }
-EXPORT_SYMBOL_GPL(rt_mutex_lock_interruptible);
+EXPORT_SYMBOL(rt_mutex_lock_interruptible);

 /**
  * rt_mutex_trylock - try to lock a rt_mutex
@@ -100,7 +100,7 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock)

    return ret;
 }
-EXPORT_SYMBOL_GPL(rt_mutex_trylock);
+EXPORT_SYMBOL(rt_mutex_trylock);

 /**
  * rt_mutex_unlock - unlock a rt_mutex
@@ -112,7 +112,7 @@ void __sched rt_mutex_unlock(struct rt_mutex *lock)
    mutex_release(&lock->dep_map, _RET_IP_);
    __rt_mutex_unlock(lock);
 }
-EXPORT_SYMBOL_GPL(rt_mutex_unlock);
+EXPORT_SYMBOL(rt_mutex_unlock);

 /*
  * Futex variants, must not use fastpath.
@@ -190,7 +190,7 @@ void __sched __rt_mutex_init(struct rt_mutex *lock, const char *name,

    __rt_mutex_basic_init(lock);
 }
-EXPORT_SYMBOL_GPL(__rt_mutex_init);
+EXPORT_SYMBOL(__rt_mutex_init);

 /**
  * rt_mutex_init_proxy_locked - initialize and lock a rt_mutex on behalf of a
@@ -557,28 +557,28 @@ void __sched mutex_lock_nested(struct mutex *lock, unsigned int subclass)
 {
    __mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, subclass, NULL, _RET_IP_);
 }
-EXPORT_SYMBOL_GPL(mutex_lock_nested);
+EXPORT_SYMBOL(mutex_lock_nested);

 void __sched _mutex_lock_nest_lock(struct mutex *lock,
                   struct lockdep_map *nest_lock)
 {
    __mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, 0, nest_lock, _RET_IP_);
 }
-EXPORT_SYMBOL_GPL(_mutex_lock_nest_lock);
+EXPORT_SYMBOL(_mutex_lock_nest_lock);

 int __sched mutex_lock_interruptible_nested(struct mutex *lock,
                        unsigned int subclass)
 {
    return __mutex_lock_common(lock, TASK_INTERRUPTIBLE, subclass, NULL, _RET_IP_);
 }
-EXPORT_SYMBOL_GPL(mutex_lock_interruptible_nested);
+EXPORT_SYMBOL(mutex_lock_interruptible_nested);

 int __sched mutex_lock_killable_nested(struct mutex *lock,
                        unsigned int subclass)
 {
    return __mutex_lock_common(lock, TASK_KILLABLE, subclass, NULL, _RET_IP_);
 }
-EXPORT_SYMBOL_GPL(mutex_lock_killable_nested);
+EXPORT_SYMBOL(mutex_lock_killable_nested);

 void __sched mutex_lock_io_nested(struct mutex *lock, unsigned int subclass)
 {
@@ -590,7 +590,7 @@ void __sched mutex_lock_io_nested(struct mutex *lock, unsigned int subclass)
    __mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, subclass, NULL, _RET_IP_);
    io_schedule_finish(token);
 }
-EXPORT_SYMBOL_GPL(mutex_lock_io_nested);
+EXPORT_SYMBOL(mutex_lock_io_nested);

 #else /* CONFIG_DEBUG_LOCK_ALLOC */

For the linux-rt package, you just have to put this patch into the list of source files in PKGBUILD, and the patch will be applied without further manipulation.


diff --git a/PKGBUILD b/PKGBUILD
index 84b2cfe..9f06b4c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -13,11 +13,14 @@ makedepends=('bc' 'git' 'graphviz' 'imagemagick' 'kmod' 'libelf' 'pahole'
 options=('!strip')
 source=(
   "git+https://gitlab.archlinux.org/dvzrv/linux-rt#tag=v${pkgver}?signed"
+  "nvidia-gpl-fix.patch"
   config
 )
 sha512sums=('SKIP'
+            'SKIP'
             '51a29df70783d038720744c68bf4832f3e291a3dd5113f29b1f766af38906ed318947daa1ac81407a476c5f64b01cf338f65c68b3b3dbb5bdfef6a7ee887fff6')
 b2sums=('SKIP'
+        'SKIP'
         '0941986bdc95cc3b0cf4f71d4e4a6f79f8f20120650568ef2b68e424a44611cd83481a05a7d58d36d32fc603f31f73cb74df7e3040c4ded1f4173c68cd4d736f')
 validpgpkeys=(
   '647F28654894E3BD457199BE38DBBDC86092693E'  # Greg Kroah-Hartman <gregkh@kernel.org>

Unfortunately, these restrictions are dictated by the kernel, and the only way to fix this on my part would be to change the driver license to the GPL, but that would be a violation of the NVIDIA license, and I can't do that.

as3ii commented on 2021-07-23 23:34

@Cabopust I can't disable the "Kernel Debugging" option because it's forced enabled by the "expert" options, which is needed to select "fully preemptible kernel" as preemption model. In my config, most of the options for debugging the kernel are disabled. Linux-xanmod customized in a really similar way has no problem with nvidia-dkms and nvidia-dkms-performance

Cabopust commented on 2021-07-23 17:11

@as3ii Strange, try disabling all debugging options in the kernel (i.e. [Kernel hacking -> Kernel Debugging] in menuconfig). If this does not help, I will think about how to fix it.

as3ii commented on 2021-07-23 15:09

@Cabopust In the config file the line with CONFIG_DEBUG_MUTEXES is already commented/not set, in [Kernel hacking -> Lock Debugging] nothing is enabled

Cabopust commented on 2021-07-23 13:23

@as3ii Try to rebuild your linux-rt kernel with CONFIG_DEBUG_MUTEXES option disabled (i.e. [Kernel Hacking -> Lock Debugging -> Mutex Debugging: basic check] in menuconfig).

You can read more about it here: https://forums.gentoo.org/viewtopic-p-7964326.html

as3ii commented on 2021-07-22 16:05

dkms install returned 10 when compiling the module to linux-rt 5.13.0.1 custom built this is the error:

ERROR: modpost: GPL-incompatible module nvidia-drm.ko uses GPL-only symbol '__rt_mutex_init'
ERROR: modpost: GPL-incompatible module nvidia-modeset.ko uses GPL-only symbol '__rt_mutex_init'
ERROR: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol '__rt_mutex_init'

am I doing something wrong with the configuration of my custom linux-rt?

Cabopust commented on 2021-07-18 11:06

So. I was wondering if anyone wants me to separate lib32-nvidia-utils-performance and lib32-opencl-nvidia into separate packages, thereby bypassing the requirement in the Multilib repository for this package?

afader commented on 2021-07-05 18:26

Nevermind. I got it to work. It was an unrelated grub boot problem.

Cabopust commented on 2021-07-05 08:54

@afader, can you provide the installation log of the package? On my kernel 5.12.14-zen1-1-zen there is no problem. Check if you have installed your kernel linux-headers to install the dkms modules correctly.