ArchiTecnologia

Aprendizaje abierto. Conocimiento libre.

ArchiTecnologia
CertificacionesCompTIALinux FoundationLPI

LPIC-1 101.1: information gathering y manipulación de hardware

Cerrarmos el ciclo de LPIC-1 101.1 con esta otra parte con algunas interesantes herramientas que deberías dominar para obtener información de tus dispositivos de hardware y también para manipularlos. Con eso terminamos el Tema 101.1 dedicado a obtener información sobre el hardware que compone la máquina y su configuración básica.

Recapitulemos un poco… Ya hemos realizado una introducción sobre todo lo que necesitabas saber para acceder a los exámenes y conseguir las certificaciones de LPI. Después comenzamos con la primera parte del LPIC-1 Tema 101.1 sobre dispositivos, y más tarde la segunda parte del LPIC-1 Tema 101.1 sobre la interfaz /sys y los sistemas udev y dbus. Y ahora, con esta tercera parte terminamos con la introducción sobre las herramientas relacionadas con el hardware.

Herramientas y utilidades

Ya dispones de gran cantidad de opciones para obtener información y manipular dispositivos de hardware en tu sistema, sin necesidad de instalar programas adicionales. Ya deberías saber a estas alturas que los dispositivos son ficheros, y por tanto todas las herramientas para gestionar ficheros son útiles para los dispositivos de /dev. A ellas hay que agregar otras adicionales que se encuentran ya preinstaladas, e incluso algunas que podemos agregar instalando paquetes adicionales.

En cuanto a las básicas que son las que se tratan en LPIC, te propongo echarle un ojo a los siguientes ejemplos prácticos.

Me gustaría que siempre tengas este blog abierto a un lado de tu pantalla y en el otro lado un terminal donde ir ejecutando los comandos que muestro o entrando en las rutas citadas. Creo que así será mucho mejor para tu aprendizaje que simplemente limitarte a leer…

lspci y setpci

Muestra información sobre dispositivos conectados a un bus PCI o aquellas que Linux trata también como tales (IDE/SATA, AGP, PCI Express, adaptadores y controladores integrados, etc.):

lspci
lspci | grep vga
man lspci

En cuanto a setpci, lo que hace es configurar dispositivos PCI:

*Usa la opción -D para que simplemente se simule la acción, pero no escribir nada en los registros de configuración. Te lo aconsejo si no sabes bien lo que estás haciendo…

man setpci
setpci –d *:* latency_timer=40
setpci –s 0 device_id vendor_id
setpci –s 0:1.7 3c.l=2,5,7
man setpci

Los comandos anteriores lo que hacen respectivamente es:

  • Muestra el manual de setpci
  • Cambia la latencia a 64 (40 en hexadecimal) para todos los dispositivos PCI.
  • Lista los IDs de dispositivos en el slot 0
  • Escribir el valor 2, 5 y 7 tipo longword en los registros 3c, 3d y 3e respectivamente para el dispositivo colocado en el bus 0, slot 1 y función 7.

lsusb

Muestra información sobre los dispositivos USB tan populares en la actualidad. Sin opciones verás una lista de todos los controladores USB disponibles y si están usados o no. Puedes realizar pruebas ejecutando varias veces la siguiente órden y conectando o desconectando dispositivos de tu equipo, o especificar un dispositivo concreto usando el nº_bus:nº_dispositivo:

lsusb
lsusb -s 002:003

lsdev

También existe este otro comando (incluido en el paquete procinfo) para listar dispositivos del sistema, los que están en /dev, es decir, sobre el hardware instalado. Por ejemplo:

#Mostrar información sobre el hardware
lsdev

#También puedes usar opciones como -t clase, -s subclase, -t tipo, para seleccionar subtipos de dispositivos concretos

#Más información
man lsdev

Otras

Existen otras herramientas que te serán útil para obtener información valiosa del hardware:

Obtener información sobre el sistema operativo, versión del kernel, arquitectura, etc:

#Información general
uname

#Toda la información
uname -a

#Solo del kernel
uname -s

#La máquina
uname -m

#Sobre el procesador o arquitectura
uname -p

#La plataforma de hardware
uname -i

#Nonmbre del sistema operativo
uname -o

Mostrar la cantidad de memoria libre y usada con free en megas y gigas:

free -m
free -g
man free

Arroja información sobre la memoria virtual del sistema con vmstat:

vmstat
man vmstat

Visualizar información sobre las particiones de nuestro sistema, su tamaño, capacidad disponible y utilizada con df:

df -h

Conseguir información detallada de nuestro hardware con lshw, mostrarla en formato HTML y redireccionarla a un fichero para su análisis posterior, y el uso de clases para lanzar solo información específica sobre un determinado dispositivo (CPU, RAM, disco duro, red, sonido…)

lshw
lshw -html > hardware.html
lshw -C processor
lshw -C memory
lshw -C network
lshw -C sound
man lshw

