Alt linux nvidia settings

Nvidia

На сегодня видеокарты от Nvidia являются одними из самых распространённых. Поддержка карт Nvidia в Linux может осуществляться следующими «драйверами» — модулями Xorg.

  • Свободным модулем vesa — настолько, насколько данная видеокарта поддерживает спецификацию vesa.
  • Модулем поддержки фреймбуфера — fbdev.
  • Свободным модулем nv — поддерживаются не все видеокарты, нет поддержки аппаратного 3D (как и у vesa и у fbdev)
  • Свободным модулем nouveau с поддержкой 3D. Eсть в Сизифе, но модуль ещё сырой.
  • Проприетарные модули Nvidia.

На сегодняшний день политика компании Nvidia такова, что она разделила все свои видеокарты на 5 групп. В зависимости от того, какая видеокарта, можно ставить один из поддерживающих её драйверов.

Замена драйверов nouveau/nvidia «на лету»

Постановка задачи

Была поставлена задача загружать для ядра с разными модулями :

Ядро std-def c драйвером nvidia, я ядро un-def с драйвером nouveau.

В процессе исследования, выяснилось, что если загружен ядерный модуль nouveau или nvidia — xorg сам находит и загружает нужный видео драйвер, без указания его в конфигурационных файлах xorg.

Реализация

  • Устанавливаем в оба ядра модули nvidia и nouveau.
  • Создаём файл /etc/modprobe.d/blacklist-nvidia-x11.conf и записываем туда:
blacklist nvidia blacklist nouveau
#!/bin/bash if [ -n `uname -r | grep std-def` ];then modprobe nvidia else modprobe nouveau fi

Всё — можно перезагружаться — при выборе ядра un-def у нас теперь используется свободный драйвер nouveau, при использовании std-def используется проприетарный модуль nvidia. [2] [3] [4]

  1. ↑ Если в файле ничего кроме этого ценного нет, то можно и сам файл удалить
  2. ↑ Теоретически этот метод можно применять и в других случаях, например с fflrx/radeon
  3. ↑ Это можно применять и с одним ядром, для быстрого перехода с свободного драйвера на проприетарный и обратно, просто отредактировав файл /etc/rc.d/rc.local
  4. ↑ Это можно применять и совсем в другом случае, например при подборе нужного модуля Wifi из серии v43 / b44 / wl

Краткий алгоритм установки драйверов серии legacy

Данный алгоритм устарел. В современном Сизифе всё это делается скриптами, но если произошёл сбой в их работе, вы можете сделать эти операции за них.

С недавнего времени xorg-x11-server-1.4 модули legacy вошли в основной пакет Nvidia. Как поменять текущий модуль ядра (все операции требуют прав root)?

  • Выключаем X-ы, например telinit 3 ,
  • Выгружаем модуль nvidia: rmmod nvidia ,
  • Меняем символическую ссылку, например ln -s /lib/modules/nvidia/ /lib/modules//nVidia/nvidia.ko ,
  • Прописываем в /lib/modules//.versions/nvidia : 1.0.9639 ,
  • depmod -a ,
  • modprobe nvidia ,
  • Проверяем, что в xorg.conf прописан модуль nvidia,
  • x11setupdrv , (начиная с ALT 5.0 и выше не нужно, т.к. скрипт встроен в запуск X-сервера)
  • Запускаем X-ы, например telinit 5 .
Читайте также:  Linux clear file content

Возможные баги

Иногда (при смене версий пакетов и расхождении ABI ) xorg-x11-server требует, чтобы в /etc/X11/xinit/xserverrc было прописано:

X_server='X -nolisten tcp -ignoreABI'

Второй способ — в /etc/x11/xorg.conf добавить опцию

Section "ServerFlags" Option "IgnoreABI" "true" EndSection

Третий, и наиболее правильный cпособ в дистрибутивах на основе бранча p7 и выше в /etc/sysconfig/xserver раскомментировать IGNORE_ABI=yes:

# The Xorg server checks the ABI revision levels of each module that it loads. # It will normally refuse to load modules with ABI revisions that are newer # than the server's. # See Xorg(1) for more information about option. # Value: yes/no IGNORE_ABI=yes

Видеокарты типа Optimus

В последнее время появились ноутбуки с несколькими видеокартами (Nvidia+Intel или Radeon+Intel).

  • По умолчанию монитор показывает картинку с Intel GPU.
  • В зависимости от реализации может быть или отсутствовать возможность переключения сигнала между GPU, при этом в новых ноутбуках обычно её нет физически
  • Если переключение физически есть, соответствующая настройка может быть или отсутствовать в BIOS (в последнем случае может пригодиться всякое switcheroo).
  • Отсутствие переключателя в BIOS заменяется программным Bumblebee или собратьями.
  • Задействовать Optimus (чип nvidia или ati) можно через VirtualGL.

В нормальных ноутах в BIOS может быть 3 положения переключателя видеокарты: встроенная, optimus и дискретная (nvidia,ati). Здесь достаточно прикрутить программный переключатель, если устроит перезагрузка для переключения X-ов на другую видеокарту (без optimus вообще).

Проприетарный libGL/libglx и память

Суть: при установке проприетарных драйверов происходит подмена GL-библиотек на проприетарные. По непонятной причине многие скомпилированные с libGL программы и библиотеки (в особенности libcairo) потребляют на 10-20 мегабайт (!) RSS больше. Вот небольшой кусок для сравнения (смотрим на gimp, script-fu и nm-appleti, вторая колонка — это RSS):

По ссылке видно, что в XFCE может набежать порядка 300 Мб. Это может быть проблемой. Для экономии памяти проще всего использовать nouveau.

Обновление

Для обновления обеих частей драйвера (ядерной и иксовой) следует применять совокупность команд:

apt-get update && apt-get dist-upgrade && update-kernel

Борьба с «тирингом» при использовании официальных драйверов

При использовании «открытых» драйверов(nouveau), наблюдается «тиринг»(tearing) изображения, на официальных же драйверах эту проблему можно решить следующим образом (в терминале выполняем команду):

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 < ForceCompositionPipeline = On >"

Ваш монитор может мерцать секунду-две. Если команда выполнилась без ошибок, то нужно проверить ушла ли проблема(если проблема сохраняется, то можно попробовать указать опцию «ForceFullCompositionPipeline» вместо «ForceCompositionPipeline») Если тайринга больше нет, то пропишите данный режим в Xorg.conf, для того чтобы эта настройка видеокарты применялась каждый раз при загрузке системы. Сначала необходимо сделать резервную копию файла xorg.conf следующей командой:

cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Теперь откройте файл в любимом текстовом редакторе с привилегиями суперпользователя. Пусть это будет редактор nano, выполните в терминале команду:

Читайте также:  Просмотр операционной системы linux

Вы должны увидеть примерно следующее, в разделе Section «Screen»:

Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "Stereo" "0" Option "metamodes" "nvidia-auto-select +0+0 < ForceCompositionPipeline = On >" SubSection "Display" Depth 24 EndSubSection EndSection

Если опции «metamodes» нет, добавьте ее с рабочим для себя вариантом. У некоторых уже есть опция «metamodes» в файле /etc/X11/xorg.conf, как в примере ниже для настройки с двойным монитором:

Option "metamodes" "VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864"

Если это так, просто измените строку так, чтобы она выглядела следующим образом:

Option "metamodes" "VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864 < ForceCompositionPipeline = On >"

Теперь перезагружаемся и наслаждаемся плавной картинкой.

Что делать, если у вас отсутствует файл /etc/X11/xorg.conf

В некоторых случаях может не оказаться файла xorg.conf по умолчанию. Поэтому для его создания открываем nvidia-settings и переходим в раздел X Server Display Configuration, нажимаем кнопку «Save to X Configuration File» (тем самым мы создадим необходимый для нас файл xorg.conf). Так же нужно снять галочку с Merge with existing file (совместить с существующим файлом). Проверьте наличие файла xorg.conf, после чего можно перееходить к настройке.

Ссылки

  • 32-битный OpenGL на 64-битной системе с драйвером NVIDIA
  • Переход на драйверы Nvidia и fglrx
  • Установка_проприетарных_драйверов_NVIDIA_и_ATI
  • apt-scripts-nvidia (пакет содержит реализацию команды apt-get install-nvidia )
  • анонс nvidia-clean-driver (удаление ненужных nvidia_glx_* )
  • Обновление ОС
  • Обновление ядра

Источник

Nvidia optimus, настройка и запуск bumblebee

Данное руководство предназначено для счастливых обладателей ноутбуков с nvidia optimus на борту, которые используют дистрибутивы на базе бранча p8.

Примечание: Начиная с p9 bumblebee не поддерживается, всё должно работать без bumblebee.

PRIME

Это единственный способ (кроме автоматического выбора режима), который работает в Сизифе и в бренче p10

Если у вас современная видеокарта, которая поддерживается драйвером версии 435 или новее (посмотреть можно в /proc/driver/nvidia/version), то у вас есть поддержка технологии NVIDIA PRIME, достаточно запускать программы при помощи nvidia-prime-run (входит в пакет nvidia_glx_common)

$ nvidia-prime-run имяпрограммы

Например, при установленном пакете glxinfo можно запустить

$ nvidia-prime-run glxinfo | grep -i 'renderer.*string'

, убедившись, какой 3D-ускоритель задействован.

Bumblebee

Рассмотрим процесс установки, настройки и запуска видеокарты nvidia посредством bumblebee.

установка

1) Обновляем систему и ядро до текущего бранча:

# apt-get update # apt-get dist-upgrade # update-kernel

2) Узнаем версию установленного ядра:

3) Для запуска проприетарного драйвера nvidia удалим модуль ядра от свободного драйвера nouveau (обратите внимание на сборку ядра):

# apt-get remove kernel-modules-drm-nouveau-std-def

и установим (если не установлены) проприетарный драйвер nvidia и модуль ядра для него:

# apt-get install kernel-modules-nvidia-std-def

4) Устанавливаем bbswitch для своего ядра и bumblebee:

# apt-get install kernel-modules-bbswitch-std-def bumblebee

настройка

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) 01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 540M] (rev ff)

нас интересует BusID, относящийся к intel (00:02.0)

Читайте также:  Команды astra linux debian

6) Создадим файл (от рута, можно через mc) в /etc/X11/xorg.conf.d следующего содержания с указанием ранее полученного BusID:

Section "Device" Identifier "Device1" Driver "intel" VendorName "onboard" BusID "PCI:0:2:0" #обратите внимание на двоеточия и количество 0 EndSection Section "Monitor" Identifier "Monitor0" Option "DPMS" EndSection Section "Screen" Identifier "Screen0" Device "Device1" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection

Для тех у кого артефакты при скроллинге, файл будет выглядеть так:

Section "Device" Identifier "Device1" Driver "intel" Option "AccelMethod" "uxa" VendorName "onboard" BusID "PCI:0:2:0" #обратите внимание на двоеточия и количество 0 EndSection Section "Monitor" Identifier "Monitor0" Option "DPMS" EndSection Section "Screen" Identifier "Screen0" Device "Device1" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection

7) Удаляем файл /etc/X11/xorg.conf.d/10-monitor.conf и желательно удалить компонент от альтератора alterator-x11 или не производить через него настройку дисплея.

проверка

8) Перезагружаем систему и проверяем работоспособность видеокарты nvidia:

$ optirun glxinfo | grep OpenGL

должно получиться нечто подобное:

OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GT 540M/PCIe/SSE2 OpenGL version string: 4.3.0 NVIDIA 310.19 OpenGL shading language version string: 4.30 NVIDIA via Cg compiler OpenGL extensions:

Можно запускать нужные приложения на видеокарте nvidia командой от пользователя, входящего в группу xgrp [2] :

Запущенные без optirun приложения будут работать на видеокарте intel, при этом видеокарта nvidia будет выключена.

P.S. На р6 замечено, что на 32-разрядных системах bumblebee падает после отработки команды optirun, для повторного запуска команды optirun необходимо перезапустить сервис bumblebee:

# service bumblebeed restart

Замечено, что в ряде случаев сервис bumblebeed не стартует автоматически при перезагрузке системы и требуется его включение в явном виде. Для проверки следует выполнить команду:

# service bumblebeed status

Если сервис не активен (вместо active выводится unknown или что-подобное), то для включения сервиса нужно выполнить команду:

# service bumblebeed enable

после чего имеет смысл перезагрузить систему.

Primus

Для nvidia optimus собран primus, предлагающий некоторое улучшение производительности.

установка

проверка

Команда запуска приложений через primus:

Также остается возможность запуска приложений через VirtualGL:

Для отключения вертикальной синхронизации у primus:

$ vblank_mode=0 primusrun приложение

Для нормальной работы 32-х разрядных приложений и игр на 64-х разрядной системе через primus должны быть установлены следующие пакеты: i586-primus, i586-xorg-drv-intel, i586-xorg-dri-intel, i586-nvidia_glx, i586-nvidia_glx_common.

Для запуска игр в steam на карте nvidia primus (особенно 32-х разрядный) обязателен к установке! Чтобы игра стартовала через primus необходимо в свойствах запуска игры в steam прописать следующее:

где %command% переменная (не надо ее менять на команду запуска игры), steam сам подставит нужную команду.

Запуск nvidia-settings с установленным bumblebee :

optirun nvidia-settings -c :8
primusrun nvidia-settings -c :8

Ссылки

Примечания

  1. ↑ На Sisyphus за 20140209 для Lenovo B570e этот шаг и создание секции xorg.conf оказались по факту необязательны
  2. ↑ см. вывод команды id и файл /etc/group

Источник

Оцените статью
Adblock
detector