Intel graphics (Português)
A Intel provém e suporta drivers de código aberto (open source), portanto as GPU Intel são plug-and-play.
Para uma lista abrangente dos modelos de GPU Intel e processadores, veja Wikipedia:List of Intel graphics processing units.
Instalação
Instale o pacote mesa, que fornece o driver DRI para aceleração 3D.
- Para suporte a aplicações 32-bit, pode-se instalar o pacote lib32-mesa do repositório multilib.
- Para o driver DDX (que fornecem a aceleração 2D no Xorg), instale o pacote xf86-video-intel. (Alguns não recomendam a instalação do driver Intel, veja a nota abaixo)
- Para o suporte OpenGL, instale mesa. Se você usa x86_64 e precisa de suporte 32-bits, instale também lib32-mesa do repositório multilib.
- Para o suporte ao Vulkan (Ivy Bridge em diante), instale vulkan-intel.
Não se esqueça de checar Hardware video acceleration.
Carregando
O Intel kernel module carrega automaticamente na inicialização do sistema
Caso isso não aconteça, então:
- Tenha certeza de que você não tem
nomodeset
ou {ic|1=vga=}} como um parâmetro do kernel, visto que as GPU's Intel necessitam do kernel mode-setting. - Também, cheque se você não desabilitou o driver, utilizando algum modprobe blacklisting
/etc/modprobe.d/
ou/usr/lib/modprobe.d/
.
Habilitando KMS mais cedo no boot
O Kernel mode setting (KMS) é utilizado pelas placas Intel que usam o driver i915 DRM, sendo ativado como padrão.
Em Kernel mode setting#Early KMS start encontram-se instruções para se ativar o KMS o mais cedo o possível no processo de inicialização.
Ativar carregamento do firmware GuC / HuC
Para o Skylake e os processadores mais recentes, alguns recursos de vídeo (por exemplo, controle de taxa CBR no modo de codificação de baixa energia SKL) podem exigir o uso de um firmware de GPU atualizado, que atualmente (a partir de 4.16) não está habilitado por padrão. Ativar o carregamento do firmware GuC / HuC pode causar problemas em alguns sistemas; desative-o se tiver congelamento (por exemplo, após sair da hibernação).
Para esses processadores, é necessário adicionar i915.enable_guc=2
aos parâmetros do kernel para ativar o carregamento do firmware. Alternativamente, se o initramfs já inclui o módulo i915
(veja Kernel mode setting#Early KMS start), você pode definir estas opções através de um arquivo em /etc/modprobe.d/
, por exemplo:
/etc/modprobe.d/i915.conf
options i915 enable_guc=2
É possível habilitar o carregamento do firmware GuC / HuC e o envio de GuC usando o parâmetro do módulo enable_guc=3
, embora isso geralmente seja desencorajado e possa afetar negativamente a estabilidade do sistema.
Você pode verificar se ambos estão ativados usando dmesg:
# dmesg
[drm] HuC: Loaded firmware i915/kbl_huc_ver02_00_1810.bin (version 2.0) [drm] GuC: Loaded firmware i915/kbl_guc_ver9_39.bin (version 9.39) i915 0000:00:02.0: GuC firmware version 9.39 i915 0000:00:02.0: GuC submission enabled i915 0000:00:02.0: HuC enabled
Alternativamente, verifique usando:
# cat /sys/kernel/debug/dri/0/i915_huc_load_status # cat /sys/kernel/debug/dri/0/i915_guc_load_status
enable_gvt=1
não é suportado a partir do linux 4.20.11 quando o GuC/HuC também está ativado. O módulo i915 falharia ao inicializar conforme mostrado no system journal.
# journalctl
... kernel: [drm:intel_gvt_init [i915]] *ERROR* i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission ... kernel: i915 0000:00:02.0: [drm:i915_driver_load [i915]] Device initialization failed (-5) ... kernel: i915: probe of 0000:00:02.0 failed with error -5 ... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)
Configuração do Xorg
Pode não haver necessidade de qualquer configuração para executar o Xorg.
No entanto, se o Xorg não iniciar, para tirar proveito de algumas opções do driver, você poderá criar um arquivo de configuração do Xorg similar ao que se encontra abaixo:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" EndSection
Opções adicionais devem ser adicionadas pelo usuário nas linhas abaixo de: Driver
.
Para conhecer todas as opções que podem ser adicionadas ao driver, veja a man page intel(4).
- Talvez seja preciso indicar a
Option "AccelMethod"
ao se criar um arquivo de configuração, mesmo que seja para indicar o método padrão ("sna"
); senão o X pode vir a travar. - Pode-se ser necessário adicionar mais seções de {{|Device}} do que a apresentada acima. Indicaremos quando necessário.
Opções baseadas em módulo
O módulo do kernel i915
permite configurações via opções de módulos. Algumas delas modificam as opções de economia de energia.
Uma lista com todas as opções, suas descrições e valores padrão podem ser geradas com o seguinte comando:
$ modinfo -p i915
Para checar o que está ativado, digite:
# systool -m i915 -av
Muitas opções tomam por padrão a íntegra -1, que assume os padrões do hardware. Contudo, é possível configurar opções mais agressivas de economia de energia utilizando opções de módulo. Também é possível desabilitar a economia de energia por completo.
Compressão Framebuffer (enable_fbc)
O uso da compressão Framebuffer (FBC) pode reduzir o consumo de energia e, ao mesmo tempo, reduzir a largura de banda de memória necessária para as atualizações de tela.
Para ativar o FBC, use i915.enable_fbc=1
como parâmetro do kernel ou defina em /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.
A ativação da compressão do buffer de quadros em CPUs anteriores ao Sandy Bridge resulta em mensagens de erro infinitas:
# 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 thisA solução é desabilitar a compactação do buffer de quadros, o que aumentará imperceptivelmente o consumo de energia (em torno de 0,06 W). Para desabilitá-lo, adicione
i915.enable_fbc=0
aos parâmetros da linha do kernel. Mais informações sobre os resultados da compressão desativada podem ser encontradas aqui[link inativo 2021-11-11 ⓘ].Fastboot
O objetivo do Intel Fastboot é preservar o buffer de quadros como configurado pelo BIOS ou gerenciador de boot para evitar qualquer oscilação até que o Xorg tenha iniciado [3].
Para habilitar o fastboot, defina i915.fastboot=1
como um parâmetro do kernel ou defina em /etc/modprobe.d/i915.conf
:
/etc/modprobe.d/i915.conf
options i915 fastboot=1
Suporte de virtualização de gráficos Intel GVT-g
Veja Intel GVT-g para detalhes.
Dicas e Truques
Selecionando o modo de scala (scaling mode)
Isso pode ser útil para algumas aplicações de tela inteira:
$ xrandr --output LVDS1 --set PANEL_FITTING param
Onde param
pode ser:
-
center
: A resolução vai ser mantida, nenhum método de escala será ativado. -
full
: Escala a resolução para se adequar à tela inteira. -
full_aspect
: Escala a resolução para o maior valor possível que mantenha a proporção.
Se não funcionar, tente:
$ xrandr --output LVDS1 --set "scaling mode" param
onde param
é um entre: "Full"
, "Center"
or "Full aspect"
.
Aceleração por hardware e Decodificação H.264 em GMA 4500
O pacote libva-intel-driver fornece apenas descodificação MPEG-2 para GPU's da série GMA 4500. O suporte de decodificação H.264 é mantido em um ramo separado g45-h264, que pode ser usado ao instalar o pacote libva-intel-driver-g45-h264AUR. Note-se, porém, que este suporte é experimental e seu desenvolvimento foi abandonado. Usar a VA-API com este driver em uma GPU GMA 4500 series irá descarregar a CPU, mas pode não resultar em uma reprodução tão suave quanto a reprodução não acelerada. Testes usando mplayer mostraram que usar o vaapi para reproduzir um vídeo 1080p codificado em H.264 reduziu para metade a carga da CPU (em comparação com a sobreposição XV), mas resultou em reprodução muito irregular, enquanto 720p funcionou razoavelmente bem [6]. Há também outras experiências [7][link inativo 2021-11-11 ⓘ]. Definir o tamanho do canal de vídeo pré-alocado maior na bios resulta em uma reprodução de decodificada pelo hardware muito melhor. Mesmo 1080p h264 funciona bem se isso for feito. A reprodução suave (1080p / 720p) também funciona com mpv-gitAUR em combinação com ffmpeg-gitAUR e libva-intel-driver-g45-h264AUR. Com o MPV e o plug-in do Firefox "Send to MPV player" [8], é possível assistir vídeos do YouTube acelerados por hardware.
Definindo brilho e gama
Veja Backlight.
Resolução de Problemas
Problemas com SNA
SNA é o método padrão de aceleração do driver xf86-video-intel. Se você enfrenta problemas com o SNA (e.g. pixelated graphics (gráficos pixelados?), texto corrompido, etc.), ente usar UXA, o que pode ser feito ao adicionar a seguinte linha ao seu arquivo de configuração Xorg: arquivo de configuração:
Option "AccelMethod" "uxa"
Veja intel(4) sobre Option "AccelMethod"
.
Problemas com DRI3
DRI3 é padrão em xf86-video-intel. Podem surgir alguns problemas em alguns sistemas, como: this. Para mudar para DRI2 adicione a seguinte linha ao seu arquivo de configuração do Xorg: arquivo de configuração:
Option "DRI" "2"
Fontes e tela corrompidas em aplicações GTK+ (missing glyphs after suspend/resume)
Se você tiver missing font glyphs (glifos de fontes faltando ?) em aplicações GTK+, este método pode ajudar. Edite /etc/environment
e a dicione a linha abaixo:
/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer
Veja também FreeDesktop bug 88584.
Tela branca durante o boot, enquanto carrega os módulos
Se estiver carregando o KMS mais tarde no boot ("late start") KMS e a tela ficar branca enquanto carregar os módulos, pode ajudar se adicionar i915
e intel_agp
para o initramfs. Veja a sessão Kernel mode setting#Early KMS start.
Outra alternativa, seria adicionar o seguinte parâmetro do kernel:
video=SVIDEO-1:d
Se você precisa de saída para VGA, tente isso:
video=VGA-1:1280x800
X trava com o driver intel
Alguns problemas com o X travando, o bloqueio da GPU ou problemas com o congelamento do X podem ser corrigidos desativando o uso da GPU com a opção NoAccel
- adicione as seguintes linhas ao seuarquivo de configuração:
Option "NoAccel" "True"
Alternativamente, tente desabolitar a aceleração 3D com a opção DRI
:
Option "DRI" "False"
Se o seu sistema travar e tiver
Option "TearFree" "true" Option "AccelMethod" "sna"
no seu arquivo de configuração, na maioria dos casos isso pode ser corrigido ao se adicionar
i915.semaphores=1
aos seus parâmetros de boot.
Se você estiver usando o kernel 4.0.X ou superior na arquitetura Baytrail e o sistema travar frequentemente (especialmente ao assistir a vídeo ou usando GFX intensivamente), você deve tentar adicionar a seguinte opção do kernel como uma solução alternativa, até [https: // bugzilla. Kernel.org/show_bug.cgi?id=109051 este bug] ser corrigido permanentemente.
intel_idle.max_cstate=1
Adicionando resoluções não detectadas
Este problema está coberto em: Xrandr.
Problema da escala da cor
O Kernel 3.9 contém um novo modo "Automático" padrão para a propriedade "Broadcast RGB" no driver Intel. É quase equivalente a "Limited 16: 235" (em vez do antigo padrão "Full") sempre que uma saída HDMI / DP está em um modo CEA. Se um monitor não suporta o sinal em uma faixa de cores limitada, ele causará problemas nas cores.
Pode-se forçar o modo com: xrandr --output <HDMI> --set "Broadcast RGB" "Full"
(substitua <HDMI>
pelo dispositivo correto, rodando xrandr
).
Infelizmente, o driver Intel não suporta a configuração do intervalo de cores através de um arquivo de configuração xorg.conf.d
.
Um bug report foi postado e um patch pode ser encontrado em anexo.
Também existem outros problemas relacionados que podem ser corrigidos editando registros GPU. Mais informações podem ser encontradas em [9] e [10].
O Brilho não está ajustando
Se depois de retomar a suspensão, as teclas de atalho para alterar o brilho da tela não tiverem efeito, verifique sua configuração em relação ao artigo Backlight.
Se o problema persistir, tente um dos seguintes parâmetros do kernel:
acpi_osi=Linux acpi_osi="!Windows 2012" acpi_osi=
Desabilitando a compressão do frame buffer
Habilitando a compressão do frame buffer em CPUs pré Sandy Bridge resulta em incontáveis mensagens de erro:
# dmesg |tail [ 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 this
The solution is to disable frame buffer compression which will imperceptibly increase power consumption (around 0.06 W). In order to disable it add i915.enable_fbc=0
to the kernel line parameters. More information on the results of disabled compression can be found here[link inativo 2021-11-11 ⓘ].
Corrupção/Falta de Resposta no Chromium e Firefox
Se você tiver alguma corrupção ou falta de resposta no Chromium e/ou no Firefox configure o AccelMethod para "uxa".
Kernel crashing com kernels 4.0+ em placas Broadwell/Core-M
Alguns segundos após o X/Wayland carregar, o sistema trava e o journalctl apresenta um log como o seguinte:
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)
Isso pode ser corrigido desabilitando o suporte a execlist que foi alterado para o padrão com o kernel 4.0. Adicione o seguinte parâmetro do kernel:
i915.enable_execlists=0
Isso é conhecido por ser quebrado para pelo menos kernel 4.0.5.
Suporte à Skylake
The i915 DRM driver is known to cause various GPU hangs, crashes and even full system freezes. It might be necessary to disable hardware acceleration to workaround these issues. One solution is to use the following Xorg configuration.
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "DRI" "false" EndSection
Aplicativos específicos, como os navegadores Chromium e Firefox, podem ser instruídos a desativar a renderização de hardware diretamente.
Lag em convidados do Windows (Máquinas Virtuais)
A saída de vídeo de um convidado do Windows (windows guest) no VirtualBox às vezes trava até que o host force uma atualização de tela (por exemplo, movendo o cursor do mouse). A remoção da opção enable_fbc=1
corrige este problema.
Tela piscando
Os seguintes recursos de economia de energia usados por intel iGPUs são conhecidos por causar cintilação em alguns casos. Uma solução temporária é desativar um deles usando a opção kernel boot parameter apropriada:
- *Panel Self Refresh (PSR) FS#49628 FS#49371 FS#50605, ativado por padrão desde o kernel mainline 4.6. Para desativar esse recurso, use a opção
i915.enable_psr=0
.
Veja também
- https://01.org/linuxgraphics/documentation (lista dos hardwares suportados)