¿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
Este comando nos mostrará los dispositivos usb que disponga nuestro ordenador, por ejemplo:
[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
También disponemos del modificador -v
o --verbose
para usa salida más detallada:
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
Este comando es una forma simple de mostrar el contenido del archivo /proc/modules
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, por ejemplo, rsyslog, aunque muchas distros modernas, basadas en systemd, hacen uso de journalctl.
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
Espero les resulte interesante el post!
Hasta la próxima!
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.