• No se han encontrado resultados

Linux Avanzado Tema 10: Almacenamiento Dinámico

N/A
N/A
Protected

Academic year: 2021

Share "Linux Avanzado Tema 10: Almacenamiento Dinámico"

Copied!
5
0
0

Texto completo

(1)

Linux Avanzado

Tema 10: Almacenamiento Dinámico

Agregado de hardware nuevo

Sobre el hardware

Linux, en especial sus últimas versiones, cuenta con una capacidad increíblemente robusta y amplia para utilizar una gran variedad de dispositivos de hardware. En general, usted debe tener en cuenta dos niveles de soporte al momento de brindar soporte para este hardware. El primer nivel involucra el soporte de un dispositivo a un nivel básico del sistema. Casi siempre, esto se hace cargando los módulos kernel apropiados para su dispositivo de hardware.

El segundo nivel involucra algunos dispositivos que necesitan más o menos soporte exclusivo del subsistema X11R6. Generalmente, se usa XFree86 o X.Org. Es muy raro que se use el subsistema comercial X11, pero este tutorial no discute esto.

El soporte para las principales categorías de dispositivos que se pueden intercambiar sin necesidad de apagar el sistema (como, por ejemplo, aquellos que usan interfaces PCMCIA o USB) se discute en las secciones específicas que tratan estos temas y figuran a continuación.

Sobre X11

Un nota rápida: X.Org es esencialmente el proyecto sucesor de XFree86 (técnicamente, una bifurcación). Mientras que XFree86 todavía no dejó de usarse oficialmente, el soporte de casi todas las distribuciones pasó a X.Org debido a cuestiones relativas a las licencias. Afortunadamente, con la excepción del leve cambio de nombre de algunos archivos de configuración, el código base inicial para ambas bifurcaciones es casi el mismo. Es más probable que algunas nuevas características especiales sólo se soporten en X.Org.

X11R6 es un sistema para realizar la presentación (en red) de aplicaciones gráficas en la estación de trabajo de un usuario. Quizá de manera contraintuitiva, un "servidor X" es la máquina física con la que un usuario interactúa concretamente usando el teclado, el mouse y los dispositivos similares, la placa de video, el monitor, etc. Un "cliente X" es la máquina física que dedica tiempo, espacio en disco y otros recursos de no presentación del CPU para ejecutar una aplicación. En muchos o en la mayoría de los sistemas Linux, el servidor X y el cliente X son la mismísima máquina física y se usa un canal de comunicación local muy eficiente para que una aplicación se comunique con los dispositivos de E/S del usuario.

Un servidor X (como, por ejemplo, X.Org) debe ofrecer soporte de dispositivos para los dispositivos de E/S con los que un usuario interactuará con una aplicación. Sorprendentemente, cuando se presenta alguna dificultad, la misma está relacionada con la configuración de las placas de video y los monitores. Afortunadamente, esta dificultad ha disminuido en las últimas versiones de X.Org / XFree86 gracias a una detección mucho más automática que se realiza de manera exitosa. Técnicamente, un servidor X también debe soportar dispositivos de entrada (como, por ejemplo, el teclado y el mouse), lo que no suele ser algo complicado debido a que, hoy en día, éstas son interfaces bien estandarizadas. La aplicación cliente X se ocupa de todo lo demás (es decir, el acceso al disco, la memoria, las interfaces de red, las impresoras, los dispositivos especiales, como los escáner, etc.), generalmente por el kernel Linux subyacente.

Soporte del dispositivo del kernel

Casi todo lo que usted necesita saber sobre el soporte de dispositivos en el kernel Linux se resume en encontrar, compilar y cargar los módulos kernel adecuados.

Para revisar los módulos kernel, las principales herramientas que necesita un administrador de sistemas son lsmod, insmod y modprobe. También pueden llegar a necesitar rmmod, aunque no es tan importante como las herramientas anteriores. lsmod, insmod y rmmod son herramientas de bajo nivel para listar, insertar y eliminar (respectivamente) módulos kernel para un kernel Linux que se esté ejecutando. modprobe realiza estas mismas funciones a un nivel más alto, examinando las dependencias y, luego de esto, realizando llamadas adecuadas a insmod y a rmmod de manera oculta.