lscpu coge la información de /proc/cpuinfo que tratamos en el primer artículo sobre LPIC-1 101.1. ¿Recuerdas?

lscpu
man lscpu

Existe una herramienta creada por IBM y poco conocida relacionada con la anterior, ya que permite cambiar ciertos parámetros de la CPU en sistemas multiprocesador. Se llama chcpu:, por ejemplo, con la opción -d se puede deshabilitar y con -e habilitar CPUs, en el ejemplo se habilita la CPU 0, CPU 1, CPU 2, CPU 3, CPU4 y CPU 8:

chcpu -d 0,8 1-4
man chcpu

dmidecode muestra información leyendo la tabla SMBIOS o DMI. Puedes obtener toda la información o filtrar solo alguna concreta con la opción -t (segun tipo específicado) o -s:

sudo dmidecode
sudo dmidecode -t 4
sudo dmidecode -s system-serial-number
man dmidecode

Utilidades para trabajar con los módulos del kernel

Los módulos los describiremos con más detenimiento más adelante, pero ahora solamente quiero que entiendas que un módulo es un controlador o driver, y por tanto, si actuamos sobre ellos podremos afectar a la compatibilidad de los dispositivos de hardware del sistema.

Linux emplea un framework DKMS (Dynamic Kernel Module Support). Un framework usado por los módulos Linux que no residen dentro del árbol fuente del kernel, es decir, aquellos no esenciales para el arranque que se sacan fuera para no crear una imagen del kernel demasiado pesada. De esa forma, al instalar un nuevo kernel, se pueden reconstruir los módulos para que estén disponibles de forma inmediata.

lsmod

Con lsmod puedes listar los módulos del kernel y ver su estado:

lsmod

La información la extrae de /proc/modules y te puedes encontrar una primera columna Module con elnombre del módulo, su tamaño (Size), y el recuento de quién lo usa (Used by). Si alguno está marcado como unused significa que no está siendo usado y si está marcado como autoclean significa que el módulo será descargado de forma automática por el kernel si no es necesario.

modinfo

Si conoces el nombre de un módulo podrás conocer información detallada sobre él con modinfo. Por ejemplo, sobre el módulo video y drm:

modinfo drm
modinfo video

Puedes usar la opción -k para especificar solo módulos de una versión de kernel concreta:

modinfo -k 4.4.0-21-generic video

O filtrar por la información filtrada por campo, en este caso, solo el nombre del fichero del módulo para vídeo:

modinfo -F filename video

modprobe

Puede añadir o eliminar módulos del kernel. Cogerá información y opciones de los ficheros de configuración, y si existen dependencias las resuelve de forma automática haciendo uso de los ficheros de configuración y modules.dep. Ejemplo:

modprobe vmhgfs

Puedes usar opciones como -n para simular la inserción, -f para forzar la carga aunque no sea compatible con la versión actual (podría generar problemas de inestabilidad, etc.), elimina un módulo indicado con -r, lista las opciones disponibles con -l, muestra las dependencias de un módulo -D, etc. Por ejemplo:

modprobe -D cdrom
man modprobe

insmod

Igual al anterior solo que no resuelve dependencias, sino que se exige que los módulos de los que depende el módulo que queremos cargar estén ya cargados para que funcione. Si ponemos el ejemplo del módulo para la unidad óptica lo cargaríamos con:

insmod /lib/modules/linux-3.11/kernel/drivers/cdrom/cdrom.ko

rmmod

Es una herramienta para descargar o eliminar módulos cargados. Es decir, similar a modprobe -r, pero en este caso no se descargan los módulos de los que depende el módulo que tratamos de eliminar, solo se elimina el que indicamos. Ejemplo para eliminar un módulo de cdrom y forzar la eliminación en caso de que lo primero falle:

rmmod cdrom
rmmod -f cdrom

Una opción menos extrema para evitar eliminar un módulo que está ya en funcionamiento sería usar la opción -w, que devuelve error si el módulo está en uso y no lo eliminaría hasta que esté desocupado:

rmmod -w ac97_bus

depmod

Analiza el directorio de módulos y actualiza el árbol de dependencias para generar modules.dep y el mapa de ficheros necesarios para manejar las dependencias. Si se usa sin opciones, o con la opción -a, reconstruye el fichero modules.dep para los módulos actuales:

depmod
depmod -a

Con -w advierte de dependencias duplicadas, alias, versiones, etc.

Recuerda que si quieres explorar los módulos de tu sistema, puedes dirigirte a /lib/modules/<linux-kernel-versión>.

Antes de pasar al siguiente artículo sobre LPIC-1 101.2 en el que se analizará el proceso de arranque, publicaré otros artículos sobre otras temáticas para no hacerlo todo tan monótono…

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

2 thoughts on “LPIC-1 101.1: information gathering y manipulación de hardware

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar