Устнаовка драйверов 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):
Удаление драйверов (при необходимости)
sudo /usr/bin/nvidia-uninstall