Descubra sua GPU Linux: Guia completo com comandos e interface gráfica!

Precisa descobrir qual é a unidade de processamento gráfico (GPU) do seu computador Linux? Este guia mostra como identificar a placa gráfica através da linha de comando e no ambiente GNOME.

O Ponto de Partida

Provavelmente já passou por isso. Você foi chamado para dar suporte a um familiar ou colega com pouca experiência técnica e tem um mau pressentimento sobre a situação. Mas, mesmo assim, decide ajudar! Rapidamente, conclui que o problema está provavelmente relacionado com o driver de vídeo. Afinal, talvez não seja tão complicado! Mas, então, a breve chama de esperança se apaga quando pergunta: “Que tipo de placa gráfica você tem?”.

A expressão confusa que recebe como resposta diz tudo. Para resolver um problema, é fundamental saber qual é o componente em questão. Então, como é possível identificar a placa gráfica em um computador Linux?

Vamos imaginar o pior cenário e supor que os drivers da placa de vídeo nunca foram instalados, o que impede que você os utilize para obter qualquer informação. Mas não se preocupe! É possível resolver este mistério através da linha de comando ou da interface gráfica do utilizador (GUI).

lspci e a Base de Dados de IDs PCI

O padrão Peripheral Component Interconnect (PCI) é um protocolo comum que permite a comunicação com componentes internos, como as placas de vídeo. O Repositório de IDs PCI mantém uma base de dados com todos os IDs conhecidos para dispositivos PCI. Isto significa que, se tiver alguma informação sobre o dispositivo, poderá consultá-la.

Pode utilizar o comando lspci para listar os dispositivos PCI instalados num computador Linux, assim como obter informações sobre eles.

Não seria ótimo se pudéssemos juntar a base de dados PCI e o comando lspci? Na verdade, é exatamente isso que acontece quando executa o comando lspci. Ele consulta uma cópia local da base de dados PCI para identificar os dispositivos PCI que deteta. Antes de começar, é aconselhável atualizar a cópia local da base de dados PCI.

Digite o comando update-pciids para fazer exatamente isso:

sudo update-pciids

A versão mais recente da base de dados é transferida e agora podemos utilizar o comando lspci. O resultado será extenso, por isso vamos encaminhá-lo para o comando less. A opção -v (verbose) indica ao lspci que forneça o máximo de informações possível. Utilizaremos sudo para garantir que as informações sejam o mais detalhadas possível.

O comando é digitado da seguinte forma:

sudo lspci -v | less

Os resultados são apresentados no less. Se pressionar a barra (/), ativa a função de pesquisa do less.

Digite “VGA” (em maiúsculas) e pressione Enter.

O less procura a string “VGA” e mostra as primeiras correspondências encontradas. A partir deste ponto, pode deslocar-se para baixo ou avançar página para ver quantas placas gráficas o lspci detetou.

Para este artigo, a nossa pesquisa foi realizada numa variedade de distribuições Linux, em execução em máquinas virtuais VirtualBox. As máquinas virtuais, obviamente, têm placas de vídeo virtuais.

Para que possa ver um exemplo de resultados reais, aqui está a saída do computador host (físico):

26:00.0 Controlador compatível com VGA: NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1) (prog-if 00 [controlador VGA])
Subsystem: Gigabyte Technology Co., Ltd GP108 [GeForce GT 1030]
Flags: bus master, fast devsel, latency 0, IRQ 97
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at f0000000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Legacy Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [250] Latency Tolerance Reporting
Capabilities: [128] Power Budgeting >
Capabilities: [420] Advanced Error Reporting
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 >
Capabilities: [900] Secondary PCI Express >
Kernel driver in use: nouveau
Kernel modules: nouveau

Obtivemos de imediato muitas informações importantes!

A placa é uma NVIDIA Corporation GP108 [GeForce GT 1030] e, após alguns segundos com um motor de busca, encontramos a página da NVIDIA com as especificações deste dispositivo. O texto “[controlador VGA]” no final da primeira linha indica que esta é a placa gráfica “operacional”. Esta informação é útil quando um computador tem mais do que uma placa instalada.

O Comando lshw

Também pode utilizar o comando lshw para listar o hardware instalado num computador Linux. Ele também reporta uma variedade de tipos – não apenas hardware PCI.

Para que nos informe sobre as placas gráficas que encontra, vamos usar a opção -C (classe) e passar o modificador “display”. A opção -numeric força o lshw a fornecer os IDs numéricos dos dispositivos, bem como os seus nomes.

Digite o seguinte:

sudo lshw -numeric -C display

Aqui está o que este comando encontrou no computador físico:

 *-display
   description: Controlador compatível com VGA
   product: GP108 [GeForce GT 1030] [10DE:1D01]
   vendor: NVIDIA Corporation [10DE]
   physical id: 0
   bus info: [email protected]:26:00.0
   version: a1
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
   configuration: driver=nouveau latency=0
   resources: irq:97 memory:f6000000-f6ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:e000(size=128) memory:c0000-dffff