(2)

Examen de los dispositivos de hardware

Varias utilidades resultan muy valiosas para estudiar qué hardware usted tiene disponible en realidad. La herramienta lspci le ofrece información detallada sobre dispositivos PCI localizables (incluso aquellos en buses PCMCIA o USB en muchos casos). De igual forma, setpci puede configurar dispositivos en buses PCI. lspnp presenta una lista de recursos y dispositivos plug-and-play del dispositivo BIOS. De forma similar, lsusb examina los dispositivos USB (y cuenta con una setpnp para modificar configuraciones).

Configuración de un servidor X11 (primera parte)

Básicamente, X.Org (o XFree86) incluye una gran cantidad de drivers de video y otros drivers periféricos. Usted simplemente tiene que elegir los correctos. Finalmente, la configuración para un servidor X se encuentra en un archivo bastante detallado y algo enigmático (/etc/X11/xorg.conf o xfree86.conf). Algunas utilidades estándar se pueden usar para realizar una modificación más amigable de este archivo. De todas formas, cualquier editor de texto funciona bien. Algunos front-ends incluidos con X.Org incluyen xorgcfg para la configuración gráfica (asumiendo que funciona lo suficientemente bien como para usarlo) y xorgconfig para una herramienta de configuración basada en textos. Muchas distribuciones Linux incluyen front-ends más amigables.

La herramienta SuperProbe suele resultar útil para detectar el modelo de su placa de video. Usted también puede consultar la base de datos /usr/X11R6/lib/X11/Cards para obtener información detallada sobre las placas de video soportadas.

Configuración de un servidor X11 (segunda parte)

Dentro del archivo de configuración /etc/X11/xorg.conf, usted debería crear una serie de bloques "Section" ... "EndSection" (cada uno de los que define varios detalles y opciones sobre un dispositivo en particular). Estos nombres de sección incluyen lo siguiente:

* Files: File pathnames * ServerFlags: Server flags

* Module: Dynamic module loading * InputDevice: Input device description * Device: Graphics device description * VideoAdaptor: Xv video adaptor description * Monitor: Monitor description

* Modes: Video modes descriptions * Screen: Screen configuration * ServerLayout: Overall layout

* DRI: DRI-specific configuration * Vendor: Vendor-specific configuration

Configuración de un servidor X11 (tercera parte)

Entre las secciones, Screen funciona como una configuración maestra para el sistema de visualización. Por ejemplo, usted puede definir varias secciones Monitor, pero sólo puede seleccionar aquella que se utiliza de la siguiente manera:

Section "Screen"

Identifier "Default Screen" Device "My Video Card" Monitor "Current Monitor" DefaultDepth 24

SubSection "Display: Depth 24

(3)

La sección denominada ServerLayout es la verdadera configuración "maestra", ya que se refiere tanto a la sección Screenque se debe usar como a varias secciones InputDevice. En caso de que tenga algún problema, casi siempre se relacionará con la selección del Device o el Monitor correcto. Afortunadamente, hoy en día los monitores DPMS suelen obviar la necesidad de configurar odiosas opciones de Modeline. En el pasado, usted debía localizar cronometrajes muy específicos en los índices de escaneo de sus monitores. Generalmente, en la actualidad, los DPMS hacen esto por usted.

Configuración de dispositivos PCMCIA

Sobre los dispositivos PCMCIA

