Nouveau (Español)
Este artículo trata sobre el controlador de código abierto Nouveau para tarjetas gráficas NVIDIA. Para obtener información sobre el controlador propietario, consulte NVIDIA.
Busque el nombre en código de su tarjeta (se puede encontrar una lista más detallada en Wikipedia), y compárelo con la matriz de características para ver las características soportadas.
Instalación
Instale el paquete mesa, que proporciona el controlador DRI para la aceleración 3D.
- Para obtener soporte de las aplicaciones 32 bits, instale también el paquete lib32-mesa del repositorio multilib.
- Para obtener el controlador DDX (la cual proporciona aceleración 2D en Xorg), instale el paquete xf86-video-nouveau.
Véase también Aceleración por hardware.
Carga
El módulo del kernel de Nouveau debería cargarse automáticamente al arrancar el sistema. Si no lo hace, entonces:
- Asegúrese de que no tiene
nomodeset
ovga=
como parámetro del kernel, ya que Nouveau requiere la configuración del modo kernel. - Además, compruebe que no tiene Nouveau deshabilitado usando cualquier técnica de lista negra de modprobe dentro de
/etc/modprobe.d/
o/usr/lib/modprobe.d/
. - Si después de todo lo anterior nouveau sigue sin cargar, compruebe dmesg para saber si hay un error de opcode. Añada
nouveau.config=NvBios=PRAMIN
a sus parámetros del Kernel para evitar la deshabilitación del módulo.[1] - Compruebe si
/etc/X11/xorg.conf
existe y hace referencia al controladornvidia
. Probablemente sea una buena idea renombrar el archivo.
Habilitar el inicio anticipado KMS
El Kernel Mode Setting (KMS) es requerido por el controlador Nouveau. Por defecto, el KMS se realiza después de cargar los otros módulos del kernel. Verá el texto "Cargando módulos" y el tamaño del texto puede cambiar, posiblemente con un parpadeo indeseado. Véase Nouveau KernelModeSetting para más detalles.
También es posible iniciar el KMS lo antes posible en el proceso de arranque, al cargar initramfs.
Para ello, añada nouveau
a la matriz MODULES
en /etc/mkinitcpio.conf
(los nombres de los módulos están separados por espacios):
MODULES="... nouveau ..."
Si usa un archivo EDID personalizado, también debería incluirlo en el initramfs:
/etc/mkinitcpio.conf
FILES="/lib/firmware/edid/your_edid.bin"
Vuelva a generar la imagen inicial del ramdisk:
# mkinitcpio -p <kernel preset; e.g. linux>
Si tiene problemas con Nouveau que le conllevan a recompilar nouveau-drm varias veces por razones de testeo, no añada nouveau
al initramfs. Es demasiado fácil olvidarse de recompilar initramfs y solo hará más difícil cualquier prueba. Use "Late start" solo cuando esté seguro de que el sistema es estable. Puede haber problemas adicionales con initramfs si necesita un firmware personalizado (generalmente no es aconsejable).
Consejos y trucos
Mantener el controlador NVIDIA instalado
Si desea mantener el driver propietario de NVIDIA instalado (y no está usando OpenGL), pero quiere usar el controlador Nouveau, comente la lista negra de nouveau en /etc/modprobe.d/nouveau_blacklist.conf
, /usr/lib/modprobe.d/nvidia.conf
, o /usr/lib/modprobe.d/nvidia-dkms.conf
modificándolo de la siguiente manera:
#blacklist nouveau
Y dígale a Xorg que cargue nouveau en vez de nvidia creando el archivo /etc/X11/xorg.conf.d/20-nouveau.conf
con el siguiente contenido:
Section "Device" Identifier "Nvidia card" Driver "nouveau" EndSection
Si ya ha utilizado el controlador de NVIDIA, y desea probar Nouveau sin necesidad de reiniciar, asegúrese de que el módulo 'nvidia' ya no está cargado:
# rmmod nvidia
Después, cargue el módulo 'nouveau':
# modprobe nouveau
Y compruebe que se cargó correctamente mirando los mensajes del kernel:
# dmesg
Instalar los últimos paquetes de desarrollo
Para obtener las últimas mejoras de Nouveau
- linux-gitAUR Use PKGBUILD para utilizar el árbol de Nouveau en https://github.com/skeggsb/linux/[enlace roto 2024-01-13], en vez de hacer un paquete de cero.
- libdrm-gitAUR
- lib32-libdrm-gitAUR
- lib32-mesa-gitAUR
- mesa-gitAUR
- xf86-video-nouveau-gitAUR
Dual head
Véase Multihead#RandR para saber cómo configurar múltiples monitores usando RandR.
Configurar la resolución de la consola
Puede pasar la resolución a nouveau con la opción de línea de kernel video=
(véase KMS).
Gestión de energía
La falta de una adecuada gestión de energía en el controlador nouveau es una de las principales causas de los problemas de rendimiento, ya que la mayoría de tarjetas permanecerán en su estado de menor energía con velocidades de reloj más bajas durante su uso. El soporte experimental para el reclocking de la GPU está disponible para algunas tarjetas (véase Nouveau PowerManagement) y desde el kernel 4.5 puede ser controlado a través de una interfaz debugfs localizada en /sys/kernel/debug/dri/*/pstate
.
Por ejemplo, para comprobar los estados de energía disponibles y la configuración actual de la primera tarjeta de su sistema, ejecute
# cat /sys/kernel/debug/dri/0/pstate
También es posible establecer/forzar manualmente un determinado estado de energía escribiendo en dicha interfaz:
# echo pstate > /sys/kernel/debug/dri/0/pstate
Control del ventilador
Si está implementado para su tarjeta, es posible configurar el control de los ventiladores a través de /sys
.
$ find /sys -name pwm1_enable /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon1/pwm1_enable $ readlink /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/driver ../../../../bus/pci/drivers/nouveau
Es posible ajustar pwm1_enable
a los valores 0, 1 o 2, lo que significa que el control del ventilador sería NINGUNO, MANUAL y AUTO respectivamente. Si elige el control manual del ventilador, puede configurar pwm1
manualmente, por ejemplo a 40 para el 40%.
También puede establecerse mediante una regla udev:
$ cat /etc/udev/rules.d/50-nouveau-hwmon.rules ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2"
Fuentes:
- https://floppym.blogspot.de/2013/07/fan-control-with-nouveau.html
- https://web.archive.org/web/20141031191559/https://kalgan.cc/blog/posts/Controlling_nVidia_cards_fans_with_nouveau_in_Debian/
Optimus
Existen dos posibilidades para usar Optimus en un portátil (también conocido como gráficos híbridos, cuando se tienen dos GPUs en el portátil): Bumblebee y PRIME
Sincronización vertical
Los compositores de Xorg son propensos a mostrar problemas con Nouveau. A diferencia de la mayoría de ellos, Picom ofrece un montón de opciones de configuración para obtener un resultado más suave y libre de tearing. Una configuración que se espera que ofrezca un buen resultado sería la siguiente
picom -b --unredir-if-possible --backend xr_glx_hybrid --vsync --use-damage --glx-no-stencil
Solución de problemas
Agregue drm.debug=14
y log_buf_len=16M
a sus parámetros del kernel para activar la depuración de vídeo:
Cree un registro verboso de Xorg:
$ startx -- -logverbose 9 -verbose 9
Vea los parámetros y valores del módulo de vídeo cargado:
$ modinfo -p video
Desactivar MSI
Si sigue teniendo problemas para cargar el módulo o iniciar X server, agregue nouveau.config=NvMSI=0
a sus parámetros del Kernel.
Fuente: https://bugs.freedesktop.org/show_bug.cgi?id=78441[enlace roto 2024-10-12]
Problema de salidas fantasma
Es posible que el controlador nouveau detecte salidas "fantasma". Por ejemplo, que tanto VGA-1 como LVDS-1 se muestren como conectados pero sólo LVDS-1 esté realmente presente.
Esto causa problemas de visualización y/o impide la suspensión al cerrar la tapa.
Parámetros del kernel
El problema se puede solucionar desactivando la salida fantasma (VGA-1 en los ejemplos dados) con los parámetros del kernel:
video=VGA-1:d
Donde d = deshabilitar.
El módulo del kernel de nouveau también tiene una opción para deshabilitar la detección de salida de TV [2]:
tv_disable=1
Configuración de Xorg
La salida fantasma se puede desactivar en Xorg añadiendo lo siguiente a /etc/X11/xorg.conf.d/20-nouveau.conf
:
Section "Monitor" Identifier "VGA-1" Option "Ignore" "1" EndSection
Fuente: https://web.archive.org/web/20170118202740/http://gentoo-en.vfose.ru/wiki/Nouveau
Xrandr
Xrandr puede desactivar la salida:
$ xrandr --output VGA-1 --off
Esto puede añadirse a la configuración de xinit.
Bloqueos aleatorios con mensajes de error del kernel
Al usar Nouveau, algunos chips de Nvidia pueden causar bloqueos aleatorios del sistema y más comúnmente lanzar muchos mensajes del kernel, vistos con dmesg. Pruebe a agregar el parámetro del kernel nouveau.noaccel=1
. Véase [3] para más información.
Como alternativa, también puede usar la variable de entorno QT_XCB_FORCE_SOFTWARE_OPENGL=1
para desactivar la aceleración de OpenGL en las aplicaciones Qt.
Flat Panel Table Invalid
Las tarjetas gráficas NVIDIA con chipsets recientes pueden causar problemas de arranque - esto incluye que X11 no pueda iniciarse y que lspci se congele indefinidamente[4][5][6][7][8].
Esto puede romper las distribuciones/medios de instalación en vivo. Se puede detectar ejecutando lspci, o comprobando el registro de systemd para el error:
nouveau E[ DRM]Pointer to flat panel table invalid
El sistema podría iniciar si el controlador Nouveau está desactivado al pasar los siguientes parámetros del kernel:
modprobe.blacklist=nouveau
El controlador Nouveau puede entonces cargarse con
modprobe nouveau
En consecuencia, el sistema debería funcionar correctamente. Si tiene otra tarjeta gráfica Nvidia, o simplemente desea estar seguro, puede desactivar la tarjeta problemática mediante:
$ echo 1 > /sys/bus/pci/devices/[id tarjeta del dispositivo]/remove
El controlador propietario de Nvidia funciona bien actualmente (versión 381).