¿Qué hardware tiene mi PC? Herramientas GNU/Linux (2)
Ya hemos estado analizando algunos aspectos del hardware de nuestra computadora en nuestra entrega anterior.
Ahora veremos otros comandos interesantes para conocer nuestro hardware en sistemas GNU/Linux!
lsusb
[die@debian ~]$ lsusb Bus 005 Device 003: ID 13d3:5702 IMC Networks UVC VGA Webcam Bus 005 Device 002: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 003: ID 13d3:3315 IMC Networks Bluetooth module Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 003: ID 13d3:5702 IMC Networks UVC VGA Webcam Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x13d3 IMC Networks idProduct 0x5702 UVC VGA Webcam bcdDevice 3.22 iManufacturer 3 Azurewave iProduct 1 USB2.0 UVC VGA WebCam iSerial 2 200901010001 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 743 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 4 USB Camera
lsmod
Con lsmod podemos listar los módulos que están cargados en nuestro equipo.
En el kernel de Linux las funcionalidades para acceder a diversos elementos de hardware pueden cargarse de dos maneras. Una, directamente compiladas junto con el código del kernel. Otra, compiladas en forma externa, como módulos. Los módulos tienen la ventaja de que pueden cargarse y descargarse a gusto y necesidad, según sean los dispositivos que necesitemos utilizar.
Los módulos del kernel son agregados de funcionalidad que permiten acceder a dispositivos de ciertas y determinadas maneras. Muchas veces para poder, por ejemplo, tener audio, o red wireless en nuestro sistema, deberemos cargar los módulos correspondientes.
Veamos una salida del comando lsmod:
[die@debian ~]$ lsmod Module Size Used by michael_mic 12490 12 arc4 12480 6 ecb 12649 0 bnep 17149 2 rfcomm 32113 0 nfnetlink_queue 17364 0 nfnetlink_log 17033 0 nfnetlink 12853 2 nfnetlink_log,nfnetlink_queue uinput 17068 1 nfsd 224577 2 auth_rpcgss 45794 1 nfsd oid_registry 12387 1 auth_rpcgss nfs_acl 12463 1 nfsd nfs 167687 0 lockd 69375 2 nfs,nfsd fscache 40686 1 nfs sunrpc 198822 6 nfs,nfsd,auth_rpcgss,lockd,nfs_acl
En la primer columna tenemos el nombre del módulo, en la segunda el tamaño del mismo, luego un contador de la cantidad de módulos que usan al módulo en cuestión. Los módulos pueden tener cierta jerarquía, es decir, módulos que utilizan a módulos. En este caso, en la última columna veremos una serie de dependencias, o qué módulos utilizan al módulo en cuestión, y, por consiguiente, qué módulos deberán estar previamente cargados para poder cargar un módulo en el sistema.
dmesg y los logs de hardware
El kernel mantiene un buffer de mensajes de funcionamiento normal y de logs de errores, que se cargan en el momento de iniciar el equipo, y luego se va nutriendo con cambios de hardware, montaje de dispositivos, etc.
El comando dmesg nos permite acceder a este contenido de mensajes, para analizar y poder, en caso de ser necesario, encontrar errores.
Supongamos que insertamos un pendrive usb en nuestro sistema, y no se monta solo. Una posible causa es que nuestro entorno de escritorio no lo esté montando automáticamente. Otra, que el dispositivo no haya sido reconocido por el kernel, y no haya sabido interpretarlo.
Para salir de dudas, podemos correr un dmesg y analizar las últimas líneas para determinar qué es lo que «vio» el kernel en el momento en el que insertamos el dispositivo.
[die@debian ~]$ dmesg ... [ 40.933906] systemd-logind[3614]: Linked /tmp/.X11-unix/X0 to /run/user/1000/X11-display. [ 134.956132] [drm:intel_enable_lvds] *ERROR* timed out waiting for panel to power on [ 138.554339] systemd-logind[3614]: Removed session c1. [ 141.558627] systemd-logind[3614]: New session 2 of user die. [ 195.310710] perf samples too long (2521 > 2500), lowering kernel.perf_event_max_sample_rate to 50000 [ 453.134230] perf samples too long (5003 > 5000), lowering kernel.perf_event_max_sample_rate to 25000 [ 454.153442] CE: hpet increased min_delta_ns to 30172 nsec [ 817.294496] hda-codec: out of range cmd 0:20:400:fffff7ff [ 2442.701599] perf samples too long (14448 > 10000), lowering kernel.perf_event_max_sample_rate to 12500 [ 3128.021400] CE: hpet increased min_delta_ns to 45258 nsec [ 3128.021808] CE: hpet increased min_delta_ns to 67887 nsec [ 3128.022270] CE: hpet increased min_delta_ns to 101830 nsec
Los mensajes de log entregados por dmesg se encuentran almacenados en el directorio de log del sistema, en sistemas SysVInit, en el archivo /var/log/dmesg.
En el mismo directorio también encontraremos también los demás archivos de log, de por sí interesantes, sobre los registros de actividad del resto del sistema y sus servicios.
Por ejemplo, en el archivo /var/log/auth.log encontraremos logs de autenticación y seguridad.
En /var/log/syslog tendremos todos los registros del sistema.
En /var/log/apache2/* encontraremos los archivos de log de accesos y errores de sitios cargados en nuestro servidor web.
Por ejemplo, también tenemos /var/log/mail.log con los mensajes de eventos de nuestro servidor de correos.
Estos logs son manejados por un daemon que hace las veces de implementación del protocolo de syslog, y que en Debian, por default en la versión 7 «Wheezy» es rsyslog, que detallaremos en algún otro artículo.
Conociendo al fabricante de nuestro equipo
En nuestro Linux además poseemos algunos comandos para acceder a los datos de fabricante, serial, etc, de nuestro hardware.
El comando dmidecode nos muestra muchísima información detallada, que podremos guardar en algún archivo de texto para facilitarnos el acceso:
[die@debian ~]$ sudo dmidecode # dmidecode 2.12 SMBIOS 2.6 present. 31 structures occupying 1363 bytes. Table at 0x000F0760. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: American Megatrends Inc. Version: 0401 Release Date: 12/30/2010 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 1024 kB Characteristics: ISA is supported PCI is supported PNP is supported APM is supported ...
De esta información podremos extraer algunos datos interesantes:
[die@debian ~]$ sudo dmidecode -s system-manufacturer ASUSTeK Computer INC. [die@debian ~]$ sudo dmidecode -s system-product-name 1215P [die@debian ~]$ sudo dmidecode -s system-version x.x [die@debian ~]$ sudo dmidecode -s system-serial-number B2OAAS041665
2 comentarios
joaquin · 6 octubre, 2016 a las 20:04
screenfetch
inxi -Fz
Diego Córdoba · 6 octubre, 2016 a las 20:21
Excelente! Gracias!
Los comentarios están cerrados.