A los dispositivos PCMCIA también se los suele denominar dispositivos PC-Card. Por lo general, se diseña a estos periféricos del tamaño de una tarjeta de crédito (en lo que se refiere a su ancho) para que sean transportables y se los pueda intercambiar sin necesidad de apagar el sistema con gran facilidad. Además, se los usa muchísimo en las notebooks. Sin embargo, algunas configuraciones de computadoras de escritorio o de servidores también cuentan con lectoras PCMCIA, que a veces se encuentran en un chasis externo conectado por medio de uno de varios buses disponibles (una placa PCI o ISA especial, un adaptador USB, etc.). Se han creado una gran cantidad de periféricos en formato PCMCIA, entre los que podemos incluir los siguiente: adaptadores inalámbricos y Ethernet, unidades de disco micro, unidades de disco flash, módems, adaptadores SCSI y otros dispositivos para propósitos especiales.

Técnicamente, una interfaz PCMCIA es un nivel que se usa para conectarse a un bus ISA o PCI subyacente. Mayormente, la traducción es transparente (ya que se usarán los mismos módulos kernel o las demás herramientas que se comunican con un dispositivo ISA o PCI para gestionar el mismo protocolo provisto a través del dispositivo PCMCIA). El único problema real que se presenta con los dispositivos PCMCIA es el reconocimiento del evento de inserción y del tipo de placa cuyos drivers se deberían cargar.

Hoy en día, el empaquetamiento de periféricos PCMCIA queda en segundo plano debido a la existencia de los dispositivos USB y / o Firewire. Mientras que los dispositivos PCMCIA son un poco más convenientes por cuestiones físicas (generalmente, las placas van dentro del chasis de la máquina), los dispositivos USB son más universales para la mayoría de las máquinas. Como resultado de esto, es posible que muchos dispositivos empaquetados como PCMCIA en el pasado ahora se empaqueten como dispositivos USB de estilo "dongle". Estos dispositivos están mucho más disponibles en las bocas de expendio minoristas.

Reconocimiento de un dispositivo PCMCIA (primera parte)

En los kernels modernos (versiones 2.4 y posteriores), el soporte de dispositivos PCMCIA está disponible como un módulo kernel. Las distribuciones modernas incluirán este soporte. Pero si usted compila un kernel personalizado, incluya las siguientes opciones:

CONFIG_HOTPLUG, CONFIG_PCMCIA y CONFIG_CARDBUS. El mismo tipo de soporte solía estar disponible de manera independiente en el paquete pcmcia-cs.

Los módulos pcmcia_core y pcmcia soportan la carga de dispositivos PCMCIA. yenta_socket también se suele cargar para soportar la interfaz CardBus (PCI sobre PCMCIA):

% lsmod | egrep '(yenta)|(pcmcia)' pcmcia 21380 3 atmel_cs yenta_socket 19584 1

(4)

Luego de insertar una placa en una ranura PCMCIA, el daemon cardmgr busca una placa en la base de datos /etc/pcmcia/config y, luego de esto, carga los drivers de soporte adecuados según lo que sea necesario.

Reconocimiento de un dispositivo PCMCIA (segunda parte)

Observemos cómo ocurre el reconocimiento de un dispositivo PCMCIA. Yo procedí a insertar una placa en una ranura PCMCIA de una laptop con Linux y con el módulo kernel de soporte que mencionamos con anterioridad. Ahora, puedo usar la herramienta cardctl para ver la información provista por este periférico:

% cardctl ident Socket 0:

product info: "Belkin", "11Mbps-Wireless-Notebook-Network-Adapter" manfid: 0x01bf, 0x3302

function: 6 (network)

Esta información es provista por el módulo kernel pcmcia_core mediante la consulta de la placa física. Una vez que la identificación está disponible, cardmgr escanea la base de datos para descubrir qué driver(s) se debe(n) cargar. A veces, es algo como:

% grep -C 1 '0x01bf,0x3302' /etc/pcmcia/config card "Belkin FSD6020 v2"

manfid 0x01bf,0x3302 bind "atmel_cs"

En este caso, deseamos que el módulo kernel atmel_cs soporte la interfaz inalámbrica que ofrece esta placa. Usted puede ver qué se cargó exactamente observando /var/lib/pcmcia/stab o /var/run/stab (según su sistema):

