Como obter informações sobre o hardware de vídeo no Linux

Quando você precisa relatar algum problema, para conseguir ajuda, pode ser necessário inquirir o seu sistema para saber exatamente qual o modelo de dispositivo em uso.
Você pode obter informações detalhadas sobre a sua placa de vídeo, seja ela dedicada, separada ou integrada ao restante do hardware, com os comandos lspci e lshw.
amd-radeon-graphics-badge-on-dell-laptop
Se quiser entender melhor o funcionamento do lshw, leia este artigo.
Ambos podem ser usados para obter informações sobre diversos aspectos do seu hardware. Neste post, vou me concentrar em obter dados apenas do hardware de vídeo.
O comando grep, neste caso, é essencial para filtrar as informações obtidas e exibir apenas o que interessa. Se tiver dúvidas, leia mais sobre ele aqui.

Como obter informações sobre a placa de vídeo com o comando lspci

O comando é um utilitário voltado para exibir informações sobre o os buses PCI presentes no sistema, bem como os dispositivos conectados a eles.
Com o uso de algumas opções, na linha de comando, é possível obter um saída mais resumida.
É possível também obter uma saída de informações mais verbosa — voltada para hackers mais experientes.
Alguns dados do hardware podem estar disponíveis apenas para usuários com privilégios administrativos — nestes casos, use o comando su ou sudo.
Nos exemplos dados, neste artigo, os comandos são executados pelo superusuário.
Você pode usar o comando lspci, acompanhado das opções ‘-v’, ‘-vv’ ou ‘-vvv’ para obter um resultado cada vez mais abundante de informações. A primeira opção ativa a verbosidade, a segunda aumenta e a última ativa o nível máximo de informações.
Veja um exemplo:

lspci -v | grep -A 20 -i display
04:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260/M265] [1002:6900]
	Subsystem: Dell Device [1028:0643]
	Physical Slot: 4
	Flags: fast devsel, IRQ 7
	Memory at b0000000 (64-bit, prefetchable) [disabled] [size=256M]
	Memory at c0000000 (64-bit, prefetchable) [disabled] [size=2M]
	I/O ports at 3000 [disabled] [size=256]
	Memory at c2000000 (32-bit, non-prefetchable) [disabled] [size=256K]
	Expansion ROM at c2040000 [disabled] [size=128K]
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
	Capabilities: [58] Express Legacy Endpoint, MSI 00
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
	Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [150] Advanced Error Reporting
	Capabilities: [270] #19
	Capabilities: [2b0] Address Translation Service (ATS)
	Capabilities: [2c0] #13
	Capabilities: [2d0] #1b

Use um número maior para a opção ‘-A’, caso desconfie que haja mais algumas linhas de informações sobre o dispositivo.
As primeiras linhas costumam ser mais do que suficiente para informar o modelo exato de placa de vídeo em uso no sistema.

Como obter informações da placa de vídeo com o comando lshw

Como ele demora um pouco para pesquisar o hardware, costumo guardar suas informações em um arquivo texto, que posso ler sem a necessidade de “invocar superpoderes” e com mais rapidez:

sudo lshw > lshw.log

Para obter informações exclusivamente sobre a classe display, use o comando assim:

lshw -class display
  *-display               
       description: VGA compatible controller
       product: Broadwell-U Integrated Graphics
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:65 memory:c1000000-c1ffffff memory:d0000000-dfffffff ioport:5000(size=64)
  *-display UNCLAIMED
       description: Display controller
       product: Topaz XT [Radeon R7 M260/M265]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:04:00.0
       version: 00
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi cap_list
       configuration: latency=0
       resources: memory:b0000000-bfffffff memory:c0000000-c01fffff ioport:3000(size=256) memory:c2000000-c203ffff memory:c2040000-c205ffff

De posse deste resultado, é possível procurar informações sobre a sua placa gráfica no Google ou em fóruns específicos usando os nomes nos campos product e vendor.

No caso de uma placa de vídeo integrada à placa-mãe, você provavelmente só irá conseguir obter informações úteis se informar o modelo da placa-mãe.
Alguns fabricantes não disponibilizam informações ou manuais sobre a placa de vídeo, em separado, nestes casos.

O comando, a seguir, oferece os dados referentes à placa mãe ou motherboard:

lshw -class bus
Busca do google por nome do dispositivo
Busca do google por nome do dispositivo

Como obter informações da placa de vídeo com o comando dmidecode

O dmidecode pode parecer redundante, depois de falarmos do lshw — uma vez que este último também pesquisa na tabela DMI.
A saída é dada em formatos diferentes, contudo. Vale a pena abordar este comando também.
Veja como obter dados da placa — útil, quando a placa de vídeo é integrada:

dmidecode -t baseboard | grep -B 2 -i product 
Base Board Information
	Manufacturer: Dell Inc.
	Product Name: 0YDTG3

Ou use a opção que segue para obter informações mais detalhadas da placa mãe:

dmidecode --type 2
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
	Manufacturer: Dell Inc.
	Product Name: 0YDTG3
	Version: A02
	Serial Number: .SF5WERT3.GR9983062FS132.
	Asset Tag: Not Specified
	Features:
		Board is a hosting board
		Board is replaceable
	Location In Chassis: Type2 - Board Chassis Location
	Chassis Handle: 0x0003
	Type: Motherboard
	Contained Object Handles: 0

Dispositivos on board podem ser exibidos com a seguinte opção:

dmidecode --type 10

Sua lista pode ser maior do que a minha:

# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0018, DMI type 10, 6 bytes
On Board Device Information
	Type: Video
	Status: Disabled
	Description: Intel Video Graphics Controller

Use a opção ‘–type 41’, para obter uma relação maior.

