This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
nouveau
nouveau — это открытый драйвер для графических карт NVIDIA.
Ограничения
Будучи проектом с открытым исходным кодом, работающем на проприетарном оборудовании, у Nouveau есть некоторые ограничения, которые отсутствуют у закрытых nvidia-drivers. Тем не менее, драйвера Nouveau постоянно развиваются, так что эти ограничения могут изменяться со временем.
Установка
Ядро
Активируйте следующие параметры ядра:
Device Drivers ---> Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> <*> Enable legacy fbdev support for your modesetting driver <*> Nouveau (NVIDIA) cards
Прошивка
Некоторые видеокарты, начиная с видеокарт Kepler, нуждаются в прошивке. Получить поддержку можно путём установки sys-kernel/linux-firmware и настройки nouveau в качестве модуля (M) в ядре.
root #
emerge --ask sys-kernel/linux-firmware
Драйвер
Portage uses the USE_EXPAND variable called VIDEO_CARDS to enable support for various graphics cards in packages. Setting VIDEO_CARDS to appropriate value(s) will pull in the correct driver(s):
/etc/portage/make.conf
Set VIDEO_CARDS to nouveauVIDEO_CARDS="nouveau"
Substitute the name of the driver(s) to be used. Common choices include nouveau
, nvidia
, radeon
, and intel
.
After setting or altering VIDEO_CARDS values remember to update the system using the following command so the changes take effect:
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 ConsoleKit 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
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 acceleration will be disabled.
xorg.conf
X server разработан для работы «из коробки», поэтому нет необходимости вручную редактировать файлы настройки. Сервер сам должен определить и настроить устройства - мониторы, клавиатуры и мыши.
Тем не менее, файл xorg.conf это основной конфигурационный файл X-сервера.
Ограничения
Некоторые текущие вопросы или недостатки по сравнению с закрытыми 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-legacy, отредактируйте непосредственно файл grub.cfg и добавьте эту опцию в командную строку. В любом случае, замените имя монитора на указанное в 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.
Смотрите также
- nVidia/nvidia-drivers - бинарный драйвер для карт NVIDIA с закрытым исходным кодом
- nouveau & nvidia-drivers switching
- Hprofile#VGA - поддержка "живого" переключения между графическими картами