% cat /var/run/stab

Socket 0: Belkin FSD6020 v2

0 network atmel_cs 0 eth2

Depuración de errores de un dispositivo PCMCIA

En el ejemplo anterior, todo funcionó perfectamente. Se reconoció la placa, se cargaron los drivers y todas las capacidades están listas para usar. Eso ocurre en el mejor de los casos. Si las cosas no funcionan tan bien, es probable que no pueda encontrar el driver que debe cargar.

Si está completamente seguro de que su dispositivo PCMCIA puede usar un driver existente (por ejemplo, si sabe que es compatible con otro chipset), usted puede ejecutar insmod manualmente para cargar el módulo kernel apropiado. En el caso de que use esta placa en repetidas ocasiones, usted puede editar /etc/pcmcia/config de manera tal que se brinde soporte para su placa (indicando el driver necesario). Sin embargo, suele ser bastante difícil adivinar qué módulo es necesario (ya que usted debe asegurarse de que su placa realmente sea compatible con otra placa PCMCIA conocida).

La carga de dispositivos PCMCIA se puede personalizar con los scripts de configuración en /etc/pcmcia/. Cada uno de ellos tiene un nombre que está de acuerdo con la categoría de una función. Por ejemplo, cuando se carga una placa 802.11b como la del ejemplo anterior, se ejecuta el script /etc/pcmcia/wireless. Usted puede personalizar estos scripts si su dispositivo tiene requisitos especiales de configuración.

(5)

checking: eth2

/sbin/ifdown: interface eth2 not configured Changing scheme to 'foo'...

Ignoring unknown interface eth2=eth2. % cardctl scheme

Current scheme: 'foo'.

En este caso, no definí el esquema foo, pero en términos generales, si usted modifica un esquema, se intenta la reconfiguración del dispositivo. Es posible usar los esquemas en los scripts de configuración mediante el análisis de la variable $ADDRESS:

# in /etc/pcmcia/network.opts (called by /etc/pcmcia/network) case "$ADDRESS" in

work,*,*,*)

# definitions for network in work scheme ... ;;

default,*,*,*)

# definitions for network in default scheme ... ;;

esac

Por supuesto que usted también puede configurar los esquemas en los scripts de inicialización o mediante otros eventos disparadores (como, por ejemplo, en un trabajo cron, por medio de una interfaz gráfica de usuario, etc.).

Compilación y edición:

Ing. Sergio Aguilera. Facultad de Tecnología Informática. Universidad de Belgrano.

[email protected]

Referencias

Documento similar

Este parón o bloqueo de las ventas españolas al resto de la Comunidad contrasta sin em- bargo con la evolución interior de ese mismo mercado en cuan- to a la demanda de hortalizas.

Si usted tiene problemas de corazón, antecedentes de ataques cerebrales o piensa que puede tener riesgo de sufrirlos (por ejemplo tiene la tensión arterial alta, sufre diabetes,

Si usted tiene dos hijos/as que van a participar en el proceso de admisión de diferente enseñanza (por ejemplo, uno para Educación Infantil y otro para Educación Primaria),

Usted no debe usar VIGENCIAL si sabe que tiene alergia o reacción excesiva frente a cualquiera de las sustancias contenidas en este medicamento.. No aplicar

Si usted tiene problemas de corazón, antecedentes de ataques cerebrales o piensa que puede tener riesgo de sufrirlos (por ejemplo tiene la tensión arterial alta, sufre diabetes,

Debido a la calidad y el legado de nuestra compañía, los cuales se reflejan en nuestros pianos, elegir un instrumento hecho por Steinway & Sons tiende a ser una decisión

Como la formación en estas patologías tan heterogéneas (más de 8.000 ER, más del 80% de origen genético) es escasa en Atención Primaria, y dado que se trata de un colectivo

Si usted tiene problemas de corazón, antecedentes de ataques cerebrales o piensa que puede tener riesgo de sufrirlos (por ejemplo tiene la tensión arterial alta, sufre