De forma encorajadora, ambos os comandos encontraram a mesma placa!

Os identificadores [10DE:1D01] representam o fabricante (10DE) e o modelo (1D01). Para descobrir de imediato a marca e o modelo, pode digitar “placa gráfica 10de:1d01” num motor de busca.

O Comando glxinfo

O comando glxinfo é outro método que pode utilizar. Ele fornece informações sobre a Extensão OpenGL para o sistema X Windows. Pode então pesquisar algumas dessas informações para descobrir que tipo de placa gráfica está instalada numa máquina.

O comando glxinfo já está presente no Manjaro e no Fedora, mas terá de o instalar no Ubuntu. Para tal, digite o seguinte comando:

sudo apt-get install mesa-utils

Para encaminhar a saída do glxinfo através do less e usar a opção -B (imprimir IDs), digite o seguinte:

glxinfo -B | less

A placa gráfica é descrita na linha “Device”.

Esta é a saída do computador físico:

name of display: :1
display: :1 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: nouveau (0x10de)
Device: NV138 (0x1d01)
Version: 19.3.2
Accelerated: yes
Video memory: 1987MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 4.3
Max compat profile version: 4.3
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: nouveau
OpenGL renderer string: NV138
OpenGL core profile version string: 4.3 (Core Profile) Mesa 19.3.2
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.3 (Compatibility Profile) Mesa 19.3.2
OpenGL shading language version string: 4.30
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Ao digitar “NV138” num motor de busca, a placa de vídeo NVIDIA é identificada imediatamente.

Utilizar a GUI para Identificar a Placa Gráfica

Se o computador for um servidor apenas com linha de comandos (CLI), terá de utilizar uma das técnicas acima. No entanto, se tiver uma GUI (funcional), é provável que exista uma forma gráfica de identificar a placa de vídeo. Na verdade, esta opção está provavelmente algures nas ferramentas de configuração do ambiente de trabalho do Linux.

No ambiente de trabalho GNOME, abra a janela de diálogo “Configurações” e clique em “Detalhes” na barra lateral. No painel “Sobre”, procure uma entrada “Gráficos”. Isto indica o tipo de placa de vídeo que o computador tem ou, mais especificamente, a placa de vídeo que está a ser utilizada. O seu sistema pode ter mais do que uma GPU.

No separador “Sobre” das configurações do GNOME de um host físico, obtemos o mesmo ID de placa “NV138” que vimos anteriormente. Mais uma vez, podemos inserir estas informações num motor de busca para encontrar o tipo de placa.

Placas Gráficas em Portáteis

Muitos portáteis têm duas placas gráficas: uma do fabricante da unidade central de processamento (CPU) e outra de um fornecedor de GPU tradicional.

Vamos digitar o mesmo comando lspci anterior, mas desta vez, vamos executá-lo num portátil:

sudo lspci -v | less

Como esperado, obtemos uma descrição das placas gráficas no sistema:

00:02.0 Controlador compatível com VGA: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [controlador VGA])
Subsystem: ASUSTeK Computer Inc. 3rd Gen Core processor Graphics Controller
Flags: bus master, fast devsel, latency 0, IRQ 33
Memory at f7400000 (64-bit, non-prefetchable) [size=4M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
I/O ports at f000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [a4] PCI Advanced Features
Kernel driver in use: i915
Kernel modules: i915

01:00.0 Controlador compatível com VGA: NVIDIA Corporation GF119M [GeForce 610M] (rev a1) (prog-if 00 [controlador VGA])
Subsystem: ASUSTeK Computer Inc. GF119M [GeForce 610M]
Flags: bus master, fast devsel, latency 0, IRQ 34
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=128M]
Memory at e8000000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
Expansion ROM at f7000000 [disabled] [size=512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [b4] Vendor Specific Information: Len=14 >
Capabilities: [100] Virtual Channel
Capabilities: [128] Power Budgeting >
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 >
Kernel driver in use: nouveau
Kernel modules: nouveau

Este portátil tem uma GPU Intel Core e uma NVIDIA GeForce 610M. No entanto, ambas as placas têm a string “[controlador VGA]”, que geralmente indica qual GPU está a ser utilizada.

Elas podem não estar ambas em uso, por isso, tente garantir que a placa do fornecedor principal de GPU funciona primeiro. Esta é a que o fabricante do portátil considera como padrão e inclui nas especificações de hardware do sistema.

Uma das técnicas que abordamos aqui irá certamente funcionar para si! Depois de saber qual o tipo de placa gráfica que um computador ou portátil tem, pode selecionar o driver gráfico adequado.