NVIDIA (Русский)/Tips and tricks (Русский)
Смотрите главную статью NVIDIA.
Исправление разрешения терминала
Переход с драйвера nouveau будет сопровождаться низким разрешением экрана терминала при загрузке. Для загрузчика GRUB, обратитесь к GRUB/Tips and tricks#Setting the framebuffer resolution, чтобы увеличить разрешение.
Использование ТВ-выхода
Хорошая статья об этом есть тут.
X with a TV (DFP) as the only display
Сервер X откатывается к CRT-0, если нет автоматически определённого монитора. Это может стать проблемой при использовании подключения ТВ через DVI как основной монитор, и сервер X был запущен при выключенном ТВ или он был не подключен.
Для принудительного использования DFP драйвером NVIDIA, сохраните копию EDID в файловой системе там, где его сможет прочитать сервер X, вместо чтения EDID с ТВ/DFP.
Для получения EDID запустите nvidia-settings. Появится различная информация в древовидном формате, игнорируя все настройки выберите графический процессор (соответствующее поле должно называться "GPU-0" или быть похожим на него), щелкните по DFP
секции (также возможно DFP-0
или что-то похожее), нажмите на кнопку Acquire Edid
и сохраните куда-нибудь, например в /etc/X11/dfp0.edid
.
Если у вас не подключена мышь и клавиатура, EDID может быть получен из командной строки. Запустите сервер X с нужным логированием для вывода блока EDID:
$ startx -- -logverbose 6
После окончания иницализации сервера X закройте его, ваш лог файл сохранится в /var/log/Xorg.0.log
. Извлеките блок EDID используя nvidia-xconfig:
$ nvidia-xconfig --extract-edids-from-file=/var/log/Xorg.0.log --extract-edids-output-file=/etc/X11/dfp0.bin
Отредактируйте xorg.conf
добавив в секцию Device
строки:
Option "ConnectedMonitor" "DFP" Option "CustomEDID" "DFP-0:/etc/X11/dfp0.edid"
Опция ConnectedMonitor
принуждает драйвер распознавать DFP так, как буд-то он подключен. CustomEDID
предоставляет данные EDID для устройства и говорит, что при загрузке ТВ/DFP как бы был подключен во время процесса запуска X.
Таким образом, можно автоматически запускать менеджер экрана при загрузке, иметь рабочий и настроенный экран для X до включения питания ТВ.
Если вышеуказанные изменения не работают, в xorg.conf
в секции Device
вы можете попробовать удалить строку Option "ConnectedMonitor" "DFP"
и добавить следующие строки:
Option "ModeValidation" "NoDFPNativeResolutionCheck" Option "ConnectedMonitor" "DFP-0"
Опция драйвера NVIDIA NoDFPNativeResolutionCheck
предотвращает отключение всех режимов, которые не подходят к основному разрешению.
Проверьте источник питания
С помощью драйвера NVIDIA можно выяснить текущий источник питания видеокарты. Для этого нужно получить значение параметра 'GPUPowerSource' с помощью утилиты nvidia-settings
(0 - питание от сети переменного напряжения, 1 - питание от батареи):
$ nvidia-settings -q GPUPowerSource -t
1
Прослушивание ACPI-событий
Драйверы NVIDIA автоматически пытаются подключиться к демону acpid и получать уведомления о ACPI событиях (подключение/отключение источника питания, некоторые горячие клавиши и т.д.). Если соединение завершается неудачей, то X сервер выведет следующее предупреждение:
~/.local/share/xorg/Xorg.0.log
NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon NVIDIA(0): may not be running or the "AcpidSocketPath" X NVIDIA(0): configuration option may not be set correctly. When the NVIDIA(0): ACPI event daemon is available, the NVIDIA X driver will NVIDIA(0): try to use it to receive ACPI event notifications. For NVIDIA(0): details, please see the "ConnectToAcpid" and NVIDIA(0): "AcpidSocketPath" X configuration options in Appendix B: X NVIDIA(0): Config Options in the README.
Вы можете запретить вывод этого сообщения, отключив опцию ConnectToAcpid
в вашем конфигурационном файле:
/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device" ... Driver "nvidia" Option "ConnectToAcpid" "0" ... EndSection
Однако если вы пользователь ноутбука, возможно более грамотным решением проблемы станет установка и запуск acpid демона.
Отображение температуры графического процессора в оболочке
Method 1 - nvidia-settings
Для отображения температуры графического ядра в оболочке используйте nvidia-settings
как указано ниже:
$ nvidia-settings -q gpucoretemp
Вывод должен быть примерно такой:
Attribute 'GPUCoreTemp' (hostname:0.0): 41. 'GPUCoreTemp' is an integer attribute. 'GPUCoreTemp' is a read-only attribute. 'GPUCoreTemp' can use the following target types: X Screen, GPU.
Температура графического процессора этой платы 41 °C.
Пример того, как получить значение температуры для использования в утилитах rrdtool
или conky
и др.:
$ nvidia-settings -q gpucoretemp -t
41
Method 2 - nvidia-smi
nvidia-smi
может читать температуру прямо с графического процессора без использования сервера X. Это важно для небольшой группы пользователей, которые не имеют запущенного сервера X, те, кто используют ОС для серверных приложений.
Отображение температуры графического процессора с использованием nvidia-smi:
$ nvidia-smi
Пример вывода результата работы программы:
$ nvidia-smi
Fri Jan 6 18:53:54 2012 +------------------------------------------------------+ | NVIDIA-SMI 2.290.10 Driver Version: 290.10 | |-------------------------------+----------------------+----------------------+ | Nb. Name | Bus Id Disp. | Volatile ECC SB / DB | | Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. | |===============================+======================+======================| | 0. GeForce 8500 GT | 0000:01:00.0 N/A | N/A N/A | | 30% 62 C N/A N/A / N/A | 17% 42MB / 255MB | N/A Default | |-------------------------------+----------------------+----------------------| | Compute processes: GPU Memory | | GPU PID Process name Usage | |=============================================================================| | 0. ERROR: Not Supported | +-----------------------------------------------------------------------------+
Только температура:
$ nvidia-smi -q -d TEMPERATURE
==============NVSMI LOG============== Timestamp : Sun Apr 12 08:49:10 2015 Driver Version : 346.59 Attached GPUs : 1 GPU 0000:01:00.0 Temperature GPU Current Temp : 52 C GPU Shutdown Temp : N/A GPU Slowdown Temp : N/A
Пример того, как получить значение температуры для использования в утилитах rrdtool
или conky
и др.:
$ nvidia-smi -q -d TEMPERATURE | awk '/GPU Current Temp/ {print $5}'
52
Ссылка на руководство: https://www.question-defense.com/2010/03/22/gpu-linux-shell-temp-get-nvidia-gpu-temperatures-via-linux-cli.
Method 3 - nvclock
Используйте nvclockAUR.
nvclock
не может получить доступ к тепловому сенсору на картах NVIDIA новее Geforce 200 series.Могут быть расхождения значений температуры между nvclock и nvidia-settings/nv-control. В соответствии с этим сообщением от автора (thunderbird) nvclock, значения выдаваемые nvclock более точные.
Установка скорости вентилятора при входе
Вы можете выставить скорость вентилятора вашей графической карты с помощью консольного интерфейса nvidia-settings. Сначала убедитесь в том, что в вашем конфигурационом файле Xorg значения опции Coolbits установлены в 4
, 5
или 12
для архитектуры Ферми и выше в секции Device
для включения управления скоростью вентилятора.
Option "Coolbits" "4"
Поместите следующую строку в ваш файл xinitrc для управления вентилятором при запуске Xorg. Замените n
на значение скорости вентилятора нужное вам в процентах.
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=n"
Также вы можете указать и второй графический процессор, путем увеличения счетчика графического процесора и вентилятора.
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=n" \ -a "[gpu:1]/GPUFanControlState=1" -a [fan:1]/GPUCurrentFanSpeed=n" &
Если вы ипользуете менеджер входа такой как GDM или KDM, вы можете создать файл настроек. Создайте ~/.config/autostart/nvidia-fan-speed.desktop
и вставьте следующий текст.Снова измените n
на значение скорости вентилятора нужное вам в процентах.
[Desktop Entry] Type=Application Exec=nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=n" X-GNOME-Autostart-enabled=true Name=nvidia-fan-speed
Переключение драйверов NVIDIA и nouveau
Если вам необходимо переключиться между драйверами, вы можете воспользоваться следующим скриптом (запускайте с правами суперпользователя и пишите yes во всех подтверждениях) :
#!/bin/bash BRANCH= # Enter a branch if needed, i.e. -340xx or -304xx NVIDIA=nvidia${BRANCH} # If no branch entered above this would be "nvidia" NOUVEAU=xf86-video-nouveau # Replace -R with -Rs to if you want to remove the unneeded dependencies if [ $(pacman -Qqs ^mesa-libgl$) ]; then pacman -S $NVIDIA ${NVIDIA}-libgl # Add lib32-${NVIDIA}-libgl and ${NVIDIA}-lts if needed # pacman -R $NOUVEAU elif [ $(pacman -Qqs ^${NVIDIA}$) ]; then pacman -S --needed $NOUVEAU mesa-libgl # Add lib32-mesa-libgl if needed pacman -R $NVIDIA # Add ${NVIDIA}-lts if needed fi
Как избежать разрывов/тиринга на картах GeForce серий 500/600/700/900
Разрывов можно избежать принудительным включением цепочки полного композитинга, независимо от используего вами композитора. Для проверки работоспособности опции, выполните
nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
Вам будет сообщено, что производительность некоторых приложений OpenGL может быть снижена.
Для постоянного использования сделанных изменений, вам необходимо добавить следующую строку в секцию "Screen"
вашего конфигурационного файла Xorg, например /etc/X11/xorg.conf.d/20-nvidia.conf
:
Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
Если у вас нет конфигурационного файла Xorg, вы можете создать его для текущей видеокарты исполльзуя nvidia-xconfig
(смотрите #Автоматическая настройка[ссылка недействительна: раздел не найден]) и переместить его из /etc/X11/xorg.conf
в более удобное место /etc/X11/xorg.conf.d/20-nvidia.conf
.
Ручная конфигурация
Некоторые настройки (которые не могут быть настроены автоматически[ссылка недействительна: раздел не найден] или с помощью GUI) можно выполнить с помощью редактирования конфигурационного файла. Для вступления изменений в силу перезапустите X сервер.
Обратитесь к NVIDIA Accelerated Linux Graphics Driver README and Installation Guide для дополнительных сведений.
Отключение логотипа при загрузке
Добавьте опцию "NoLogo"
внутри секции Device
:
Option "NoLogo" "1"
Переопределение обнаружения монитора
Опция "ConnectedMonitor"
в секции Device
позволяет переопределить обнаружение монитора при старте Х сервера, что может сэкономить значительное время при запуске системы. Возможные значения: "CRT"
для аналоговых соединений, "DFP"
для цифровых соединений и "TV"
для телевизоров.
Следующее выражение заставляет драйвер NVIDIA пропустить стартовые проверки и распознать монитор как DFP:
Option "ConnectedMonitor" "DFP"
Включение SLI
Выдержка из README драйвера NVIDIA Приложение B: Данная опция контролирует рендеринг SLI в поддерживаемых конфигурациях. Другими словами, в "поддерживаемых конфигурациях" обозначены компьютеры оборудованные материнской платой c сертифицированной поддержкой SLI и 2 или 3 графических процессора GeForce, также с сертифицированной поддержкой SLI. Смотрите Зона SLI (англ.)[устаревшая ссылка 2020-08-04] для получения подробной информации.
Найдем первый PCI Bus ID графического процессора, используя lspci
:
$ lspci | grep VGA
03:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GTS 512] (rev a2) 05:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GTS 512] (rev a2)
Добавим BusID (3 в нашем случае) в секцию Device
:
BusID "PCI:3:0:0"
"PCI:<BusID>:0:0"
Добавьте желаемое значение режима рендеринга SLI в секцию Screen
:
Option "SLI" "AA"
Следущая таблица описывает доступные режимы рендеринга.
Значение | Описание |
---|---|
0, no, off, false, Single | Использовать только один графический процессор для рендеринга. |
1, yes, on, true, Auto | Включить SLI и позволить драйверу автоматически выбрать режим рендеринга. |
AFR | Включить SLI и использовать режим поочередного рендеринга кадров. |
SFR | Включить SLI и использовать режим разделённого рендеринга кадров. |
AA | Включить SLI и использовать сглаживание SLI. Используйте в сочетании с полным сглаживанием сцены, для улучшения качества визуализации. |
Другой вариант, вы можете использовать утилиту nvidia-xconfig
для вставки изменений в xorg.conf
одной командой:
# nvidia-xconfig --busid=PCI:3:0:0 --sli=AA
Для проверки работы режима SLI в консольном режиме:
$ nvidia-settings -q all | grep SLIMode
Attribute 'SLIMode' (arch:0.0): AA 'SLIMode' is a string attribute. 'SLIMode' is a read-only attribute. 'SLIMode' can use the following target types: X Screen.
Включение разгона
Разгон контролируется через опцию Coolbits в секции Device
, позволяя использовать различные неподдерживаемые свойства:
Option "Coolbits" "value"
# nvidia-xconfig --cool-bits=value
Значение Coolbits - сумма его составляющих битов в двоичной системе исчисления. Типы битов:
-
1
(bit 0) - Включает возможность разгона для старых (до архитектуры Fermi) ядер, вкладка Clock Frequencies в nvidia-settings. -
2
(bit 1) - Когда бит установлен, драйвер "будет пытаться инициализировать режим SLI, когда используются два графических процессора с разным количеством видеопамяти". -
4
(bit 2) - Включает ручное управление охлаждением графического процессора вкладка Thermal Monitor в nvidia-settings. -
8
(bit 3) - Включает возможность разгона на вкладке PowerMizer в nvidia-settings. Доступна с версии 337.12 для архитектур Fermi и новее. [2] -
16
(bit 4) - Включает возможность повышения напряжения через параметры командной строки nvidia-settings. Доступна с версии 337.12 для архитектур Fermi и новее.[3]
Чтобы включить несколько свойств, сложите значения Coolbits. Например, чтобы включить возможности разгона и повышения напряжения для архитектуры Fermi, установите значение Option "Coolbits" "24"
.
Документация по Coolbits находится в /usr/share/doc/nvidia/html/xconfigoptions.html
. Последния онлайн-версия документации по Coolbits (версия драйвера 355.11) находится тут (англ.).
Настройка статического 2D/3D разгона
Установите следующую строку в секции Device
для включения PowerMizer на максимальную производительность (VSync не будет работать без этой строки):
Option "RegistryDwords" "PerfLevelSrc=0x2222"