Cómo comprobar qué GPU está instalada en Linux

Una computadora portátil Linux con una ventana de terminal abierta.
Fatmawati Achmad Zaenuri / Shutterstock

¿Necesita identificar la unidad de procesamiento de gráficos (GPU) en una computadora Linux? Así es como puede identificar la tarjeta gráfica desde la línea de comandos y en GNOME.

El primer paso

Probablemente hayas estado allí. Estás reclutado para brindar apoyo a un pariente o colega de trabajo que no sea técnico, y algo te dice que esto no va a ser sencillo. ¡Aún así, ayudas! Rápidamente determina que el problema es probablemente un problema del controlador de pantalla. ¡Oye, esto podría no ser tan malo después de todo! Pero luego su breve destello de esperanza se apaga cuando pregunta: «¿Qué tipo de tarjeta gráfica tienes?»

La expresión de ciervo en los faros que recibe como respuesta lo dice todo. Para apoyar algo, necesita saber qué es. Entonces, ¿cómo se identifica la tarjeta gráfica en una computadora Linux?

Supongamos el peor de los casos y digamos que los controladores de la tarjeta gráfica nunca se instalaron, por lo que ni siquiera puede mirarlos para tener una pista. ¡No importa! Puede resolver este enigma desde la línea de comandos o mediante la interfaz gráfica de usuario (GUI).

lspci y la base de datos de ID de PCI

El estándar de interconexión de componentes periféricos (PCI) es un protocolo común que puede utilizar para comunicarse con los periféricos internos, como las tarjetas gráficas. El repositorio de ID de PCI mantiene una base de datos de todos los ID conocidos de los dispositivos PCI. Esto significa que si conoce alguna información sobre el dispositivo, puede buscarla.

Puede usar el lspcicomando para enumerar los dispositivos PCI instalados en una computadora Linux , así como también información sobre ellos.

¿No sería fantástico si pudiéramos unir la base de datos PCI y el lspcicomando? Bueno, en realidad, eso es exactamente lo que sucede cuando ejecuta el lspcicomando. Comprueba una copia local de la base de datos PCI para identificar los dispositivos PCI que detecta. Antes de comenzar, es aconsejable actualizar la copia local de la base de datos PCI.

Escriba el update-pciidscomando para hacer precisamente eso :

sudo update-pciids

El comando "sudo update-pciids" en una ventana de terminal.

Se recupera la última versión de la base de datos y ahora podemos usar el lspcicomando. Habrá mucho resultado, así que lo canalizaremos less. La -vopción (detallada) nos dice  lscpique nos brinde tanta información como sea posible. Usaremos  sudo para asegurarnos de que la información sea lo más detallada posible.

Escribimos nuestro comando de la siguiente manera:

sudo lspci -v | Menos

El comando "sudo lspci -v | less" en una ventana de terminal.

Los resultados aparecen en less. Si presiona la barra diagonal ( /), activa la  lessfunción de búsqueda.

Relacionado:  2019 es el año de Linux en el escritorio

Escriba «VGA» en mayúsculas y presione Entrar.

Escriba "VGA" en mayúsculas en la ventana del terminal.

less busca la cadena «VGA» y le muestra las primeras coincidencias que encuentra. A partir de ese momento, puede desplazarse o avanzar página para ver cuántas tarjetas gráficas se lspciencuentran.

Resultados de búsqueda para "VGA" en la salida lspci del comando "menos" en una ventana de terminal.

Para este artículo, realizamos nuestra investigación sobre una variedad de distribuciones de Linux que se ejecutan en máquinas virtuales VirtualBox . Las máquinas virtuales, por supuesto, tienen tarjetas gráficas virtuales.

Para que pueda ver un ejemplo de resultados del mundo real, aquí está el resultado de la computadora host (física):

26: 00.0 Controlador compatible con VGA: NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1) (prog-if 00 [controlador VGA])
Subsistema: Gigabyte Technology Co., Ltd GP108 [GeForce GT 1030]
Indicadores: maestro de bus, devsel rápido, latencia 0, IRQ 97
Memoria a f6000000 (32 bits, no recuperable) [tamaño = 16 M]
Memoria a e0000000 (64 bits, recuperable) [tamaño = 256 M]
Memoria a f0000000 (64 bits, recuperable) [tamaño = 32 M]
Puertos de E / S en e000 [tamaño = 128]
ROM de expansión a 000c0000 [deshabilitada] [tamaño = 128 K]
Capacidades: [60] Administración de energía versión 3
Capacidades: [68] MSI: Habilitar + Conteo = 1/1 Enmascarable- 64bit +
Capacidades: [78] Express Legacy Endpoint, MSI 00
Capacidades: [100] Canal virtual
Capacidades: [250] Informes de tolerancia de latencia
Capacidades: [128] Presupuesto energético <?>
Capacidades: [420] Informe avanzado de errores
Capacidades: [600] Información específica del proveedor: ID = 0001 Rev = 1 Len = 024 <?>
Capacidades: [900] PCI Express secundario <?>
Controlador de kernel en uso: nouveau
Módulos del kernel: nouveau

