Mesa-25.3.5
Introdução ao Mesa
Mesa contém várias bibliotecas e
controladores para múltiplas APIs como OpenGL e Vulkan.
Nota
Esse pacote fornece bibliotecas OpenGL, como libGL.so. Pacotes e binários externos ao BLFS,
como AppImages, podem ter problemas com ambos, construção e
execução, em sistemas com bibliotecas OpenGL instaladas a partir
desse pacote. Se você acha que não consegue construir ou executar
um pacote fornecido ou binário, então instale o pacote GLFS
libglvnd.
Ele fornece as próprias bibliotecas dele OpenGL e permite usar
controladores externos ao BLFS. Você terá que reconstruir muitos
pacotes que usam a OpenGL para a finalidade de permitir que
pacotes usem libglvnd. Fazer
isso não é suportado pelos(as) editores(as) do BLFS.
Nota
Mesa é atualizada relativamente
muitas vezes. Você possivelmente queira usar a versão mais
recente disponível.
Nota
Esse pacote é conhecido por construir e
funcionar adequadamente usando-se uma plataforma LFS 13.0.
Informação do Pacote
-
Transferência (HTTP): https://mesa.freedesktop.org/archive/mesa-25.3.5.tar.xz
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
8e699baecbb0a15b5651cc0db2035a4c
-
Tamanho da transferência: 42 MB
-
Espaço em disco estimado exigido: 1,1 GB (com documentos;
adicionar 457 MB para testes)
-
Tempo de construção estimado: 3 UPCs (com documentos;
adicionar 1,4 UPC para testes; ambos com paralelismo=4)
Transferências Adicionais
Dependências do Mesa
Exigidas
Bibliotecas do Xorg, libdrm-2.4.131,
Mako-1.3.10 e PyYAML-6.0.3
Recomendadas
Nota
Uma conexão de Internet é necessária para construir o controlador
Nouveau Vulkan. A loja de certificados do sistema possivelmente
precise ser configurada com make-ca-1.16.1 antes de construir-se esse
pacote.
Nota
Escolhendo Controladores
Mesa
Nas instruções abaixo, todos os controladores disponíveis são
construídos. Isso quase sempre funcionará. No entanto, não é
eficiente. Dependendo do teu hardware de vídeo, você
provavelmente precisará somente de controladores específicos.
A primeira coisa que você precisa saber é qual tipo de
dispositivo de vídeo você tem. Em alguns casos, ele está
construído na CPU. Em outros, é uma placa PCI separada. Em ambos
os casos, você pode saber qual hardware de vídeo tem instalando
pciutils-3.14.0 e executando:
lspci | grep VGA
O dispositivo de vídeo é provavelmente uma das três famílias:
AMD, Intel ou NVIDIA. Vejam-se as Explicações do Comando para
-D gallium-drivers=auto
abaixo para ver quais opções estão disponíveis para teu hardware
de vídeo específico (ou hardware emulado de vídeo). Você
provavelmente deveria adicionar a opção softpipe ou llvmpipe como
um controlador de apoio.
Para 'platforms' você pode selecionar x11 e (ou) wayland. Observe
que atualmente no BLFS somente o Gnome e o KDE podem usar o
wayland. Se você não for usar um desses ambientes de área de
trabalho, então provavelmente desejará somente o x11.
Para 'vulkan-drivers' você pode querer limitar a seleção ao teu
hardware atual. Esses controladores são usados por alguns
aplicativos específicos. Por exemplo, ffmpeg (incluindo ffplay)
usará Vulkan em vez de OpenGL para renderizar vídeo na GPU. Se
você não quiser fazer isso, você pode ou não querer instalá-los.
Vejam-se as Explicações do Comando para -D vulkan-drivers=auto abaixo para
ver quais opções estão disponíveis para teu hardware de vídeo
específico (ou hardware emulado de vídeo). Você provavelmente
deveria adicionar a opção swrast como um controlador residual, a
menos que não precise do Vulkan.
Opcionais
libdisplay-info-0.3.0, libunwind-1.8.3, lm-sensors-3-6-2, Valgrind-3.26.0, mesa-demos (fornece mais
que 300 demonstrações extras para testar Mesa; isso inclui os mesmos programas
adicionados pelo remendo acima), Camada de Integração Bellagio
OpenMAX (para plataformas móveis), libglvnd
(fornece bibliotecas OpenGL) e
libtizonia
Configuração do Núcleo
Habilite as seguintes opções na configuração do núcleo e recompile
o núcleo se necessário:
Device Drivers --->
Graphics support --->
<*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
... [DRM]
# For r300 or r600:
< /*/M> ATI Radeon [DRM_RADEON]
# For radeonsi:
< /*/M> AMD GPU [DRM_AMDGPU]
[*] Enable amdgpu support for SI parts [DRM_AMDGPU_SI]
[*] Enable amdgpu support for CIK parts [DRM_AMDGPU_CIK]
Display Engine Configuration --->
[*] AMD DC - Enable new display engine [DRM_AMD_DC]
# For nouveau:
< /*/M> Nouveau (NVIDIA) cards [DRM_NOUVEAU]
# For i915, crocus, or iris:
< /*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics [DRM_I915]
# For iris:
< /*/M> Intel Xe2 Graphics [DRM_XE]
[*] Enable display support [DRM_XE_DISPLAY]
(*) Force probe xe for selected Intel hardware IDs
... [DRM_XE_FORCE_PROBE]
# For llvmpipe or softpipe:
< /*> Virtual GEM provider [DRM_VGEM]
# For svga:
< /*/M> DRM driver for VMware Virtual GPU [DRM_VMWGFX]
Nota
O correspondente nome do controlador Gallium3D do Mesa é
fornecido como comentário para as entradas de configuração. Se
você não sabe o nome do controlador Gallium3D do Mesa para tua
GPU, veja Mesa Gallium3D Drivers
abaixo.
Para as GPUs suportadas pelo controlador Iris Gallium3D, com
CONFIG_DRM_I915 habilitada e
CONFIG_DRM_XE_FORCE_PROBE configurada
para a sequência de caracteres *, o
controlador i915 será usado se suportar a GPU, e o controlador Xe
será usado se suportar a GPU, mas o controlador i915 não. Se
tiver certeza de que tua GPU é suportada pelo controlador i915,
você pode desabilitar o controlador Xe para economizar algum
tempo de construção. Se tua GPU for suportada por ambos os
controladores e você quiser usar o controlador Xe, você pode
desabilitar o controlador i915 ou fazer com que o controlador
i915 negue tua GPU por meio da opção CONFIG_DRM_I915_FORCE_PROBE; por exemplo,
configurá-la para !7d55 faria o i915
negar a GPU integrada Meteor Lake (cujo ID de PCI é 8086:7d55), deixando-a para o controlador Xe.
CONFIG_DRM_RADEON, CONFIG_DRM_AMDGPU, CONFIG_DRM_NOUVEAU, CONFIG_DRM_I915, e CONFIG_DRM_XE possivelmente exija firmware.
Veja-se Acerca de Firmware para detalhes.
Selecionar CONFIG_DRM_RADEON,
CONFIG_DRM_AMDGPU ou CONFIG_DRM_NOUVEAU como “y” não é recomendado. Se for,
qualquer firmware exigido precisa ser construído como parte da
imagem do núcleo ou do initramfs para o controlador funcionar
corretamente.
As subentradas sob CONFIG_DRM_AMDGPU
são usadas para garantir que o controlador de núcleo AMDGPU
suporte todas as GPUs usando o controlador radeonsi. Elas não são necessárias se você não
precisasse da própria CONFIG_DRM_AMDGPU. Elas possivelmente sejam
desnecessárias para alguns modelos de GPU.
Para llvmpipe ou softpipe, CONFIG_DRM_VGEM é exigido ou os clientes do X
podem falhar ao iniciar com uma mensagem enigmática Error: couldn't get an RGB, Double-buffered
visual. Falando estritamente, ele pode ser compilado como
um módulo. Mas o módulo não será carregado automaticamente, de
forma que é mais conveniente construí-lo como parte da imagem do
núcleo.
Instalação do Mesa
Se você baixou o remendo xdemos (necessário se testar a instalação
do Xorg de acordo com as instruções do BLFS), aplique-o executando
o seguinte comando:
patch -Np1 -i ../mesa-add_xdemos-4.patch
Instale o Mesa executando os
seguintes comandos:
mkdir build &&
cd build &&
meson setup .. \
--prefix=$XORG_PREFIX \
--buildtype=release \
-D platforms=x11,wayland \
-D gallium-drivers=auto \
-D vulkan-drivers=auto \
-D valgrind=disabled \
-D video-codecs=all \
-D libunwind=disabled &&
ninja
Atenção
Por favor, consulte teu(tua) advogado(a) ou remova a opção
-D video-codecs=all se
você distribuirá as bibliotecas e controladores compiladas do
Mesa para outros(as).
Para testar os resultados, emita:
meson configure -D build-tests=true &&
ninja test
Agora, como o(a) usuário(a) root:
ninja install
Se desejado, instale a documentação opcional executando os
seguintes comandos como o(a) usuário(a) root:
cp -rv ../docs -T /usr/share/doc/mesa-25.3.5
Explicações do Comando
--buildtype=release: Essa
chave garante uma construção totalmente otimizada e desabilita
asserções de depuração que desacelerarão severamente as bibliotecas
em certos casos de uso. Sem essa chave, os tamanhos de construção
podem atingir a faixa de 2 GB.
-D gallium-drivers=auto:
Esse parâmetro controla quais controladores Gallium3D deveriam ser
construídos:
-
auto seleciona todos os
controladores Gallium3D disponíveis para x86. Com uma lista
separada por vírgulas, somente um subconjunto desses
controladores será construído. Se você souber exatamente
quais controladores precisa, poderá selecioná-los
explicitamente. Por exemplo, -D
gallium-drivers=radeonsi,iris,llvmpipe.
-
r300 (para séries Radeon 9000 ou
Radeon X da ATI)
-
r600 (para séries Radeon HD
2000-6000 da AMD/ATI)
-
radeonsi (para Radeon HD 7000 da
AMD ou modelos mais recentes de GPU da AMD)
-
nouveau (para GPUs suportadas da
NVIDIA, elas estão listadas como todos os “recursos 3D” ou
“DONE”
ou “N/A” na página
de situação Nouveau)
-
virgl (para uma GPU virtual do
QEMU com suporte a virglrender; observe que o qemu-10.2.1 do BLFS não é construído com
virglrender)
-
svga (para uma GPU virtual do
VMWare)
-
llvmpipe (usar CPU para
rasterização 3D. Observe que ele é muito mais lento que usar
uma GPU moderna com capacidade 3D, de forma que ele deveria
ser usado somente se a GPU não for suportada por outros
controladores)
-
softpipe (também usa CPU para
rasterização 3D, porém mais lento que llvmpipe. Não existe
muita razão para usá-lo, a menos que LLVM não esteja
disponível)
-
iris (para GPUs da Intel
fornecidas com CPUs Broadwell ou mais recentes, ou como uma
placa dedicada PCIe)
-
crocus (para GPUs da Intel GMA
3000, série X3000, série 4000 ou série X4000 fornecidas com
chipsets ou GPUs HD da Intel fornecidas com CPUs pré
Broadwell)
-
i915 (para GPUs da Intel GMA
900, 950, 3100 ou 3150 fornecidas com chipsets ou CPUs Atom
D/N 4xx/5xx)
-
zink (usa Vulkan para
implementar OpenGL e, embora instável às vezes, pode ser um
substituto decente para controladores Gallium de baixo
desempenho, como o Nouveau)
-D vulkan-drivers=auto:
Esse parâmetro controla quais controladores Vulkan deveriam ser
construídos:
-
auto seleciona todos os
controladores Vulkan disponíveis para x86. Com uma lista
separada por vírgulas, somente um subconjunto desses
controladores será construído. Se você souber exatamente
quais controladores precisa, poderá selecioná-los
explicitamente. Por exemplo, -D
vulkan-drivers=amd,nouveau,swrast.
-
amd (para Radeon HD 7730 da AMD
ou GPUs mais recentes da AMD)
-
intel (para GPUs da Intel
fornecidas com Skylake ou CPUs mais recentes, ou como uma
placa dedicada PCIe)
-
intel_hasvk (para GPUs da Intel
fornecidas com CPUs Ivy Bridge, Haswell ou Broadwell)
-
nouveau (para GTX 16XX, RTX 20XX
ou GPUs mais recentes da NVIDIA)
-
swrast (para usar a CPU para
rasterização 3D). Observe que ele é muito mais lento que usar
uma GPU moderna com capacidade 3D, de forma que ele deveria
ser usado somente se a GPU não for suportada por outros
controladores.
-
"" (lista vazia, use
-D vulkan-drivers="" se você não
tiver instalado e não planeja instalar Vulkan-Loader-1.4.341.0)
-D platforms=...: Esse
parâmetro controla quais sistemas de janelas serão suportados. As
plataformas Linux disponíveis são x11 e wayland.
-D valgrind=disabled: Esse
parâmetro desabilita o uso do Valgrind durante o processo de
construção. Remova esse parâmetro se você tiver o Valgrind
instalado e desejar verificar vazamentos de memória.
-D video-codecs=all: Esse
parâmetro habilita construir codificadores/decodificadores para
formatos de vídeo cobertos por patentes de terceiros(as).
-D libunwind=disabled: Esse
parâmetro desabilita o uso da libunwind.
meson configure -D
build-tests=true: Esse comando reconfigurará a
construção para configurar -D
build-tests=true, mas manterá as outras opções especificadas
no comando meson
setup sem mudanças. Ele permite que ninja test construa e execute
testes unitários.
-D egl-native-platform="...": Esse
parâmetro controla qual suporte da Biblioteca de Gráficos
Incorporados será construído. As opções de Linux disponíveis são
auto (padrão), x11, wayland, surfaceless e drm.
Conteúdo
Aplicativos Instalados:
glxgears e glxinfo
Bibliotecas Instaladas:
libEGL.so, libGL.so, libGLESv1_CM.so,
libGLESv2.so, libgbm.so e libgallium-25.3.5.so
Sobras Instaladas de Controlador
DRI: libdril_dri.so e múltiplos
linques simbólicos para ela
Controladores VA-API
Instalados: nouveau_drv_video.so, r600_drv_video.so,
radeonsi_drv_video.so e virtio_gpu_drv_video.so (linques
simbólicos para libgallium-25.3.5.so)
Estruturas GBM de Retaguarda
Instaladas: dri_gbm.so
Controladores Vulkan
Instalados: libvulkan_intel_hasvk.so, libvulkan_intel.so,
libvulkan_lvp.so, libvulkan_nouveau.so e
libvulkan_radeon.so
Diretórios Instalados:
$XORG_PREFIX/include/{EGL,GLES,GLES2,GLES3,KHR},
$XORG_PREFIX/lib/{dri,gbm}, $XORG_PREFIX/share/drirc.d (contém
soluções alternativas para vários aplicativos, particularmente
navegadores e jogos), $XORG_PREFIX/share/vulkan e
/usr/share/doc/mesa-25.3.5
Descrições Curtas
|
glxgears
|
é uma demonstração GL útil para solucionar problemas
gráficos
|
|
glxinfo
|
é um aplicativo de diagnóstico que exibe informações
relativas ao hardware gráfico e bibliotecas GL instaladas
|
|
dri_gbm.so
|
é a estrutura de retaguarda do GBM para Mesa
|
|
libdril_dri.so
|
é uma sobra que permite que o servidor Xorg coopere com
os controladores Gallium3D
|
|
libEGL.so
|
fornece uma interface gráfica de plataforma nativa
conforme definido pela especificação EGL-1.4
|
|
libgallium-25.3.5.so
|
contém todos os controladores Gallium3D e VA-API
|
|
libgbm.so
|
é a biblioteca Generic Buffer Management do Mesa
|
|
libGLESv1_CM.so
|
é a biblioteca OpenGL ES 1.1 do Mesa
|
|
libGLES2.so
|
é a biblioteca OpenGL ES 2.0 do Mesa
|
|
libGL.so
|
é a principal biblioteca OpenGL do Mesa
|