Comandos Linux que ajudam a determinar se o sistema é 32 ou 64 bits

É possível determinar a arquitetura do seu sistema com 2 ou 3 cliques na tela, dependendo da versão do desktop gráfico que você estiver usando.
Neste artigo, vou mostrar como obter esta informação na linha de comando. O motivo disto é que esta informação poderá ser aplicada em qualquer sistema Linux, independente da sua versão ou tipo de ambiente gráfico que estiver sendo usado.

Intel Pentium M 1.4 Ghz Banias Core
Clique para detalhes.

Alguns destes comandos, podem ser aplicados, até mesmo, em um emulador de terminal de um celular ou tablet Android.

Saber extrair informações sobre a arquitetura do sistema é muito útil no momento de instalar ou compilar um novo software que vem empacotado para diversas arquiteturas — 32 bits, arm, 64 bits etc.

Saiba como verificar se o seu dispositivo Android é 32 ou 64 bit.

Como usar o comando uname para saber se o sistema é 32 bits ou 64 bits

A saída do comando UNAME varia intensamente de acordo com a arquitetura e a plataforma de hardware/software usada.
Uma das formas mais eficientes de usar o comando uname é em conjunto com o comando grep.
Se você usar o parâmetro -a, o uname irá exibir todas as informações que tiver sobre a máquina. Veja um exemplo:


uname -a

Linux VoYag3r 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linux

No exemplo, acima, vê-se uma saída típica de uma máquina 32 bits (note a string i686):
Abaixo, segue um exemplo do resultado do comando uname -a, em uma máquina de arquitetura 64 bits.

Linux caddy.stratOS.com 2.6.9-5.0.5.EL #1 SMP Tue Jul 15 03:55:02 UTC 2014 ia64 ia64 ia64 GNU/Linux

A string ia64 — abreviatura para Intel Architecture 64 – indica que o processador é 64 bits.
Você também pode reduzir a quantidade de informações, para obter apenas a arquitetura da máquina, assim:


uname -m

i686

Use o conteúdo do /proc/cpuinfo

Há várias informações úteis sobre a sua CPU, neste arquivo.
Determinar a arquitetura da sua máquina, a partir do /proc/cpuinfo pode exigir um pouco mais de conhecimento.
Use o comando grep para filtrar as informações — neste momento, só interessa o que se encontra no item flags da saída do comando. Veja:


cat /proc/cpuinfo | grep flags

Procure na sua listagem o flag lm — abreviatura para longmode. Este item indica suporte a 64 bits.

cpuinfo informações sobre a arquitetura do pc no linux
Clique para ver detalhes.

Use o comando file para descobrir a arquitetura

Determine o tipo de arquivo do init, assim:


file -e elf /sbin/init | grep -i bit

A primeira linha, do resultado do comando, tende a mostrar se a sua máquina é 32 ou 64 bits.
A figura, abaixo, mostra um exemplo da saída do comando.

Captura de tela da saída do comando file
Clique para ver detalhes.

Use o comando arch

O comando arch retorna a mesma saída de dados e informações que o uname -m.
Esta é, talvez, a maneira mais direta de obter informações sobre a arquitetura do seu sistema. Veja:


arch

ia64

Use o lshw

Este método pode apresentar resultados bem interessantes, mas tem alguns pontos chatos negativos:

  • A grande quantidade de informações, disponibilizada pelo comando lshw, pode levar à desinformação, em vez de te fornecer dados mais precisos
  • Por exibir um fluxo muito grande de informações e inquirir cada peça do seu hardware, o comando é lento
  • Precisa ser executado com privilégios administrativos ou a listagem pode ficar incompleta — uma vez que os usuários comuns não têm acesso às informações e aos recursos de todos os dispositivos do sistema

Ainda assim, eu te encorajo a fazer alguns testes, para ver qual deles lhe retorna resultados mais relevantes.
Para aumentar a velocidade da listagem, direcione o resultado para um arquivo texto, assim:


sudo lshw > lshw.txt

Em seguida filtre as informações do arquivo lshw.txt, com o comando grep. Veja um exemplo:


cat lshw.txt | grep -A 5 "logicalcpu"

 *-logicalcpu:0
             descrição: CPU lógico
             ID físico: 0.1
             largura: 32 bits
             capacidades: logical
*-logicalcpu:1
             descrição: CPU lógico
             ID físico: 0.2
             largura: 32 bits
             capacidades: logical[/plain]

ou assim:


sudo lshw -class processor

*-cpu                   
       product: Intel(R) Core(TM) i5-2537M CPU @ 1.40GHz
       vendor: Intel Corp.
       physical id: 1
       bus info: cpu@0
       size: 1548MHz
       capacity: 2300MHz
       width: 64 bits
       capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid xsaveopt cpufreq[/plain]

É preciso ser cuidadoso com a interpretação do comando lshw por que, mesmo em sistemas 32 bits, é possível ter vários componentes 64 bits (e vice-versa), como placas PCI etc.

Use o getconf

A função do getconf é inquirir sobre as variáveis do sistema. Uma destas variáveis é a LONG_BIT, que dá informações precisas sobre a arquitetura do seu sistema.
Observe:


getconf LONG_BIT

64

Conclusão

O objetivo do artigo é, além de apresentar uma solução para um problema comum a muitos usuários, mostrar alguns comandos Linux e como podem ser úteis ao caso.
Espero que você tenha se divertido tanto quanto eu e, se quiser, compartilhe o artigo com seus amigos nas redes sociais.
Se você prefere usar outras formas para detectar a arquitetura do seu sistema, fique à vontade para escrever nos comentários — assim, você pode ser útil a outros leitores.

LEIA MAIS