Nouveau
nouveau es el controlador de código abierto para las tarjetas gráficas NVIDIA. Es mantenido bajo el paraguas del proyecto FreeDesktop.
Limitaciones
Al ser un proyecto de código abierto que se ejecuta en lo que es, en gran medida, el hardware propietario, hay algunas limitaciones inherentes a Nouveau que no son aplicables al controlador de código cerrado nvidia-drivers. Dicho esto, Nouveau está en constante evolución, por lo que estas limitaciones están sujetas a cambiar con el tiempo.
Aquellos interesados en utilizar este controlador deben verificar que su tarjeta (y sus funciones) este soportada aquí matriz de funciones del upstream. El upstream tambien mantiene una lista de de nombres clave de tarjetas para referenciar de la matriz de funciones.
Instalación
El núcleo de Linux
Necesita activar las siguientes opciones del núcleo:
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
Firmware
Empezando por la serie Kepler (Geforce 600 y superiores) algunas tarjetas pueden necesitar cargarle firmware al momento del arranque para que operen de manera correcta. Es recomendado que se construya el firmware que se necesite dentro del núcleo. Esto es lo predeterminado en los sistemas que utilizan el sistema de init systemd. Veáse el artículo Linux firmware para más información sobre como construir el firmware dentro del núcleo.
Véase la lista de nombres código del upstream para determinar que firmware es necesario.
El firmware para las tarjetas nouveau es distribuido en el paquete sys-firmware/nvidia-firmware. Asegúrese que ha sido instalado antes de definir el firmware en el núcleo.
root #
emerge --ask sys-firmware/nvidia-firmware
El controlador
VIDEO_CARDS="... nouveau ..."
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
Si se ha instalado el controlador propietario de NVIDIA, se habrá instalado tambień un archivo de reglas de udev en /lib/udev/rules.d/99-nvidia.rules. Al intentar utilizar el controlador nouveau sin desactivar dicho archivo de reglas, el archivo del registro de X11 se llenará con bloques de mensajes como este repitiéndose cada 10 ms:
[ 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
Para evitar esto (sin desinstalar el paquete x11-drivers/nvidia-drivers), basta con quitar/mover/renombrar el archivo udev /lib/udev/rules.d/99-nvidia.rules de modo que ya no esté ocupado por udev (vea Advanced Configuration of udev). Tenga en cuenta que la próxima vez que actualice nvidia-drivers, se volverá a instalar ese archivo, por lo que considere desinstalar nvidia-drivers.
Configuración
Permisos
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
El servidor X está diseñado para funcionar una vez instalado, sin necesidad de modificar manualmente los archivos de configuración de X.Org. Este debe detectar y configurar dispositivos tales como pantallas, teclados y ratones.
Dicho lo anterior, el archivo de configuración principal del servidor X es xorg.conf.
Switching between Intel GPU and Nouveau
Sometimes users may want to switch between two drivers. One way this matter is handled is through initramfs and early Kernel Mode Setting.
For example, if initramfs is built using dracut, and nouveau is meant to be used, the following adjustments must take place:
#add_drivers+=" i915 " # Note leading and trailing spaces
add_drivers+=" nouveau " # Note leading and trailing spaces
#force_drivers+=" i915 " # Note leading and trailing spaces
force_drivers+=" nouveau " # Note leading and trailing spaces
In kernel mode setting method using GRUB, the variable GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub can be changed to enable or disable either of GPUs by taking the right values.
For instance, to disable i915 and enable nouveau, we will add the following to GRUB_CMDLINE_LINUX_DEFAULT variable: i915.modeset=0 nouveau.modeset=1
.
Limitaciones
Algunos de los problemas o inconvenientes actuales del controlador nouveau en comparación con el de código cerrado x11-drivers/nvidia-drivers serían:
- El rendimiento (especialmente el rendimiento en 3D) en la misma tarjeta/chipset puede ser significativamente peor que usando nvidia-drivers.
- Los intentos para funcionar a frecuencias más altas (es decir, por encima de los 60 Hz) pueden fallar.
- La utilización de funciones avanzadas de varias tarjetas NVIDIA (por ejemplo, capacidades de visualización múltiple de las tarjetas Quadro sin SLI) pueden no funcionar correctamente.
Solución de problemas
Problemas con varios monitores
Si está teniendo problemas de congelación con posibles sondas EDID cuando se utilizan monitores/pantallas duales, pruebe a añadir video=VGA-1:e
o video=VGA-1:d
(activar o desactivar, respectivamente) a la variable
GRUB_CMDLINE_LINUX_DEFAULT en el fichero /etc/default/grub. En grub-legacy, edite el fichero grub.cfg directamente y añadádalo como opciones de la línea de órdenes. En los dos casos asegúrese de sustituir el nombre del monitor por el que figure listado dentro de dmesg o /var/log/Xorg.0.log. (es decir, CRT-1, VGA-1, LVDS-1, DVI-1, ...)
Por ejemplo, en un portátil Dell Inspiron 8100 con una pantalla externa conectada a través del puerto VGA externo del portátil, una posible línea de órdenes sería: video=LVDS-1:1280x1024@60 video=VGA-1:1280x1024@60
. La sonda EDID (DRM) en la pantalla conectada al puerto VGA externo sigue siendo la que está causando la congelación durante la carga de nouveau/drm, pero, por lo menos, se puede utilizar si la pantalla está conectada después de que grub se haya cargado y antes de que lo hagan los módulos nouveau/drm. Y con las resoluciones LVDS/VGA de la línea de órdenes mencionadas antes, las pantallas se clonan y se centran con las resoluciones correctas para las pantallas clonadas.
NVIDIA Optimus
Si está utilizando un portátil con la tecnología Optimus de NVIDIA (normalmente se encuentran en los portátiles fabricados en 2010 y posterior) entonces todo se pasa a través de su controlador de gráficos integrado (por lo general, Intel) antes de que llegue a la tarjeta de video dedicada (NVIDIA), que, cuando está activada, puede causar una gran cantidad de problemas, que de otro modo no se explicarían. Hay distintas maneras de manejar esto, pero la más sencilla es desactivar Optimus a través de la BIOS (normalmente se accede a ella pulsando F12 durante la fase de arranque). Esto dará lugar a un aumento del consumo de energía (disminución de la duración de la batería, aumento de temperatura de funcionamiento, ...), dado que su tarjeta NVIDIA se encargará de todo en todo momento.
Véase también
- NVIDIA/nvidia-drivers
- Nouveau & nvidia-drivers switching — describes how to switch between NVIDIA's binary driver and the open source nouveau driver.
- Hprofile — an application that can be used to manage multiple profiles be it hardware or software.
Recursos externos
- https://nouveau.freedesktop.org/wiki/VideoAcceleration/ - Esta página de la wiki provee una visión general de las tarjetas NVIDIA que tienen soporte de aceleración por hardware por VDPAU.
- https://nouveau.freedesktop.org/wiki/KernelModuleParameters/ - Provee una lista de los posibles parámetros que se le pueden dar al módulo nouveau de kernel.