LPIC 101.1 Determinar y configurar el hardware del sistema

Empezamos ya con la primera de las lecciones del estudio de la LPIC. Si bien no quisiera empezar sin hacer un pequeño disclaimer y es que no soy un formador ni ningún experto si no que soy un estudiante más que tiene la intención de ir escribiendo aquí lo aprendido, por tanto si véis errores os animo a reportármelos para así poder corregirlos y que todo el mundo aprender sin problemas. Y dicho esto comencemos a estudiar siguiendo el guión del libro que estoy siguiendo el de o’reilly

Peso:

Este apartado tiene un peso de 2 sobre 4.

Comandos y ficheros útiles

Básicamente tenemos 2 grupos de comandos, en un primer lugar los ls* que lo que hacen es listar los dispositivos y el resto que sirven para modificar la configuración de estos. Lo mejor es que le echéis una ojeada a las páginas man (enlazadas más arriba) y que trasteeis los comandos en vuestras máquinas del laboratorio.

Introducción:

Hoy vamos a estudiar la parte del hardware que en muchos casos es la gran olvidada. Le pinchamos algo nuevo a nuestro servidor y que ocurre. En sistemas de escritorio estamos acostumbrados a cargar unos drivers en el caso de Windows o no hacer nada en MacOS. Linux ha avanzado una barbaridad en esto y en muchos casos funciona todo sin problemas. Si bien siendo administradores de un sistema linux debemos ser capaces de podemos detectar y configurar hardware de forma manual y es lo que aprenderemos a hacer hoy.

BIOS:

Comenzamos desde lo más bajo la BIOS. Esto no esta directamente relacionado con el sistema operativo ya que depende del hardware y por tanto dependerá de cada ordenador y cada fabricante, pero para este curso se requieren unos conocimientos generales básicos:

Fecha y hora:
Una de las labores de la bios es controlar la fecha y la hora y gracias a una pila en la placa mantener esta hora y fecha al día gracias a una pila. Esta parte se relaciona con el sistema operativo ya que este último es capaz de cambiar la hora y la fecha de dicha BIOS. Más adelante estudiaremos como mantener esta fecha al día gracias al servicio NTPD.

Discos y sistemas de arranque:
Otra de las cosas que podemos hacer en la BIOS es elegir el orden en el que buscará dispositivos de arranque el ordenador. Es decir que busque algo de lo que arrancar primero desde el ordenador, desde el disco duro o desde un USB. Esto guarda cierta relación los boot loaders que estudiaremos más adelante (LILO y GRUB) y también conviene que si no sabéis lo que es es el MBR (Master Boot Record). También conviene conocer las posibilidades de arranque desde red de ciertas placas base.

Usando el filesystem /proc:

En el directorio proc tendremos de forma estructurada todo el hardware que hemos ido instalando así como su configuración. Podremos usarlo por tanto para detectar problemas de configuración de hardware. Es recomendable que os perdais un rato en el directorio que contine información tan interesante a nivel de hw como un listado de las interrupciones, los filesystems, el dma, el estado de la cpu y un largo etcétera.

USB:

En los últimos tiempos el USB se va ha convertido en un dispositivo omnipresente en casi cualquier ordenador. Si bien es cierto que en entornos de servidor no son tan utilizados en entornos de escritorio nos las veremos tarde o temprano con alguno de estos dispositivos. Veamos como podemos gestionarlos en linux.

USB Topology
La topología USB se organiza por agrupadores (hub) desde los cuales cuelgan dispositivos. Para listar los dispositivos USB conectados usaremos el comando lsusb. Si nos interesa ver una visión más gráfica de como cuelga cada dispositivo de cada concentrador lsusb -t nos será de gran utilidad.

Controladores USB:
Más a nivel de hw los controladores se agrupan en tres tipos que son:

  • Open Host Controller Interface (OHCI) -> USB 1.1 (12Mbps.)
  • Universal Host Controller Interface (UHCI) -> USB 1.1 (12Mbps.)
  • Enhanced Host Controller Interface (EHCI) -> USB 2.0 (480Mbps.)

Para poder usar la velocidad de los dispositivos USB 2.0 es necesario que nuestra controladora sea USB 2.0, si bien cualquier ordenador actual la tiene y es lo que se viene usando hoy en día. La documentación no esta actualizada aún a los nuevos estadares de USB 3.0.

Dispositivos USB:
Hay distintos tipos de dispositivos USB, en realidad nada que no conozcamos hasta ahora, que si teclados, ratones, micrófonos, discos duros, tarjetas de sonido, impresoras… No explican mucha novedad al respecto.

Drivers USB:
A partir de la rama 2.3.x del kernel el usb fue soportado y a posteriore se añadió en las versiones 2.2.x a partir de la versión 2.2.18. Los drivers son de tres categorías:

  • Drivers de controlador host
  • Class drivers: Los dispositivos USB en si hid.0, usb-storage.o (para los discos duros), acm.o (para dispositivos de comunicación), printer.o y audio.o

  • Drivers de otros dispositivos: resto de dispositivos más concretos, que si una webcam de un fabricante o lo que sea. De esto cada fabricante saca sus propios drivers ya que no son standar.

Como punto interesante decir que el soporte usb en linux funciona por capas, desde las capas más standar (usbcore.o) sobre lo que se van añadiendo. Podremos ver los modulos que tenemos cargados en /proc/modules o haciendo un lsmod

USB Hotplug
Por supuesto que el hotplug también existe en linux. Para cargar drivers genéricos en linux se usa /sbin/hotplug si bien deberemos activar su soporte en el kernel (hoy en día viene activado por defecto en todos los kernels actuales)
.

Conociendo el hw instalado:

Para conocer este hardware son útiles estos comandos: lsmod, lsdev, lspci y lsusb. En realidad os recomiendo que vayais a las páginas man a aprender para que sirven y como funcionan estos comandos. Una nota importante es que en debian para tener lsdev deberéis instalar el paquete “procinfo”. Tanto para lspci y lsusb es interesante la opción -t para mostrarnos en forma de arbol viendo de que controlador depende cada dispositivo.

Manipulando los módulos:

Los modulos en linux se enlazan dinámicamente, normalmente esta gestión la hará el kernel el solito, pero cuando falle nos tocará pelearnos con el tema y aquí es cuando nos tocará pelearnos con esto. Podremos insertar modulos manualmente con insmod, rmmod es lo contrario, descarga un modulo manualmente. Por último modinfo nos da información de un módulo (que esperábais? :P) Modprobe es interesante, nos permite cargar modulos con funcionalidades complementarias que insmod no tiene. Al ser un comando algo más completo os invito a mirar su página de ayuda y a pelearos un rato con el ya que es un comando que se usa bastante a menudo.

Device Management Definitions

Y para terminar la lección de hoy este apartado que al menos en el libro de o’reilly se toca muy de refilón. nos habla de sysfs y de /sys de udev, de messagebus, /et/udev o D-Bus pero poco nos cuenta en realidad más bien solo lo nombra de pasado. Dejo como tarea personal investigar el tema más allá de lo que cuenta el libro ya que lo encuentro incompleto.

8 comentarios en “LPIC 101.1 Determinar y configurar el hardware del sistema

  1. Buenas, me gustan mucho estos tutoriales, pero si me permites un consejo:
    ¿Podrías poner una etiqueta concreta para los diferentes posts del LPIC?
    Como por ejemplo “LPIC”, y que de esta forma al entrar en la etiqueta aparezcan todos los posts que escribas del tutorial y no haga falta buscarlos uno a uno.
    Felicidades por el blog, es muy bueno 😉

Los comentarios están cerrados.