Intel graphics (Español)
Intel provee y mantiene controladores de código abierto, por lo que sus tarjetas de video son esencialmente plug-and-play.
Para un listado más detallado de modelos de GPU Intel, con sus correspondientes chipsets y CPUs, vea Wikipedia:List of Intel graphics processing units.
Instalación
Instale el paquete mesa, que provee el controlador DRI para aceleración en 3D.
- Para soporte de aplicaciones 32-bit también instale lib32-mesa desde el repositorio multilib.
- Para el controlador DDX (que provee aceleración en 2D en Xorg), instale el paquete xf86-video-intel (usualmente no es recomendado, revise la nota más abajo).
- Para sopore de Vulkan (Ivy Bridge y más reciente) instale el paquete vulkan-intel.
Véase también Hardware video acceleration.
Carga
El módulo de núcleo proporcionado por Intel debería cargar automáticamente al arranque del sistema.
Si esto no ocurre, entonces:
- Asegúrese que no tiene
nomodeset
ovga=
como un parámetro de núcleo, puesto que Intel requiere mode-setting del núcleo. - También revise que Intel no esté desactivada mediante alguna lista negra modprobe dentro de
/etc/modprobe.d/
o de/usr/lib/modprobe.d/
.
Iniciar de forma anticipada KMS
Kernel mode setting (Español) es soportado por los chipsets de Intel que utilizan el controlador DRM i915, lo cual es mandatorio y está activado de forma predeterminada.
Refiérase a Kernel mode setting (Español)#Iniciar de forma anticipada KMS para instrucciones de cómo habilitar KMS lo más pronto posible durante el proceso de arranque.
Habilitar la carga del firmware GuC / HuC
Para los procesadores Skylake y más recientes algunas características de video (e.g. control de velocidad de CBR en el modo de codificación de bajo consumo en SKL) pueden requerir utilizar un firmware de GPU actualizado, lo que actualmente (versión 4.16) no está habilitado por defecto. Habilitar la carga de firmware GuC/HuC puede causar problemas en algunos sistemas; desactívelo si experimenta congelamientos (por ejemplo, al iniciar después de una hibernación).
Para aquellos procesadores es necesario añadir i915.enable_guc=2
a los parámetros de núcleo para habilitar la carga del firmware de GuC y HuC. Alternativamente, si initramfs ya incluye el módulo i915
(vea Kernel mode setting (Español)#Iniciar de forma anticipada KMS), puede establecer estas opciones mediante un archivo en /etc/modprobe.d/
, e.g.:
/etc/modprobe.d/i915.conf
options i915 enable_guc=2
Configuración de Xorg
Puede no existir la necesidad de configuraciones para ejecutar Xorg.
Sin embargo, si Xorg no inicia (y para tomar ventaja de algunas opciones del controlador) puede crear un archivo de configuración para Xorg similar al mostrado debajo:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" EndSection
Opciones adicionales son añadidas por el usuario en nuevas líneas debajo de Driver
.
Para un listado completo de opciones, vea el manual intel(4).
AccelMethod
Puede que necesite indicar Option "AccelMethod"
al momento de crear el archivo de configuración, las opciones clásicas son UXA
, SNA
(predeterminado) y BLT
.
Si experimenta problemas con la opción predeterminada SNA
(e.g. gráficos pixelados, texto corrupto, etc), intente utilizar UXA
en su lugar, lo que puede lograr añadiendo la siguiente línea a su archivo de configuración:
Option "AccelMethod" "uxa"
Vea intel(4) bajo Option "AccelMethod"
.
Opciones basadas en módulos
El módulo de núcelo i915
permite configurar mediante opciones de módulo. Algunas opciones de módulo impactan el ahorro de energía.
Una lista de todas las opciones junto a una breve descripción y valores predeterminados puede ser generada con la siguiente órden:
$ modinfo -p i915
Para verificar las opciones actualmente habilitadas, ejecute:
# systool -m i915 -av
Notará que muchas opciones contienen el valor predeterminado -1, resultando en un ahorro de energía predeterminado por chip. No obstante, es posible configurar un ahorro de energía más agresivo utilizando module options.
Compresión de framebuffer (enable_fbc)
Hacer uso de compresión Framebuffer (FBC) puede reducir el consumo de energía y a su vez reducir el ancho de banda requerido para los refrescos de pantalla.
Para habilitar FBC utilice i915.enable_fbc=1
como parámetro de kernel o establézcalo en /etc/modprobe.d/i915.conf
:
/etc/modprobe.d/i915.conf
options i915 enable_fbc=1
kernel: drm: not enough stolen space for compressed buffer, disabling.
Habilitar la compresión frame buffer en CPUs anteriores a Sandy Bridge resulta en interminables mensajes de error:
# dmesg
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling [ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid thisLa solución a esto es desactivar la compresión frame buffer, lo que subirá el consumo energético de forma imperceptible (al rededor de 0.06 W). Para deshabilitarlo añada
i915.enable_fbc=0
a las líneas de parámetro del núcleo. Mayor información en los resultados de compresión deshabilitada pueden ser encontrados aquí[enlace roto 2021-11-11].Fastboot
La meta de Intel Fastboot es preservar el frame-buffer del modo en que fue establecido por la BIOS o el gestor de arranque para evitar parpadeos hasta que Xorg comience [3].
Para habilitar fastboot, establezca i915.fastboot=1
como parámetro de núcleo o establézcalo en /etc/modprobe.d/i915.conf
:
/etc/modprobe.d/i915.conf
options i915 fastboot=1
Soporte para virtualización de targeta gráfica Intel GVT-g
Vea Intel GVT-g para detalles.
Consejos y trucos
Ajuste del modo de escalado
Esto puede ser resultar de utilidad para algunas aplicaciones a pantalla completa.
$ xrandr --output LVDS1 --set PANEL_FITTING param
donde param
puede ser:
-
center
: la resolución será mantenida exactamente como fue definida, sin realizar un escalado, -
full
: escala la resolución de modo que utiliza la totalidad de la pantalla o -
full_aspect
: escala la resolución al máximo posible, pero mantiene la relación de aspecto.
Si no funciona, intente lo siguiente:
$ xrandr --output LVDS1 --set "scaling mode" param
donde param
puede ser "Full"
, "Center"
o "Full aspect"
.
Decodificación de H.264 en GMA 4500 por aceleración de hardware
El paquete libva-intel-driver sólo provee decodificación MPEG-2 acelerada por hardware para las series de GPU GMA 4500. El soporte de decodificación de H.264 es mantenido en una rama g45-h264 separada, que puede ser utilizada instalando el paquete libva-intel-driver-g45-h264AUR. No obstante, note que este soporte es experimental y su desarrollo ha sido abandonado. Utilizar VA-API con este controlador en las series de GPU GMA 4500 bajará la carga de la CPU, pero puede no otorgar una reproducción suave como lo haría el método de reproducción sin aceleración por hardware. Pruebas utilizando mplayer mostraron que la utilización de vaapi para reproducir videos codificados con H.264 a una resolución de 1080p redujeron a la mitad la carga en la CPU (comparado con la superposición XV), pero resultaron en una reproducción muy agitada; mientras que a una resolución de 720p funcionó razonablemente bien [6]. Ajustar una mayor asignación de memoria ram en la bios resulta en una considerablemente mejor reproducción decodificada por hardware. Inclusive la h264 a 1080p funciona bien una vez lo anterior es realizado. Una reproducción suave (1080p/720p) funciona tambien con mpv-gitAUR en combinación con ffmpeg-gitAUR y libva-intel-driver-g45-h264AUR.
Controlador antiguo de OpenGL (i965)
A partir de Mesa 19.2, un nuevo controlador OpenGL, Iris, está disponible para pruebas. En Mesa 20.0, el controlador Iris fue promovido a ser el predeterminado para Gen8+. Ciertas aplicaciones se ejecutan más rápido con él. Puede desactivarlo y regresar al antiguo controlador i965 ajustando la variable de entorno MESA_LOADER_DRIVER_OVERRIDE=i965
antes de empezar cualquier aplicación OpenGL. Este ajuste no afecta las aplicaciones de Vulkan.
Anulando la versión de OpenGL reportada
La variable de entorno MESA_GL_VERSION_OVERRIDE
puede ser utilizada para anular la versión de OpenGL reportada a cualquier aplicación. Por ejemplo, ajustar MESA_GL_VERSION_OVERRIDE=4.5
reportará OpenGL 4.5.
Ajustar brillo y gamma
Vea Backlight.
Solución de problemas
Desgarro
El método de aceleración SNA causa desgarros en algunas máquinas. Para arreglarlo, habilite la opción "TearFree"
en el controlador añadiendo la siguiente línea a su archivo de configuración:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" EndSection
Vea el reporte original de bug para mayor información.
- Esta opción puede no funcionar cuando
SwapbuffersWait
está establecido comofalse
. - Esta opción puede incrementar considerablemente la asignació de memoria y reducir el rendimiento. [7]
- Esta opción es problemática para aplicaciones sensibles a la sincronización vsync, como Super Meat Boy.
- Esta opción no funciona con el método de aceleración UXA, solamente con SNA.
Deshabilitar la sincronización vertical (VSYNC)
De utilidad cuando:
- Chomium/Chrome presenta retrasos y un rendimiento lento debido a la GPU y se ejecuta con suavidad con la bandera --disable-gpu
- glxgears no muestra el rendimiento deseado
El controlador de intel utiliza Triple Buffering para sincronización vertical, esto permite un rendimiento total y evita el desgarro. Para desactivar la sincronización vertical (e.g para una evaluación comparativa) utilice este .drirc
en su directorio de usuario:
~/.drirc
<device screen="0" driver="dri2"> <application name="Default"> <option name="vblank_mode" value="0"/> </application> </device>
Problemas con DRI3
DRI3 es la versión predeterminada de DRI en xf86-video-intel. En algunos sistemas esto puede causar problemas como este. Para regresar a DRI2 añada la siguiente línea a su archivo de configuración:
Option "DRI" "2"
Para el controlador modesetting
, este método para deshabilitar DRI3 no funciona. En su lugar, puede establecer la variable de entorno LIBGL_DRI3_DISABLE=1
.
Corrupción en la fuente y pantalla de aplicación GTK (falta glyphs después de suspender/resumir)
Si presenta la falta de fuente glyphs en aplicaciones GTK, la siguiente solución puede ayudar. Edite /etc/environment
para añadir la siguiente línea:
/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer
Véase también FreeDesktop bug 88584.
Pantalla blanca durante inicio del sistema, durante "Loading modules"
Si está utilizando el "inicio retrasado" de KMS y la pantalla se va a negro durante "Loading modules", puede ayudar añadir i915
y intel_agp
a initramfs. Vea la sección Kernel mode setting (Español)#Iniciar de forma anticipada KMS.
Alternativamente, anexar el siguiente parámetro de núcleo también funciona:
video=SVIDEO-1:d
Si necesita una salida de video mediante VGA, entonces intente lo siguiente:
video=VGA-1:1280x800
X se congela/quebra con el controlador de intel
Algunos problemas con X quebrándose, la GPU colgándose, o problemas relacionados con X congelándose, pueden ser solucionados deshabilitando la utilización de la GPU con la opción NoAccel
; añada la siguientes líneas a su archivo de configuración:
Option "NoAccel" "True"
Alternativamente, intente deshabilitar solamente la aceleración en 3D con la opción DRI
:
Option "DRI" "False"
Baytrail se congela completamente
Si está utilizando el núcelo > 3.16 en la arquitectura Baytrail y encuentra congelamientos arbitrarios del sistema, la siguiente opción de núcleo es una solución provisoria hasta que este bug sea arreglado en el núcleo linux.
intel_idle.max_cstate=1
Este es originalmente un bug de la CPU Intel que puede ser provocado por cierta transición c-state. También puede ocurrir con el núcleo linux 3.16 o Windows, aunque aparentemente esto rara vez ocurre. La opción de núcleo va a prevenir el congelamiento al evitar las transiciones c-state, pero también resultará en un incremento del consumo energético.
Añadir resoluciones no detectadas
Este problema es cubierto en la página de Xrandr.
Backlight no es ajustable
Si después de resumir desde una suspensión, los atajos de teclado para cambiar el brillo de pantalla no surten efecto, revise su configuración con la estipulada en el artículo Backlight.
Si el problema persiste, intente uno de los siguientes parámetros de núcleo:
acpi_osi=Linux acpi_osi="!Windows 2012" acpi_osi=
También asegúrese que no está utilizando el modo fastboot (el parámetro de núcleo i915.fastboot), es conocido por quebrar los controles de backlight.
Corrupción o falta de respuesta en Chromium y Firefox
Si experimenta corrupción, falta de respuesta, retrasos o un rendimiento lento en Chromium y/o Firefox algunas soluciones posibles son:
- Establecer el AccelMethod a "uxa"
- Deshabilitar VSYNC
- Habilitar la opción TearFree
- Deshabilitar "DRI" y el método de aceleración (probado en Intel Iris décima generación):
Option "NoAccel" "True" Option "DRI" "False"
Núcleo se quebra en versión 4.0+ con chips Broadwell/Core-M
Segundos después de la carga de X/Wayland la máquina se congela en su totalidad y journalctl registra un quiebre en el núcleo haciendo referencia a la tarjeta gráfica de Intel como puede verse a continuación:
Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null) Jun 16 17:54:03 hostname kernel: IP: [< (null)>] (null) ... Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G U O 4.0.5-1-ARCH #1 ... Jun 16 17:54:03 hostname kernel: Call Trace: Jun 16 17:54:03 hostname kernel: [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0 Jun 16 17:54:03 hostname kernel: [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm] Jun 16 17:54:03 hostname kernel: [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200 Jun 16 17:54:03 hostname kernel: [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0 Jun 16 17:54:03 hostname kernel: [<ffffffff811f6452>] ? __fget+0x72/0xb0 Jun 16 17:54:03 hostname kernel: [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0 Jun 16 17:54:03 hostname kernel: [<ffffffff8157a589>] system_call_fastpath+0x12/0x17 Jun 16 17:54:03 hostname kernel: Code: Bad RIP value. Jun 16 17:54:03 hostname kernel: RIP [< (null)>] (null)
Esto puede arreglarse deshabilitando el soporte a execlist, el cual fue cambiado a predeterminado en el núcleo 4.0. Añada el siguiente parámetro de núcleo:
i915.enable_execlists=0
Esto es conocido por estar quebrado hasta al menos el núcleo 4.0.5.
Retraso en el invitado Windows
La salida de video del invitado Windows en VirtualBox algunas veces se cuelga hasta que el anfitrión fuerza una actualización de pantalla (e.g. moviendo el cursor). Quitando la opción enable_fbc=1
arregla el problema.
Parpadeo de la pantalla
Panel Self Refresh (PSR), una característica para el ahorro de energía utilizada por la iGPU de Intel es conocida por causar pestañeos en algunas instancias FS#49628 FS#49371 FS#50605. Una solución temporal es deshabilitar esta función utilizando el parámetro de núcleo i915.enable_psr=0
.
OpenGL 2.1 con el controlador i915
La actualización de mesa desde la versión 13.x a la versión 17 puede quebrar el soporte para OpenGL 2.1 en GPUs Intel de tercera generación (GMA3100, véalo aquí), como es descrito en este artículo, revirtiéndolo a OpenGL 1.4. Sin embargo, esto puede ser restaurado manualmente ajustando las opciones /etc/drirc
o ~/.drirc
del siguiente modo:
/etc/drirc
<driconf> ... <device driver="i915"> <application name="Default"> <option name="stub_occlusion_query" value="true" /> <option name="fragment_shader" value="true" /> </application> </device> ... </driconf>
Problema de KMS: la consola está limitada a un área pequeña
Uno de los puertos de video de baja resolución puede estar habilitado en el arranque, lo que está causando que la consola utilice un área reducida de la pantalla. Para arreglarlo, deshabilite explícitamente el puerto con un ajuste de módulo i915 con video=SVIDEO-1:d
en el parámetro de línea de órden del núcleo en el gestor de arranque. Vea parámetros de núcleo mayor información.
Si aquello no funciona, intente deshabilitar TV1 o VGA1 en lugar de SVIDEO-1. Los nombre de puertos de video pueden ser listados con xrandr.
Colores desgastados (problemas con el rango de colores)
La propiedad "Broadcast RGB" en el controlador de Intel define un rango de color que puede ser utilizado por el monitor; puede ser "Limited 16:235" (que limita el rango de color para algunas pantallas que no pueden procesar correctamente las señales de rango de color completas) y "Full". Desde el núcleo 3.9, la nueva propiedad predeterminada "Automatic" intenta determinar si la pantalla soporta el rango de colores total, y si no lo detecta/falla el rango de color se establece en "Limited 16:235". Si una falla en la detección limita el rango de colores, esto resulta en colores desgastados y en grises ennegrecidos. En algunas pantallas/conectores, a pesar de que el rango total de colores es soportado correctamente, la detección automática falla y establece el rango de colores limitado (reporte de upstream bug, núcleo 4.18-4.20).
Puede establecer el ajuste de rango de color deseado forzosamente ejecutando xrandr --output <OUT> --set "Broadcast RGB" "Full"
(reemplace <OUT>
con la salida de dispositivo apropiada, listada ejecutando xrandr
). No hay una forma de volver este ajuste persistente en xorg.conf
.
Véase también
- https://01.org/linuxgraphics/documentation (incluye una lista de hardware soportado).