Управление видеокартой в линукс
Transitioning from nouveau may cause your startup terminal to display at a lower resolution.
For rEFInd, add to esp/EFI/refind/refind.conf and /etc/refind.d/refind.conf (latter file is optional but recommended):
A small caveat is that this will hide the kernel parameters from being shown during boot.
Kernel module parameters
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
Reason: Giving advanced examples without explaining what they do is pointless. (Discuss in Talk:NVIDIA/Tips and tricks)
On some notebooks, to enable any nvidia settings tweaking you must include this option, otherwise it responds with "Setting applications clocks is not supported" etc.
Разрешение без подключенных мониторов
В headless-режиме выставляется разрешение 640x480, которое будет использоваться в VNC или Steam Link. Чтобы выставить разрешение побольше, например 1920x1080, пропишите Virtual в подсекции Screen :
Совет: Headless-режим может быть сложным и чреватым ошибками. Например, среды рабочего стола и nvidia-utils не предоставляют графического способа изменения разрешения. Для облегчения настройки разрешения можно использовать фиктивный адаптер DP или HDMI, который имитирует наличие монитора, подключенного к этому порту. Тогда разрешение можно будет изменить обычными способами с помощью удалённого сеанса, такого как VNC или Steam Link.
Прослушивание ACPI-событий
Драйверы NVIDIA автоматически пытаются подключиться к демону acpid и получать уведомления о ACPI событиях (подключение/отключение источника питания, некоторые горячие клавиши и т.д.). Если соединение завершается неудачей, то X сервер выведет следующее предупреждение:
Однако если вы пользователь ноутбука, возможно более грамотным решением проблемы станет установка и запуск демона acpid.
Решение проблем xorg.conf
Если у вас не получается правильно настроить xorg.conf, нужно начать с самого меньшего. Используйте драйвер Vesa. Это стандартный видеодрайвер, а значит, его поддерживает любая видеокарта. Просто установите значение опции Driver - Vesa и попробуйте запустить X сервер. Вы должны увидеть свой рабочий стол.
Но драйвер Vesa работает намного медленнее, чем более современные драйвера. Если Vea позволяет запустить графическое окружение, значит проблема в вашем графическом драйвере или в настройке.
Попробуйте использовать утилиту lspci, чтобы посмотреть точную версию своей видеокарты, обычно для старых карт нужны более старые драйвера.
2. GLMark2
GLMark2 - более мощный инструмент, выпущенный разработчиками дистрибутива Lenaro. В отличие от glxgears, glmark предлагает большое количество тестов для различных аспектов работы видеокарты (буферизация, освещение, текстурирование, построение и т. д.) что позволяет лучше оценить видеокарту.
Каждый тест проводится на протяжении 10-ти секунд, а частота кадров подсчитывается индивидуально. В конце программа выдает оценку производительности на основе всех проведенных тестов. Мне нравится этот инструмент своей простотой и безупречной работой. Вы можете найти его в официальных репозиториях большинства дистрибутивов под названием gmark2. Для установки в Ubuntu выполните:
sudo apt install glmark2
После установки проверка видеокарты может быть запущена командой:
nvidia-settings
Для отображения температуры графического ядра в оболочке используйте nvidia-settings как указано ниже:
Вывод должен быть примерно такой:
Температура графического процессора этой платы 41 °C.
Пример того, как получить значение температуры для использования в утилитах rrdtool или conky и др.:
Отображение температуры графического процессора в оболочке
Существует три метода запроса температуры видеокарты. nvidia-settings требует использования X, nvidia-smi или nvclock — не требуют. Также обратите внимание, что nvclock в настоящее время не работает с новыми картами NVIDIA, такими как карты серии GeForce 200, а также интегрированными графическими решениями, такими как Zotac IONITX's 8800GS.
4. Набор программ Unigine
Для тех кому недостаточно первых трёх программ, и тех кто хочет чего-то более современного есть еще три инструмента которые используют 3D движок Unigine. Это Valley, Heaven и Superposition. Бесплатные версии можно скачать на официальном сайте.
Эти инструменты позволяют тестировать в реальном времени взаимодействие света из различных источников, рендеринг, реалистичное небо с рассеянным светом в атмосфере или воду. Можно настроить уровни сглаживания, качество текстур, фильтрацию, анизатропию и качество шейдеров.
Установочный файл занимает около 1,5 гигабайта. После загрузки просто выполните его для установки программы:
После этого вы сможете найти программу в главном меню системы. Запустите её:
На вкладке Benchmark вы можете выполнить тест производительности видеокарты. Чтобы выбрать параметры тестирования вручную переключите поле Preset в положение Custom или оставьте по умолчанию. Для запуска тестирования нажмите кнопку Run.
Во время тестирования в правом верхнем углу будет отображаться информация о видеокарте. Это объем памяти, частота, а самое главное температура. По завершении вы увидите оценку и сможете сравнить её с другими оценками в интернете:
Driver persistence
Nvidia has a daemon that can be optionally run at boot. In a standard single-GPU X desktop environment the persistence daemon is not needed and can actually create issues [8]. See the Driver Persistence section of the Nvidia documentation for more details.
To start the persistence daemon at boot, enable the nvidia-persistenced.service . For manual usage see the upstream documentation.
За отрисовку всех графических элементов в Linux отвечает графический сервер. Он реализует интерфейс прослойки между драйверами видеокарты и различными программами, которые работают с графикой.
В самых современных дистрибутивах на замену Xorg серверу пришел новый дисплейный сервер Wayland. Но он все еще находится в активной разработке и не совсем готов к постоянному использованию. Поэтому Xorg все еще применяется в большинстве дистрибутивов.
После установки видеокарта работает достаточно хорошо и настроек по умолчанию в большинстве случаев хватает, но иногда нужно изменить некоторые параметры. Мы не будем рассматривать установку драйверов. В этой статье мы сосредоточимся на том, как выполняется настройка видеокарты linux через xorg.conf.
1. Утилиты sensors и psensor
Набор программ sensors позволяет отображать не только температуру процессора, но и видеокарты. Здесь она отображается как PCI Adapter, однако иногда в этом пункте может отображаться и температура процессора, поэтому будьте внимательны и посмотрите другие способы. Сначала надо установить lm_sensors, откройте терминал и наберите:
sudo apt install lm_sensors
Затем необходимо обнаружить все сенсоры в системе:
Читайте более подробно об этом в статье про температуру процессора. А сейчас мы посмотрим температуру:
Или в графическом интерфейсе:
Headless (no monitor) resolution
In headless mode, resolution falls back to 640x480, which is used by VNC or Steam Link. To start in a higher resolution e.g. 1920x1080, specify a Virtual entry under the Screen subsection in xorg.conf :
Tip: Using headless mode may be tricky and prone to error. For instance, in headless mode, desktop environments and nvidia-utils do not provide a graphical way to change resolution. To facilitate setting up resolution one can use a DP or an HDMI dummy adapter which simulates the presence of a monitor attached to that port. Then resolution change can be done normally using a remote session such as VNC or Steam Link.
nvclock
Use nvclock AUR which is available from the AUR.
There can be significant differences between the temperatures reported by nvclock and nvidia-settings/nv-control. According to this post by the author (thunderbird) of nvclock, the nvclock values should be more accurate.
nvidia-smi
nvidia-smi может читать температуру прямо с графического процессора без использования сервера X. Это важно для небольшой группы пользователей, которые не имеют запущенного сервера X, те, кто используют ОС для серверных приложений. Отображение температуры графического процессора с использованием nvidia-smi:
Пример вывода результата работы программы:
Пример того, как получить значение температуры для использования в утилитах rrdtool или conky и др.:
Создание Xorg.conf
Обычно, этот файл размещен в директории /etc/X11/xorg.conf. Но если в вашем дистрибутиве его нет, можно без проблем создать xorg.conf на основе журнала.
Сначала скопируйте файл журнала для новой сессии:
cp /var/log/Xorg.0.log /var/log/Xorg.1.log
Xorg -configure :1
Программа проанализирует файл лога, и на его основе создаст новый файл /etc/X11/xorg.conf учитывая конфигурацию вашей системы. В вашем домашнем каталоге появиться файл xorg.conf.new, который нужно скопировать в /etc/X11/:
cp xorg.conf.new /etc/X11/
Set fan speed at login
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
You can adjust the fan speed on your graphics card with nvidia-settings' console interface. First ensure that your Xorg configuration has enabled the bit 2 in the Coolbits option.
Note: GeForce 400/500 series cards cannot currently set fan speeds at login using this method. This method only allows for the setting of fan speeds within the current X session by way of nvidia-settings.
Place the following line in your xinitrc file to adjust the fan when you launch Xorg. Replace n with the fan speed percentage you want to set.
You can also configure a second GPU by incrementing the GPU and fan number.
If you use a login manager such as GDM or SDDM, you can create a desktop entry file to process this setting. Create ~/.config/autostart/nvidia-fan-speed.desktop and place this text inside it. Again, change n to the speed percentage you want.
To make it possible to adjust the fanspeed of more than one graphics card, run:
Note: On some laptops (including the ThinkPad X1 Extreme and P51/P52), there are two fans, but neither are controlled by nvidia.
Настройка видеокарты в xorg.conf
У драйверов видеокарт ест множество различных полезных опций, которые вы можете настроить с помощью xorg.conf. Большинство из них специфичны для конкретного производителя видеокарт. Например, есть множество настроек для видеокарт NVIDIA, но с другой стороны карты от ATI не настраиваются через этот файл. Драйвера с открытым исходным кодом от Intel имеют только несколько настроек. Дальше будет рассмотрена настройка видеокарты linux для различных производителей.
Сохранение видеопамяти в ждущем режиме
По умолчанию драйверы NVIDIA Linux сохраняют и восстанавливают в ждущем режиме только основные распределения видеопамяти. Цитируя NVIDIA ([6], также доступно с пакетом nvidia-utils в /usr/share/doc/nvidia/html/powermanagement.html ): Потеря содержимого видеопамяти частично компенсируется драйверами NVIDIA и некоторыми приложениями, но может привести к таким сбоям, как повреждение рендеринга и сбои приложений при выходе из циклов управления питанием.
Пока ещё экспериментальная система позволяет сохранять всю видеопамять (при наличии достаточного места на диске или в оперативной памяти). Интерфейс доступен через файл /proc/driver/nvidia/suspend и работает следующим образом: запишите "suspend" (или "hibernate") в /proc/driver/nvidia/suspend непосредственно перед записью в обычный файл /sys/power/state , запись "resume" в /proc/driver/nvidia/suspend сразу после пробуждения или после неудачной попытки ухода в ждущий или спящий режим.
Драйверы NVIDIA полагаются на определённую пользователем файловую систему для хранения данных. Выбранная файловая система должна поддерживать безымянные временные файлы (ext4 подходит) и иметь достаточный объём для хранения распределения видеопамяти (например, как минимум (сумма объёма памяти всех видеокарт NVIDIA) * 1.02 ). Используйте команду nvidia-smi -q -d MEMORY для получения списка объёмов памяти всех GPU в системе.
Чтобы выбрать файловую систему, используемую для хранения видеопамяти во время сна системы (и изменить стратегию сохранения/восстановления видеопамяти по умолчанию на сохранение и восстановление всех распределений видеопамяти), необходимо передать две опции модулю ядра "nvidia". Например, запишите следующую строку в /etc/modprobe.d/nvidia-power-management.conf и перезагрузитесь:
Можно заменить /tmp-nvidia а другой желаемый вами путь.
Взаимодействие с /proc/driver/nvidia/suspend обрабатывается простым скриптом /usr/bin/nvidia-sleep.sh , который сам будет вызван таким инструментом вроде systemd. Пакет nvidia-utils поставляется с соответствующими службами systemd (которые, по сути, просто вызывают nvidia-sleep.sh ): nvidia-suspend , nvidia-hibernate , nvidia-resume . Вопреки инструкциям NVIDIA, в настоящее время нет необходимости включать nvidia-resume (и на самом деле, возможно, это не очень хорошая идея), потому что скрипт /usr/lib/systemd/system-sleep/nvidia делает то же самое, что и эта служба (но немного раньше) и включен по умолчанию (systemd вызывает его после пробуждения). Включите nvidia-suspend и/или nvidia-hibernate .
Включение разгона
Важно: Помните, что разгон может привести к повреждению оборудования и авторы этой страницы снимают с себя любую ответственность за повреждение оборудования, вся информация, в том числе и возможность разгона, указывается изготовителем в спецификации к оборудованию.
Разгон контролируется через опцию Coolbits в секции Device , позволяя использовать различные неподдерживаемые свойства:
Совет: Опция Coolbits легко контролируется через nvidia-xconfig, которая может управлять файлами конфигурации Xorg:
Значение 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 и новее. [1]
- 16 (bit 4) - Включает возможность повышения напряжения через параметры командной строки nvidia-settings. Доступна с версии 346.16 для архитектур Fermi и новее.[2]
Чтобы включить несколько свойств, сложите значения Coolbits. Например, чтобы включить возможности разгона и повышения напряжения для архитектуры Fermi, установите значение Option "Coolbits" "24" .
Документация по Coolbits находится в /usr/share/doc/nvidia/html/xconfigoptions.html и здесь.
Примечание: Также можно отредактировать и перепрошить BIOS видеокарты через DOS (предпочтительнее) или с использованием Win32 окружения с помощью nvflash и NiBiTor 6.0. Преимущество данного способа в том, что вы можете поднять не только напряжение, но и повысить стабильность программных методов разгона, такие как Coolbits. Руководство по модификации BIOS архитектуры Fermi (англ.)
Настройка статического 2D/3D разгона
Установите следующую строку в секции Device для включения PowerMizer на максимальную производительность (VSync не будет работать без этой строки):
Сохранение настроек разгона
Как правило, изменения частоты и напряжения, сделанные через интерфейс nvidia-settings, не сохраняются, теряясь после перезагрузки. К счастью, существуют инструменты, предлагающие интерфейс для разгона под проприетарным драйвером, способные сохранять настройки разгона пользователя и автоматически применять их при загрузке. Вот некоторые из них:
- gweAUR — графический, применяет настройки при запуске сеанса рабочего стола
- nvclockAUR и systemd-nvclock-unitAUR — графический, применяет настройки при загрузке системы
- nvocAUR — текстовый, профили представляют собой конфигурационные файлы в /etc/nvoc.d/ , применяет настройки при запуске сеанса рабочего стола
Check the power source
nvclock
Примечание: nvclock не может получить доступ к тепловому сенсору на картах NVIDIA новее Geforce 200 series.
Температура видеокарты в Linux
3. GpuTest
Это небольшая современная утилита для тестирования видеокарты в Linux, она поддерживает несколько OpenGL тестов, в том числе и для современных стандартов. Вот поддерживаемые тесты: треугольник (OpenGL 2.1 или OpenGL 3.2), пиксельный тест шейдеров (OpenGL 2.1 или OpenGL 3.2), FurMark (OpenGL 2.1 или 3.2), Plot3D (OpenGL 2.1 или 3.2), GiMark и TessMark (OpenGL 4.0).
Утилиту можно запустить через терминал или с помощью графического интерфейса. Также кроме обычных OpenGL тестов можно выполнить нагрузочное тестирование. Удобно, что утилита сразу выводит результат в терминал, по которому можно сделать приблизительную оценку того как прошла проверка видеокарты linux. Для установки программы необходимо скачать и распаковать архив с портативной версией из официального сайта.
Разгон и охлаждение
Настройка видеокарты Intel
Графическими картами от Intel не всегда поддерживается настройка xorg.conf. Поэтому вам нужно проверить каждую из опций чтобы увидеть дает ли она какой-либо результат. Опции нужно добавлять в раздел Device:
- Option "AccelMethod" "EXA" - эта опция позволяет включить новую архитектуру ускорения EXA. Она поддерживается в большинстве интегрированных карт Intel 943/940 и позволяет улучшить скорость композитинга.
- Option "MigrationHeuristic" "greedy" - позволяет уменьшить использование видеопамяти на хранение различных текстур, что повышает общую производительность;
- Option "TripleBuffer" "true" - этот параметр включает использование более совершенного метода двойной буферизации (используется для противостояния мерцанием).
Настройка видеокарты Linux c помощью xorg.conf
Конфигурационный файл xorg.conf - это обычный текстовый файл, в котором хранятся параметры работы Xorg сервера. Сюда входят настройки дисплея, мыши, видеокарты и клавиатуры. В былые времена этот файл был очень большим и сложным, но со временем его функции были перенесены в другие компоненты системы. Поэтому в последнее время он был видоизменен, и упрощен. Во многих дистрибутивах вообще такого файла нет, а вся конфигурация хранится в бинарном формате.
Но настройка xorg linux может все еще понадобиться, если вы хотите сделать нестандартные настройки, повысить частоту обновления экрана, изменить расширение экрана, увеличить производительность и многое другое.
Выводы
В этой статье мы рассмотрели с помощью каких программ выполняется проверка видеокарты Linux. Несмотря на то, что здесь есть не так много игр как для Windows, все же есть достаточно инструментов, которые можно использовать для тестирования OpenGL, если вы знаете другие отличные инструменты, напишите в комментариях!
Состояние перевода: На этой странице представлен перевод статьи NVIDIA/Tips and tricks. Дата последней синхронизации: 8 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Изменение лимита TDP
Современные видеокарты Nvidia сбрасывают частоту, чтобы оставаться в пределах своего TDP и температуры. Для повышения производительности можно изменить предел TDP, что привёдет к повышению температуры и увеличению энергопотребления.
Например, чтобы установить предел энергопотребления на 160,30 Вт
Чтобы установить предел во время загрузки системы:
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:
После окончания иницализации сервера X закройте его, ваш лог файл сохранится в /var/log/Xorg.0.log . Извлеките блок EDID используя nvidia-xconfig:
Отредактируйте xorg.conf добавив в секцию Device строки:
Опция ConnectedMonitor принуждает драйвер распознавать DFP так, как буд-то он подключен. CustomEDID предоставляет данные EDID для устройства и говорит, что при загрузке ТВ/DFP как бы был подключен во время процесса запуска X.
Таким образом, можно автоматически запускать менеджер экрана при загрузке, иметь рабочий и настроенный экран для X до включения питания ТВ.
Если вышеуказанные изменения не работают, в xorg.conf в секции Device вы можете попробовать удалить строку Option "ConnectedMonitor" "DFP" и добавить следующие строки:
Опция драйвера NVIDIA NoDFPNativeResolutionCheck предотвращает отключение всех режимов, которые не подходят к основному разрешению.
Установка скорости вентилятора при входе
Вы можете выставить скорость вентилятора вашей графической карты с помощью консольного интерфейса nvidia-settings. Сначала убедитесь в том, что в вашем конфигурационом файле Xorg для опции Coolbits установлен бит 2.
Примечание: Для карт GeForce 400/500 series, на текущий момент, этот метод при входе не устанавливает скорость вентилятора. Также, этот метод только позволяет настраивать скорость вентилятора только для текущей сессии X через nvidia-settings.
Поместите следующую строку в ваш файл xinitrc для управления вентилятором при запуске Xorg. Замените n на значение скорости вентилятора нужное вам в процентах.
Также вы можете указать и второй графический процессор, путем увеличения счетчика графического процесора и вентилятора.
Если вы ипользуете менеджер входа такой как GDM или SDDM, вы можете создать файл настроек. Создайте ~/.config/autostart/nvidia-fan-speed.desktop и вставьте следующий текст.Снова измените n на значение скорости вентилятора нужное вам в процентах.
Примечание: До версии драйвера 349.16 вместо опции GPUTargetFanSpeed использовалась опция GPUCurrentFanSpeed . [3]
Чтобы можно было регулировать скорость вращения вентиляторов более чем одной видеокарты, выполните команду:
Примечание: На некоторых ноутбуках (например, X1 Extreme и P51/P52) есть два вентилятора, но nvidia их не контролирует.
Displaying GPU temperature in the shell
There are three methods to query the GPU temperature. nvidia-settings requires that you are using X, nvidia-smi or nvclock do not. Also note that nvclock currently does not work with newer NVIDIA cards such as GeForce 200 series cards as well as embedded GPUs such as the Zotac IONITX's 8800GS.
Драйвер persistence
Есть демон, который можно запускать при загрузке. В стандартной настольной среде с одной видеокартой демон не нужен и может создавать проблемы [7]. Смотрите раздел Driver Persistence документации Nvidia для получения подробной информации.
Для запуска демона persistence включите службу nvidia-persistenced.service . Для использования вручную смотрите документацию разработчика.
X with a TV (DFP) as the only display
The X server falls back to CRT-0 if no monitor is automatically detected. This can be a problem when using a DVI connected TV as the main display, and X is started while the TV is turned off or otherwise disconnected.
To force NVIDIA to use DFP, store a copy of the EDID somewhere in the filesystem so that X can parse the file instead of reading EDID from the TV/DFP.
To acquire the EDID, start nvidia-settings. It will show some information in tree format, ignore the rest of the settings for now and select the GPU (the corresponding entry should be titled "GPU-0" or similar), click the DFP section (again, DFP-0 or similar), click on the Acquire Edid Button and store it somewhere, for example, /etc/X11/dfp0.edid .
If in the front-end mouse and keyboard are not attached, the EDID can be acquired using only the command line. Run an X server with enough verbosity to print out the EDID block:
After the X Server has finished initializing, close it and your log file will probably be in /var/log/Xorg.0.log . Extract the EDID block using nvidia-xconfig:
Edit xorg.conf by adding to the Device section:
The ConnectedMonitor option forces the driver to recognize the DFP as if it were connected. The CustomEDID provides EDID data for the device, meaning that it will start up just as if the TV/DFP was connected during X the process.
This way, one can automatically start a display manager at boot time and still have a working and properly configured X screen by the time the TV gets powered on.
If the above changes did not work, in the xorg.conf under Device section you can try to remove the Option "ConnectedMonitor" "DFP" and add the following lines:
The NoDFPNativeResolutionCheck prevents NVIDIA driver from disabling all the modes that do not fit in the native resolution.
Contents
Параметры модуля ядра
На некоторых ноутбуках, чтобы разрешить изменения через nvidia-settings, необходимо включить этот параметр, иначе он будет отвечать "Setting applications clocks is not supported" и т.д.
Проверьте источник питания
С помощью драйвера NVIDIA можно выяснить текущий источник питания видеокарты. Для этого нужно получить значение параметра 'GPUPowerSource' с помощью утилиты nvidia-settings (0 - питание от сети переменного напряжения, 1 - питание от батареи):
1. Утилита glxgears
Программа glxgears это популярный OpenGL тест, который входит в пакет утилит mesa-utils. Для установки в Ubuntu выполните команду:
sudo apt install mesa-utils
Для тестирования выполните команду glxgears в терминале:
Программа откроет окно, в котором будут рендериться три вращающихся в 3D пространстве шестеренки. Частота кадров (FPS) измеряется и выводится в терминал каждые 5 секунд. Это очень старый инструмент и поэтому позволяет проверить только небольшую часть из возможностей современного OpenGL.
Раньше он использовался для проверки корректности установки и работы проприетарного видеодрайвера. Драйверы с открытым исходным кодом, как правило, работали ужасно, и это было очень заметно во время того, как выполнялся этот тест opengl linux. Сейчас же вы не заметите никакой разницы, по крайней мере, в glxgears.
nvidia-settings
To display the GPU temp in the shell, use nvidia-settings as follows:
This will output something similar to the following:
The GPU temps of this board is 41 C.
In order to get just the temperature for use in utilities such as rrdtool or conky:
Preserve video memory after suspend
By default the NVIDIA Linux drivers save and restore only essential video memory allocations on system suspend and resume. Quoting NVIDIA ([7], also available with the nvidia-utils package in /usr/share/doc/nvidia/html/powermanagement.html): The resulting loss of video memory contents is partially compensated for by the user-space NVIDIA drivers, and by some applications, but can lead to failures such as rendering corruption and application crashes upon exit from power management cycles.
The still experimental system enables saving all video memory (given enough space on disk or main RAM). The interface is through the /proc/driver/nvidia/suspend file as follows: write "suspend" (or "hibernate") to /proc/driver/nvidia/suspend immediately before writing to the usual Linux /sys/power/state file, write "resume" to /proc/driver/nvidia/suspend immediately after waking up, or after an unsuccessful attempt to suspend or hibernate.
The NVIDIA drivers rely on a user defined file system for storage. The chosen file system needs to support unnamed temporary files (ext4 works) and have sufficient capacity for storing the video memory allocations (e.g., at least (sum of the memory capacities of all NVIDIA GPUs) * 1.02 ). Use the command nvidia-smi -q -d MEMORY to list the memory capacities of all GPUs in the system.
To choose the file system used for storing video memory during system sleep (and change the default video memory save/restore strategy to save and restore all video memory allocations), it is necessary to pass two options to the "nvidia" kernel module. For example, write the following line to /etc/modprobe.d/nvidia-power-management.conf and reboot:
Feel free to replace "/tmp-nvidia" in the previous line with a path within your desired file system.
The interaction with /proc/driver/nvidia/suspend is handled by the simple Unix shell script at /usr/bin/nvidia-sleep.sh, which will itself be called by a tool like Systemd. The Arch Linux nvidia-utils package ships with the following relevant Systemd services (which essentially just call nvidia-sleep.sh): nvidia-suspend , nvidia-hibernate , nvidia-resume . Contrary to NVIDIA's instructions, it is currently not necessary to enable nvidia-resume (and it is in fact probably not a good idea to enable it), because the /usr/lib/systemd/system-sleep/nvidia script does the same thing as the service (but slightly earlier), and it is enabled by default (Systemd calls it after waking up from a suspend). Do enable nvidia-suspend and/or nvidia-hibernate .
Overclocking and cooling
Настройка Nvidia
У видеокарт NVIDIA есть множество настроек, которые можно указать в xorg.conf. Каждая строка состоит из ключа и значения, ее можно разместить в секции Screen или Device:
- Option "NoLogo" "true" - во время инициализации драйвера показывается логотип NVIDIA. Это занимает некоторое время, поэтому с помощью такой строки можно отключить логотип;
- Option "LogoPath" "адрес_файла" - вы можете заменить логотип NVIDIA на свое изображение, для этого просто укажите его адрес в этой строке;
- Option "CursorShadow" "true" - если вы хотите видеть тень вокруг курсора, включите эту опцию. Тут есть два дополнительных параметра CursorShadowXOffset и CursorShadowYOffset, которые позволяют установить положение тени;
- Option "Coolbits" "true" - эта опция позволяет включить возможность разгона частоты процессора и скорости памяти вашей видеокарты. Но вам нужно быть аккуратным с этим параметром, поскольку так вы можете повредить сове оборудование. Параметры разгона будут отображаться в утилите nvidia-config;
- Option "DPI" "75 x 85" - если значение DPI (количество точек на дюйм) установлено неверно, то это может повлиять на правильность отображения шрифтов. Обычно, Xorg вычисляет этот параметр на основе EDID, но вы можете установить его вручную. Например, для монитора с разрешением ,440x900 и физическим размером 16x10 дюймов, значение DPI будет составлять (1,440/16)x(900/10) = 90x90.
Выводы
Теперь вы знаете достаточно и настройка видео Linux с помощью xorg не должна для вас быть очень сложной, даже если вы раньше этим не занимались. Особенно, если вы недовольны текущими настройками. Настройка x сервера поможет вам получить больше от старого оборудования или интегрированных карт. Только не забывайте делать резервные копии перед внесением каких-либо изменений.
В одной из предыдущих статей я рассказывал, как посмотреть температуру процессора в Linux. Для этих целей можно использовать утилиту sensors, а для просмотра более подробной информации в графическом интерфейсе есть psensor. За температурой видеокарты тоже нужно следить. Обычно, нагрев видеокарты можно отследить в программах для её тестирования, например в том же Unigine Heaven и в других подобных продуктах, но есть ещё один способ.
Температуру видеокарт Nvidia в Linux можно посмотреть с помощью утилиты, поставляемой вместе с проприетарными драйверами. С её же помощью можно настроить обороты кулера на видеокарте. Таких утилит на самом деле несколько. Рассмотрим их в этой статье.
Custom TDP Limit
Modern Nvidia graphics cards throttle frequency to stay in their TDP and temperature limits. To increase performance it is possible to change the TDP limit, which will result in higher temperatures and higher power consumption.
For example, to set the power limit to 160.30W:
To set the power limit on boot (without driver persistence):
Listening to ACPI events
While completely harmless, you may get rid of this message by disabling the ConnectToAcpid option in your /etc/X11/xorg.conf.d/20-nvidia.conf :
If you are on laptop, it might be a good idea to install and enable the acpid daemon instead.
Проверка видеокарты в Linux
nvidia-smi
Use nvidia-smi which can read temps directly from the GPU without the need to use X at all, e.g. when running Wayland or on a headless server. To display the GPU temperature in the shell, use nvidia-smi as follows:
This should output something similar to the following:
In order to get just the temperature for use in utilities such as rrdtool or conky:
Using TV-out
Использование ТВ-выхода
Оцените статью:
Об авторе
5 комментариев
Статичная скорость кулера это костыль,лишний шум в общем ужас, лучше использовать специализированный софт и настроить обороты согласно температурам. У карт от зеленый в драйверах есть баг (по другому назвать я это не могу) видиокарта которая умеет работать на пасиве постоянно держит высокие частоты тем самым греется, в этом случае если нужная тишина то можно просто заблокировать уровень производительности на самом минимальном. "options nvidia NVreg_RegistryDwords="PowerMizerEnable=0x1; PowerMizerDefaultAC=0x3;" >> /etc/modprobe.d/99-nvidia-registry.conf" Единственный минус если нужна будет вся мощь то придется делать ребут. Я специально брал игровую карту которая без проблем будет работать в простое без включения вертушек, и включать их только при нагрузке но в лине все как всегда)))
А как настроить чтобы не было превышения определенной тем-ры карты? Чтобы карта не перегревалась?
Автор пишет:
"Для того чтобы настроить частоту оборотов кулера, надо использовать утилиту Nvidia Settings. Сначала выполните:
sudo nvidia-xconfig -a --cool-bits=28"
Ищем на странице:
"Option "Coolbits" "integer"
When "4" (Bit 2) is set in the "Coolbits" option value, the nvidia-settings Thermal Monitor page will allow configuration of GPU fan speed, on graphics boards with programmable fan capability."
После выставления --cool-bits иксы надо перезапустить, ну, или просто комп перезагрузить.
После этого в графическом интерфейсе nvidia-settings в разделе "Thermal Settings" появится чекбокс, установив который, можно в ручную устанавливать обороты вентилятора, просто двигая бегунок мышкой, или вписав нужное число в поле ниже и нажав Apply.
Следует отнестись к этому с ОСОБОЙ ОСТОРОЖНОСТЬЮ И ВНИМАНИЕМ! Я не уверен, что в биосе видео карты есть защита от дурака, и она повысит обороты автоматом при достижении критической температуры. Сам не проверял, кому охота, отпишитесь потом, выжила видюшка или нет =)
Кому лень руками, ниже скриптик, найденный на просторах интернета, хотя, ПО от производителя и само хорошо регулирует обороты, но, всё же есть косяки, из-за которых приходится использовать скрипты.
DELAY=1
MIN_TEMP=60
MAX_TEMP=75
CARDS_NUM=`nvidia-smi -L | wc -l`
for ((i=0; i /dev/null
if [ "$?" -ne 0 ]; then
exit 1;
fi
done
echo "GPUFanControlState set to 1 for all cards"
пы/сы: Всё на свой страх и риск, естественно..
Посмотрите эту статью:
https://www.opennet.ru/opennews/art.shtml?num=50180
"Представлены три новых проекта с графическими интерфейсами для оверклокинга (overclock) видеокарт NVIDIA и AMD, позволяющие управлять тактовой частотой и параметрами системы охлаждения, отслеживая изменение температуры и характеристик производительности. "
А как задавать обороты корпусного вентилятора в зависимости от нагрева видеокарты?
Linux не славится высокой игровой производительностью. Это нормально, так как несмотря на то что количество игр для этой платформы увеличивается, их все равно не так много. Да и инструменты, с помощью которых пользователи могли бы проверить свое оборудование можно сосчитать на пальцах.
Однако есть несколько программ, которые помогут вам точно определить особенности работы вашей видеокарты. Это нужно как для технического сравнения видеокарт, так и просто ради интереса. Вообще говоря, для тестирования видеокарты Linux можно использовать только тест OpenGL рендеринга. Возможно, ваша видеокарта не поддерживает новые версии Direct3D, но в Linux это проверить невозможно, поскольку эта технология поддерживается только в Windows, а нас будет интересовать только OpenGL.
Настройка экрана xorg
Большинство параметров вашего экрана система получает с помощью технологии EDID или Extended Display Identification Data. Это информация, переданная дисплеем видеокарте. Здесь обычно содержится модель, производитель, такйминги, разрешение и размер дисплея. Xorg использует эти параметры для выбора оптимального разрешения экрана и глубины цвета.
Но иногда информация из EDID может быть неточной или неверной. Тогда вы можете установить нужные параметры вручную через xorg.conf. Но будьте осторожны, если ваш экран не поддерживает некоторые параметры, вы можете его повредить. Характеристики каждого отдельного устройства можно найти в интернете или же в инструкции от производителя.
Например, вот секция Monitor с настройкой вертикальной и горизонтальной частот, а также разрешения:
Identifier "Monitor0"
VendorName "Unknown"
ModelName "DFP-0"
HorizSync 28.0 - 72.0
VertRefresh 43.0 - 60.0
ModeLine "1440x900_60.00" 106.5 1440 1520 1672 1904 900 901 904 932 -hsync +vsync
Добавив такие опции в секцию Device, вы можете отключить использование EDID:
Option "UseEDIDFreqs" "FALSE"
Option "UseEDIDDpi" "FALSE"
Option "ModeValidation" "NoEdidModes"
Наиболее важное значение - это две частоты, которые определяют диапазон работы устройства. Строка ModeLIne необязательна, поскольку она вычисляется автоматически, но если X сервер задает значения неверно, вы можете их прописать жестко в этой строке.
Синтаксис конфигурационного файла
Перед тем как переходить к настройке xorg.conf нужно разобраться в его синтаксисе, чтобы вы могли немного ориентироваться в самом файле. X сервер отвечает за все интерактивные связи во время сессии. Поэтому конфигурационный файл разбит на секции, несколько из них отвечают за работу с дисплеем, другие за мышь и клавиатуру. Рассмотрим основные секции файла:
- Module - в этом разделе описываются подключение модулей, расширяющих функциональность видео драйвера. Например, GLX модуль добавляет 3D ускорение, а модули Type1 и Freetype используются для рендеринга шрифтов;
- ServerLayout - в этой секции указаны имена трех самых необходимых устройств для каждой рабочей сессии Xorg - имена мыши, клавиатуры и экрана, которые могут использоваться в других местах файла;
- InputDevice - в xorg.conf обычно есть две секции InputDevice, первая для мыши и вторая для клавиатуры. Большинство мышей работают отлично по умолчанию, здесь понадобиться что-то менять только если вы захотите добавить дополнительные возможности;
- Monitor - в этой секции перечислены все настройки вашего экрана, один из наиболее важных параметров, частота горизонтальной развертки HorizSync и вертикального обновления VertRefresh, именно на основе них рассчитывается разрешение экрана. Также можно жестко задать разрешение с помощью строки ModeLine;
- Device - тут перечислено все ваше графическое оборудование вместе с драйверами, которые используются. Чаще всего, это nv с открытым исходным кодом для NVIDIA, или fglrx для карт от AMD. Имя драйвера Intel будет зависеть от версии вашей карты, например, i810.
- Screen - здесь расположены все настройки вашего монитора и других графических устройств. Вы можете использовать эту секцию, например, для настройки нескольких экранов.
Настройка кулера видеокарты
Для того чтобы настроить частоту оборотов кулера, надо использовать утилиту Nvidia Settings. Сначала выполните:
sudo nvidia-xconfig -a --cool-bits=28
Затем установите нужное число оборотов кулера, например 90 процентов:
nvidia-settings -a '[gpu:0]/GPUFanControlState=1' -a '[fan:0]/GPUTargetFanSpeed=90'
Кулер на видеокарте сразу же начнёт вращаться с заданной скоростью. Надеюсь, эта информация была вам полезна.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Исправление разрешения терминала
Переход с драйвера nouveau будет сопровождаться низким разрешением экрана терминала при загрузке.
Для rEFInd добавьте esp/EFI/refind/refind.conf и /etc/refind.d/refind.conf (последний опционален, но рекомендуется):
Небольшая оговорка заключается в том, что это скроет отображение параметров ядра во время загрузки.
2. Утилиты Nvidia
Для этого пункта необходимо, чтобы были установлены проприетарные драйверы. Чтобы посмотреть текущую температуру видеокарты, откройте утилиту Nvidia Settings из главного меню системы и перейдите на вкладку Thermal Settings:
Здесь в графе Temperature вы увидите текущую температуру видеокарты. Другой способ посмотреть температуру - утилита nvidia-smi. Она работает только через терминал:
Здесь вы увидите количество оборотов кулера и текущую температуру видеокарты. А ещё можно посмотреть только температуру:
nvidia-smi -q -d temperature
Enabling overclocking
Overclocking is controlled via Coolbits option in the Device section, which enables various unsupported features:
Tip: The Coolbits option can be easily controlled with the nvidia-xconfig, which manipulates the Xorg configuration files:
- 1 (bit 0) - Enables overclocking of older (pre-Fermi) cores on the Clock Frequencies page in nvidia-settings.
- 2 (bit 1) - When this bit is set, the driver will "attempt to initialize SLI when using GPUs with different amounts of video memory".
- 4 (bit 2) - Enables manual configuration of GPU fan speed on the Thermal Monitor page in nvidia-settings.
- 8 (bit 3) - Enables overclocking on the PowerMizer page in nvidia-settings. Available since version 337.12 for the Fermi architecture and newer.[1]
- 16 (bit 4) - Enables overvoltage using nvidia-settings CLI options. Available since version 346.16 for the Fermi architecture and newer.[2]
To enable multiple features, add the Coolbits values together. For example, to enable overclocking and overvoltage of Fermi cores, set Option "Coolbits" "24" .
The documentation of Coolbits can be found in /usr/share/doc/nvidia/html/xconfigoptions.html and here.
Note: An alternative is to edit and reflash the GPU BIOS either under DOS (preferred), or within a Win32 environment by way of nvflash and NiBiTor 6.0. The advantage of BIOS flashing is that not only can voltage limits be raised, but stability is generally improved over software overclocking methods such as Coolbits. Fermi BIOS modification tutorial
Setting static 2D/3D clocks
Set the following string in the Device section to enable PowerMizer at its maximum performance level (VSync will not work without this line):
Allow change to highest performance mode
The factual accuracy of this article or section is disputed.
Reason: This section refers to the limits for GPU boost, which is unrelated to overclocking discussed above. The nvidia-smi(1) man page says that it is "For Tesla devices from the Kepler+ family and Maxwell-based GeForce Titan." And as far as Lahwaacz is aware, the only GPU which supports this and does not have the default clocks equal to the maximum, is Tesla K40 [3]. Since the Pascal architecture, Boost 3.0 handles automatic clocking even differently. (Discuss in Talk:NVIDIA/Tips and tricks)
Since changing performance mode and overclocking memory rate has little to no effect in nvidia-settings, try this:
- Setting Coolbits to 24 or 28 and remove Powermizer RegistryDwords -> Restart X
- find out max. Clock and Memory rate. (this can be LOWER than what your gfx card reports after booting!):
- set rates for GPU 0:
After setting the rates the max. performance mode works in nvidia-settings and you can overclock graphics-clock and memory transfer rate.
Saving overclocking settings
- gweAUR - graphical, applies settings on desktop session start
- nvclockAUR and systemd-nvclock-unitAUR - graphical, applies settings on system boot
- nvocAUR - text based, profiles are configuration files in /etc/nvoc.d/ , applies settings on desktop session start
Читайте также: