nouveau

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Nouveau and the translation is 98% complete.
Outdated translations are marked like this.
Other languages:

nouveau – это драйвер с открытым исходным кодом для графических карт NVIDIA. Он сопровождается под эгидой проекта FreeDesktop.

Ограничения

Будучи проектом с открытым исходным кодом, работающем на проприетарном оборудовании, у Nouveau есть некоторые ограничения, которые отсутствуют у закрытых nvidia-drivers. Тем не менее, драйвера Nouveau постоянно развиваются, так что эти ограничения могут изменяться со временем.

Тем, кто собирается использовать этот драйвер, необходимо проверить в матрице возможностей, что интересуемая карта поддерживается проектом. Также у проекта есть список кодовых имён карт для сверки с матрицей.

Установка

Ядро

Активируйте следующие параметры ядра:

ЯДРО Включение nouveau
Device Drivers  --->
   Graphics support  --->
      <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
         <*> Enable legacy fbdev support for your modesetting driver
      <M/*> Nouveau (NVIDIA) cards

Прошивка

Начиная с видеокарт серии Kepler (GeForce 600 и более поздние), для правильной работы некоторых карт необходима загрузка прошивки во время загрузки системы. Рекомендуется встроить необходимые файлы прошивки в ядро. Это выбор по умолчанию для систем, использующих систему инициализации systemd. См. статью Linux firmware для подробной информации по встраиванию прошивки в ядро.

См. список кодовых имён, чтобы определить, какая прошивка необходима.

Прошивка для карт nouveau поставляется в пакете sys-firmware/nvidia-firmware. Проверьте, что он установлен до того, как определена прошивка в ядре:

root #emerge --ask sys-firmware/nvidia-firmware

Драйвер

ФАЙЛ /etc/portage/make.confУстановка VIDEO_CARDS в nouveau
VIDEO_CARDS="... nouveau ..."

После установки или изменения VIDEO_CARDS не забудьте обновить систему с помощью следующей команды, чтобы применить изменения:

root #emerge --ask --changed-use --deep @world

Udev

Если установлен проприетарный драйвер от NVIDIA, вместе с ними также установится файл правил udev в /lib/udev/rules.d/99-nvidia.rules. Если попытаться использовать драйвер nouveau с такими же файлом правил, файл журнала X11 каждые 10 мс будет заполняться такими сообщениями:

ФАЙЛ /var/log/Xorg.0.logРезультат недействительных правил udev от nvidia-drivers
 [   180.669] (II) NOUVEAU(0): EDID vendor "SAM", prod id 430
 [   180.669] (II) NOUVEAU(0): Using hsync ranges from config file
 [   180.669] (II) NOUVEAU(0): Using vrefresh ranges from config file
 [   180.669] (II) NOUVEAU(0): Printing DDC gathered Modelines:
 [   180.669] (II) NOUVEAU(0): Modeline "1600x1200"x0.0  162.00  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync (75.0 kHz eP)
 [   180.669] (II) NOUVEAU(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
 [   180.669] (II) NOUVEAU(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
 [...]
 [   180.669] (II) NOUVEAU(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
 [   180.669] (II) NOUVEAU(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
 [   180.669] (II) NOUVEAU(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
 [   180.669] removing GPU device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2 /dev/dri/card2

Чтобы предотвратить это (без удаления пакета x11-drivers/nvidia-drivers), просто удалите/переместите/переименуйте файл правил udev /lib/udev/rules.d/99-nvidia.rules, так чтобы он больше не использовался udev (смотрите расширенная настройка udev). Обратите внимание, что при следующем обновлении nvidia-drivers этот файл будет снова переустановлен, поэтому рассмотрите вариант удаления nvidia-drivers.

Конфигурация

Разрешения

If the acl USE flag is enabled globally and elogind is being used (default for desktop profiles) permissions to video cards will be handled automatically. It is possible to check the permissions using getfacl:

user $getfacl /dev/dri/card0 | grep larry
user:larry:rw-

A broader solution is to add the user(s) needing access the video card to the video group:

root #gpasswd -a larry video

Note that users will be able to run X without permission to the DRI subsystem, but hardware acceleration will be disabled.

xorg.conf

X server разработан для работы «из коробки», поэтому нет необходимости вручную редактировать файлы настройки. Сервер сам должен определить и настроить устройства - мониторы, клавиатуры и мыши.

Тем не менее, файл xorg.conf это основной конфигурационный файл X-сервера.

Переключение между графическими картами Intel и Nouveau

Иногда пользователя необходимо переключаться между двумя драйверами. Этого можно достичь с помощью initramfs и раннего режима Kernel Mode Setting.

Например, если initramfs создан с помощью dracut и подразумевается использование nouveau, потребуется следующие изменения:

ФАЙЛ /etc/dracut.conf
#add_drivers+=" i915 " # Важно наличие пробела в начале и в конце
add_drivers+=" nouveau " # Важно наличие пробела в начале и в конце
#force_drivers+=" i915 " # Важно наличие пробела в начале и в конце
force_drivers+=" nouveau " # Важно наличие пробела в начале и в конце

В Kernel Mode Setting с помощью GRUB можно установить переменную GRUB_CMDLINE_LINUX_DEFAULT в /etc/default/grub в соответствующие значения для включения или отключения одной из графических карт.

Например, чтобы отключить i915 и включить nouveau, добавьте переменную i915.modeset=0 nouveau.modeset=1 в GRUB_CMDLINE_LINUX_DEFAULT.

Ограничения

Некоторые текущие вопросы или недостатки по сравнению с закрытыми x11-drivers/nvidia-drivers указаны ниже:

  • Производительность (особенно 3D) на одной и той же карте/чипе может быть значительно хуже, чем при использовании nvidia-drivers.
  • При работе на более высоких частотах обновления (более 60 Гц) может произойти ошибка.
  • Дополнительные возможности некоторых видео-карт NVIDIA (например, несколько мониторов на картах Quadro без SLI) может работать не корректно.


Устранение проблем

Проблемы встречающиеся при использовании нескольких мониторов

Если при использовании двух мониторов/дисплеев экран часто зависает с возможными EDID-запросами, попробуйте добавить video=VGA-1:e или video=VGA-1:d (включение или отключение, соответственно) к переменной GRUB_CMDLINE_LINUX_DEFAULT в файле /etc/default/grub для GRUB или соответствующем параметре ядра для других загрузчиков. Замените имя монитора на указанное в dmesg или /var/log/Xorg.0.log (т.е. CRT-1, VGA-1, LVDS-1, DVI-1, ...)

К примеру, на ноутбуке Dell Inspiron 8100 с внешним дисплеем, подключённым к внешнему VGA-разъёму, возможная опция командная строка выглядит так: video=LVDS-1:1280x1024@60 video=VGA-1:1280x1024@60. У автора EDID (DRM) запросы на внешнем VGA-дисплее до сих пор вызывают зависание во время загрузки nouveau/DRM, но, по крайней мере, это помогает, если дисплей подключается после загрузки GRUB и до загрузки модулей nouveau/DRM. И с упомянутыми ранее разрешениями LVDS/VGA, дисплеи продублированы и отцентрированы с достаточно правильными разрешениями.

NVIDIA Optimus

При использовании ноутбука с технологией NVIDIA Optimus (обычно встречающейся на ноутбуках, изготовленных не раньше 2010), вся информация будет проходить через контроллер встроенной графики (обычно, Intel) перед тем, как достигнуть отдельной видеокарты (NVIDIA), что может повлечь множество необъяснимых проблем. Существует несколько способов предотвратить это, но самый простой – отключить Optimus в BIOS (обычно вызываемой нажатием F12 во время загрузки). Это вызовет увеличение энергопотребления (уменьшение времени автономной работы, повышение рабочей температуры), поскольку теперь всю работу всё время будет производить видеокарта NVIDIA.

Смотрите также

Внешние ресурсы