518 Dec. 29, 2024, 12:43 p.m.

Устнаовка драйверов NVIDIA (Debian) + решение некоторых проблем с производительностью

Задача: установка драйверов, для запуска игр на PROTON.

В файле /etc/apt/sources.list нужно добавить contrib non-free Обновление репозиториев

sudo apt install gnupg2
sudo apt install linux-headers-$(uname -r)
sudo apt install software-properties-common gamemode
sudo add-apt-repository contrib
# May does't work download file manually
wget https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-keyring_1.1-1_all.deb 
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo dpkg --add-architecture i386
sudo apt update

Установка драйверов и зависимостей

sudo apt install cuda-drivers firmware-misc-nonfree
sudo apt install nvidia-driver-libs:i386
sudo apt install mesa-vulkan-drivers libglx-mesa0:i386 mesa-vulkan-drivers:i386 libgl1-mesa-dri:i386
sudo apt install vulkan-tools

Опционально можно поэксперементировать с этими вариантами драйверов

sudo apt -V install nvidia-open
sudo apt -V install nvidia-driver

Перезагружаем sudo reboot После обновления версии ядра Linux могут возникать ошибки вида cannot start NVIDIA PERSISTENCE SERVICE, то нужно перезаписать заголовки версии ядра. Система автоматически пересоберет драйвера:

sudo apt update
sudo apt install linux-headers-$(uname -r)

Нужно открыть NVIDIA settings

sudo nvidia-settings

В параметре X Server Display Configuration надо нажать Save to X Configuration File В параметрах запуска игр (протон должен быть установлен) нужно добавить

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%

Если игра работает с Vulkan

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only %command%

Если игры внезапно закрываются, например от нехватки памяти может помочь команда (действует до перезагрузки)

sudo sysctl -w vm.max_map_count=262144 # в отдельных случаях 1048576

Или на “постоянную”

echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-vm.max_map_count.conf
sudo sysctl --system

В заключение: Есть игры (и графические приложения), которые потребляют видеопамяти больше чем есть у видеоадаптера. В случае с Windows данные незаметно переходят в RAM (+SWAP), в случае Linux это работает хуже, от чего приложения могут зависать (как временно, так и насовсем). Нужно либо снижать потребление VRAM или ждать обновлений, оптимизирующие эту проблему.

Более подробно о параметрах запуска и версиях которые подходят для конкретной игры (например OW2):

ProtonDB Overwatch 2

Lutrus Overwatch 2

Удаление драйверов (при необходимости)

sudo /usr/bin/nvidia-uninstall

Источники