¡Nos dio mucha buena información de inmediato!

La tarjeta es una NVIDIA Corporation GP108 [GeForce GT 1030] y, después de unos segundos con un motor de búsqueda, encontramos la página técnica de NVIDIA para ese dispositivo . El texto «[controlador VGA]» al final de la primera línea indica que esta es la tarjeta gráfica «operativa». Esa es información útil cuando hay más de una tarjeta instalada en una computadora.

El comando lshw

También puede usar el lshw comando para enumerar el hardware instalado en una computadora Linux. También informa una variedad de tipos, no solo hardware PCI.

Para decirle que informe sobre las tarjetas gráficas que encuentre, usaremos la -Copción (clase) y pasaremos el modificador «mostrar». La -numericopción obliga  lshwa proporcionar los ID numéricos de los dispositivos, así como sus nombres.

Escriba lo siguiente:

sudo lshw -numeric -C display

El comando "sudo lshw -numeric -C display" en una ventana de terminal.

Esto es lo que encontró ese comando en la computadora física:

 *-monitor 
   descripción: controlador compatible con VGA
   producto: GP108 [GeForce GT 1030] [10DE: 1D01]
   proveedor: NVIDIA Corporation [10DE]
   identificación física: 0
   información del bus: pci @ 0000: 26: 00.0
   versión: a1
   ancho: 64 bits
   reloj: 33MHz
   capacidades: pm msi pciexpress vga_controller bus_master cap_list rom
   configuración: driver = nouveau latency = 0
   recursos: irq: 97 memoria: f6000000-f6ffffff memoria: e0000000-efffffff memoria: f0000000-f1ffffff ioport: e000 (tamaño = 128) memoria: c0000-dffff

¡Es alentador que ambos encontraron la misma tarjeta!

Relacionado:  Cómo mostrar la fecha y la hora en la terminal de Linux (y usarla en scripts Bash)

Los identificadores [10DE: 1D01] representan el fabricante (10DE) y el modelo (1D01). Para encontrar la marca y el modelo de inmediato, puede escribir «tarjeta gráfica 10de: 1d01» en un motor de búsqueda.

El comando glxinfo

El glxinfocomando es otro método que puede utilizar. Le brinda información de la extensión OpenGL para el sistema X Windows . Luego puede buscar algo de esa información para averiguar qué tipo de tarjeta gráfica está instalada en una máquina.

El glxinfocomando ya está presente en Manjaro y Fedora, pero debe instalarlo en Ubuntu. Para hacerlo, escriba el siguiente comando:

sudo apt-get install mesa-utils

El comando "sudo apt-get install mesa-utils" en una ventana de terminal.

Para canalizar la salida de glxinfoa través de less, y usar la -B opción (IDs de impresión), escriba lo siguiente:

glxinfo -B | Menos

El comando "glxinfo -B | less" en una ventana de terminal.

La tarjeta gráfica se describe en la línea «Dispositivo».

La línea Dispositivo resaltada en la salida de "glxinfo -B | less" en una ventana de terminal.

Esta es la salida de la computadora física:

nombre de la pantalla:: 1
pantalla:: 1 pantalla: 0
representación directa: Sí
Información extendida del renderizador (GLX_MESA_query_renderer):
Proveedor: nouveau (0x10de)
Dispositivo: NV138 (0x1d01)
Versión: 19.3.2
Acelerado: si
Memoria de video: 1987 MB
Memoria unificada: no
Perfil preferido: núcleo (0x1)
Versión de perfil de núcleo máximo: 4.3
Versión de perfil de compatibilidad máxima: 4.3
Versión máxima del perfil GLES1: 1.1
Max GLES [23] versión del perfil: 3.2
Cadena de proveedor de OpenGL: nouveau
Cadena de renderizado OpenGL: NV138
Cadena de versión del perfil principal de OpenGL: 4.3 (perfil principal) Mesa 19.3.2
Cadena de versión del idioma de sombreado del perfil principal de OpenGL: 4.30
Indicadores de contexto del perfil del núcleo de OpenGL: (ninguno)
Máscara de perfil de perfil de núcleo OpenGL: perfil de núcleo

Cadena de versión de OpenGL: 4.3 (Perfil de compatibilidad) Mesa 19.3.2
Cadena de versión del lenguaje de sombreado OpenGL: 4.30
Indicadores de contexto de OpenGL: (ninguno)
Máscara de perfil OpenGL: perfil de compatibilidad

Cadena de versión de perfil de OpenGL ES: OpenGL ES 3.2 Mesa 19.3.2
Cadena de versión del idioma de sombreado de perfil de OpenGL ES: OpenGL ES GLSL ES 3.20

Cuando escribe “NV138” en un motor de búsqueda, la tarjeta gráfica NVIDIA se identifica de inmediato.

Uso de la GUI para identificar la tarjeta gráfica

Si la computadora es un servidor solo CLI, debe utilizar una de las técnicas que cubrimos anteriormente. Sin embargo, si tiene una GUI (que funciona), es probable que exista una forma gráfica de identificar la tarjeta gráfica. De hecho, esa opción probablemente se encuentre en algún lugar de las herramientas de configuración del escritorio de Linux.

En un escritorio GNOME, abra el cuadro de diálogo «Configuración» y luego haga clic en «Detalles» en la barra lateral. En el panel «Acerca de», busque una entrada «Gráficos». Esto le indica qué tipo de tarjeta gráfica hay en la computadora o, más específicamente, la tarjeta gráfica que está actualmente en uso. Su máquina puede tener más de una GPU.

Relacionado:  Cómo usar el comando chgrp en Linux

La pestaña "Acerca de" de la configuración de GNOME en una máquina virtual Ubuntu.

En la pestaña «Acerca de» de la configuración de GNOME de un host físico, obtenemos el mismo ID de tarjeta «NV138» que vimos anteriormente. Nuevamente, podemos conectar esa información a un motor de búsqueda para encontrar el tipo de tarjeta.

La pestaña "Acerca de" de la configuración de GNOME para un host físico.

Tarjetas gráficas en portátiles

Muchas computadoras portátiles tienen dos tarjetas gráficas: una del fabricante de la unidad central de procesamiento (CPU) y otra de un proveedor de GPU convencional.

Escribamos el mismo lspcicomando de antes, pero esta vez, lo ejecutaremos en una computadora portátil:

sudo lspci -v | Menos

Como era de esperar, obtenemos una descripción de las tarjetas gráficas en la máquina:

00: 02.0 Controlador compatible con VGA: Controlador de gráficos del procesador Intel Corporation 3rd Gen Core (rev 09) (prog-if 00 [controlador VGA])
Subsistema: ASUSTeK Computer Inc. Controlador de gráficos del procesador Core de tercera generación
Indicadores: maestro de bus, devsel rápido, latencia 0, IRQ 33
Memoria a f7400000 (64 bits, no recuperable) [tamaño = 4 M]
Memoria a d0000000 (64 bits, recuperable) [tamaño = 256 M]
Puertos de E / S en f000 [tamaño = 64]
[virtual] ROM de expansión en 000c0000 [deshabilitado] [tamaño = 128K]
Capacidades: [90] MSI: Habilitar + Recuento = 1/1 Enmascarable- 64 bits-
Capacidades: [d0] Administración de energía versión 2
Capacidades: [a4] Funciones avanzadas de PCI
Controlador de kernel en uso: i915
Módulos del kernel: i915

01: 00.0 Controlador compatible con VGA: NVIDIA Corporation GF119M [GeForce 610M] (rev a1) (prog-if 00 [controlador VGA])
Subsistema: ASUSTeK Computer Inc. GF119M [GeForce 610M]
Indicadores: maestro de bus, devsel rápido, latencia 0, IRQ 34
Memoria a f6000000 (32 bits, no recuperable) [tamaño = 16 M]
Memoria a e0000000 (64 bits, recuperable) [tamaño = 128 M]
Memoria a e8000000 (64 bits, recuperable) [tamaño = 32 M]
Puertos de E / S en e000 [tamaño = 128]
ROM de expansión a f7000000 [deshabilitada] [tamaño = 512 K]
Capacidades: [60] Administración de energía versión 3
Capacidades: [68] MSI: Habilitar + Conteo = 1/1 Enmascarable- 64bit +
Capacidades: [78] Express Endpoint, MSI 00
Capacidades: [b4] Información específica del proveedor: Len = 14 <?>
Capacidades: [100] Canal virtual
Capacidades: [128] Presupuesto energético <?>
Capacidades: [600] Información específica del proveedor: ID = 0001 Rev = 1 Len = 024 <?>
Controlador de kernel en uso: nouveau
Módulos del kernel: nouveau

Esta computadora portátil tiene una GPU Intel Core y una NVIDIA GeForce 610M. Sin embargo, ambas tarjetas tienen la cadena «[controlador VGA]», que generalmente indica qué GPU está en uso.

Ambos no pueden estar en uso, así que primero intente que funcione la tarjeta del proveedor principal de GPU. Ese es el que el fabricante de la computadora portátil considera predeterminado e incluye en las especificaciones de hardware de la máquina.

¡Una de las técnicas que hemos cubierto aquí seguramente funcionará para usted! Una vez que sepa qué tipo de tarjeta gráfica tiene una computadora o computadora portátil, puede seleccionar el controlador de gráficos apropiado.