Página siguiente Página anterior Índice general

4. Uso y características

4.1 Herramientas para configurar y monitorizar dispositivos PCMCIA

Si los módulos son todos cargados correctamente, la salida del comando lsmod debería verse como sigue, cuando no hay tarjetas insertadas:

  Module                  Size  Used by
  ds                      5640   2
  i82365                 15452   2
  pcmcia_core            30012   3  [ds i82365]

El registro del sistema deberá también incluir la salida del controlador del socket, describiendo el(los) controlador(es) del host encontrado(s) y el número de sockets detectados.

El demonio de configuración cardmgr

El demonio cardmgr es responsable de monitorizar los sockets PCMCIA, cargando los controladores cuando se necesita, y corriendo scripts a nivel de usuario en respuesta a las inserciones y extracciones de tarjetas. Graba sus acciones en el registro del sistema, y también usa pitidos para señalar cambios en el estado de las tarjetas. Los tonos de los pitidos indican el éxito o fracaso de un paso de la configuración en particular. Dos pitidos agudos indican que la tarjeta fue identificada y configurada correctamente. Un pitido agudo seguido de un pitido grave indica que la tarjeta fue identificada, pero no pudo ser configurada por alguna razón. Un pitido grave indica que la tarjeta no pudo ser identificada.

cardmgr registra información del dispositivo para cada socket en /var/run/stab

He aquí el contenido de un ejemplo de /var/run/stab:

       Socket 0: Adaptec APA-1460 SlimSCSI
       0       scsi    aha152x_cs      0       sda     8       0
       0       scsi    aha152x_cs      1       scd0    11      0
       Socket 1: Serial or Modem Card
       1       serial  serial_cs       0       ttyS1   5       65

Para las líneas que describen dispositivos, el primer campo es el socket, el segundo es la clase del dispositivo, el tercero es nombre del controlador, el cuarto se usa para numerar múltiples dispositivos asociados con el mismo controlador, el quinto es el nombre del dispositivo, y los dos campos finales son los números mayor y menor para este dispositivo (si es aplicable).

El demonio cardmgr configura tarjetas basadas en una base de datos de tipos de tarjetas conocidas almacenadas en /etc/pcmcia/config. Este archivo describe una variedad de controladores, describe cómo identificar esas tarjetas, y cual(es) controlador(es) pertenecen a cada tarjeta. El formato de este archivo se describe en la página del manual de pcmcia(5).

Las utilidades cardctl y cardinfo

El comando cardctl puede ser usado para comprobar el estado de un socket, o para ver cómo está configurado. También puede ser usado para alterar el estado de configuración de una tarjeta. He aquí un ejemplo de la salida del comando cardctl config:

  Socket 0:
    not configured
  Socket 1:
    Vcc = 5.0, Vpp1 = 0.0, Vpp2 = 0.0
    Card type is memory and I/O
    IRQ 3 is dynamic shared, level mode, enabled
    Speaker output is enabled
    Function 0:
      Config register base = 0x0800
        Option = 0x63, status = 0x08
      I/O window 1: 0x0280 to 0x02bf, auto sized
      I/O window 2: 0x02f8 to 0x02ff, 8 bit

O cardctl ident, para obtener información de la identificación de la tarjeta:

       Socket 0:
         no product info available
       Socket 1:
         product info: "LINKSYS", "PCMLM336", "A", "0040052D6400"
         manfid: 0x0143, 0xc0ab
         function: 0 (multifunction)

Los comandos cardctl suspend y cardctl resume pueden usarse para desactivar una tarjeta sin descargar sus controladores asociados. El comando cardctl reset intenta resetear y reconfigurar una tarjeta. cardctl insert y cardctl eject emulan las acciones realizadas cuando una tarjeta es insertada o expulsada, incluyendo la carga y descarga de los controladores, y configurando o desactivando los dispositivos.

Si está Vd. corriendo X, cardinfo produce de forma gráfica el estado actual de todos los sockets PCMCIA, similar en contenido a cardctl config. También proporciona una interfaz gráfica para la mayoría de las otras funciones de cardctl.

Inserción y extracción de tarjetas

En teoría, puede insertar y extraer tarjetas PCMCIA en cualquier momento. Sin embargo, es una buena idea no expulsar una tarjeta que está siendo utilizada por algún programa de aplicación. Los kernels anteriores al 1.1.77 solían congelarse cuando las tarjetas serie/módem eran expulsadas, aunque esto parece estar ya solucionado.

Servicios de Tarjetas y Administración Avanzada de Energía

Los servicios de tarjetas pueden ser compilados con soporte para APM (Advanced Power Management) (En castellano: Administración Avanzada de Energía), si configuró su kernel con soporte APM. APM está actualmente a cargo de Stephen Rothwell, Stephen.Rothwell@canb.auug.org.au. El demonio apmd es mantenido por Avery Pennarun, apenwarr@worldvisions.ca), con más información disponible en http://www.worldvisions.ca/~apenwarr/apmd/. Los módulos PCMCIA serán configurados automáticamente para APM si es detectada una versión compatible en el sistema.

Esté APM configurado o no, puede usar cardctl suspend antes de suspender su portátil, y cardctl resume después de «despertarlo», para apagar y reactivar sus tarjetas PCMCIA. No funcionará con un módem que esté en uso, porque el controlador serie no puede guardar y restablecer los parámetros operativos del módem.

APM parece ser inestable en algunos sistemas. Si experimenta problemas con APM y PCMCIA en su sistema, intente localizar el problema en un paquete u otro antes de informar de un bug.

Algunos controladores, notablemente los controladores PCMCIA SCSI, no pueden recuperarse de un ciclo de suspender/despertar. Cuando se usa una tarjeta PCMCIA SCSI, use siempre cardctl eject antes de suspender el sistema.

Apagado del sistema PCMCIA

Para descargar el paquete PCMCIA completo, invoque rc.pcmcia con:

        /etc/rc.d/rc.pcmcia stop

Este script tomará algunos segundos para ejecutarse, para darle tiempo a todos los controladores a desactivarse correctamente. Si un dispositivo está en uso actualmente, el proceso de desactivación será incompleto, y puede que algunos módulos del kernel no sean descargados. Para prevenir esto, use cardctl eject para desactivar todos los sockets antes de invocar rc.pcmcia. El estado de salida del comando cardctl indicará si alguno de los sockets no pudo ser desactivado.

4.2 Un vistazo a los scripts de configuración de PCMCIA

Cada dispositivo PCMCIA tiene una «clase» asociada que describe cómo debe ser configurado y manejado. Las clases están asociadas con los controladores de dispositivos en /etc/pcmcia/config. Actualmente hay cinco clases de dispositivos de E/S (red, SCSI, cdrom, disco, y serie) y dos clases de dispositivos de memoria (memoria y FTL). Para cada clase, hay dos scripts en /etc/pcmcia: un script principal de configuración (por ejemplo, /etc/pcmcia/scsi para dispositivos SCSI), y un script de opciones (por ejemplo, /etc/pcmcia/scsi.options). El script principal de un dispositivo será invocado para configurarlo cuando se inserte una tarjeta, y para desactivar el dispositivo cuando sea extraída. Para tarjetas con varios dispositivos asociados, el script será invocado para cada dispositivo.

Los scripts de configuración inician al extraer algo de información acerca del dispositivo de /var/run/stab. Cada script construye una «dirección de dispositivo», que únicamente describe el dispositivo que ha sido solicitado para configurar, en la variable de shell ADDRESS. Esto es pasado al script *.opts, el cual debe proporcionar información acerca de cómo debe ser configurado un dispositivo en esta dirección. Para algunos, la dirección del dispositivo es sólo el número de socket. Para otros, se incluye información extra que puede ser útil para decidir cómo configurar el dispositivo. Por ejemplo, los dispositivos de red pasan su dirección ethernet de hardware como parte de la dirección del dispositivo, así, el script network.opts puede usar esto para seleccionar diversas configuraciones.

La primera parte de todas las direcciones de dispositivos es el «esquema» PCMCIA actual. Ese parámetro es usado para soportar múltiples conjuntos de configuraciones de dispositivos basadas en una simple variable externa definida por el usuario. Una uso de los esquemas puede ser el tener un esquema de «casa», y un esquema de «trabajo», el cual puede incluir diferentes conjuntos de parámetros de configuración de red. El esquema actual se selecciona usando el comando cardctl scheme. Si no se define un esquema, por omisión se establece el esquema default.

Como regla general, cuando se configura Linux para un equipo portátil, los dispositivos PCMCIA deben ser configurados desde los scripts para dispositivos PCMCIA. No intente configurar un dispositivo PCMCIA de la misma forma en que configuraría un dispositivo conectado de forma permanente. No obstante, algunas distribuciones de Linux suministran paquetes PCMCIA que están relacionadas con las herramientas de configuración de dispositivos propios de la misma distribución. En ese caso, alguna de las siguientes secciones puede o no aplicar; idealmente, esto sería documentado por los encargados de la distribución.

4.3 Adaptadores de red PCMCIA

Las interfaces de red tipo ethernet normalmente tienen nombres como eth0, eth1, y así sucesivamente. Los adaptadores Token-Ring se manejan de forma similar, sin embargo, son llamadas comúnmente tr0, tr1 y así sucesivamente. El comando ifconfig se usa para ver o modificar el estado de una interface de red. Una peculiaridad de Linux es que las interfaces de red no tienen archivos de dispositivo correspondientes en /dev/, así que no se sorprenda si no los encuentra.

Cuando se detecta una tarjeta ethernet, le será asignado el primer nombre de interface que esté libre, normalmente eth0. cardmgr ejecutará el script /etc/pcmcia/network para configurar la interface, la cual normalmente lee las configuraciones de red de /etc/pcmcia/network.opts. Los scripts network, y network.opts serán ejecutados sólo cuando su tarjeta ethernet esté presente. Si su sistema tiene la facilidad de configuración de red automática, puede o no ser PCMCIA. Consulte la documentación de su distribución de Linux y la sección Notas acerca de distribuciones de Linux específicas para determinar si los dispositivos de red PCMCIA deben ser configurados con herramientas automáticas, o editando network.opts.

La dirección de dispositivo pasada a network.opts consiste en cuatro campos separados por comas: el esquema, el número de socket, la instancia de dispositivo, y la dirección ethernet de hardware de la tarjeta, La instancia de dispositivo es usada para numerar dispositivos para tarjetas que tienen varias interfaces de red, así que normalmente será 0. Si tiene varias tarjetas de red usadas para propósitos diferentes, una opción puede ser el configurar las tarjetas basadas en la posición del socket, como en:

       case "$ADDRESS" in
       *,0,*,*)
           # definiciones para tarjeta de red en el socket 0
           ;;
       *,1,*,*)
           # definiciones para tarjeta de red en el socket 1
           ;;
       esac

Alternatívamente, pueden ser configuradas usando su dirección de hardware, como en:

  case "$ADDRESS" in
  *,*,*,00:80:C8:76:00:B1)
      # definiciones para una tarjeta D-Link
      ;;
  *,*,*,08:00:5A:44:80:01)
      # definiciones para una tarjeta IBM
  esac

Parámetros de dispositivos de red

Los siguientes parámetros se pueden definir en network.opts:

IF_PORT

Especifica el tipo de transceptor ethernet, para tarjetas que no sean autodetectadas. Consulte man ifport para ver los nombres de los transceptores.

PUMP

Una opción booleana (y/n): indica si la dirección IP e información de rutado del host se puede obtener ya sea por BOOTP o DHCP, con el demonio pump.

BOOTP

Una opción booleana (y/n): indica si la dirección IP del host y su información de rutado se obtendrán usando el protocolo BOOTP, con bootpc.

DHCP

Un opción booleana (y/n): indica si la dirección IP del host y su información de rutado se obtendrán de un servidor DHCP, con dhcpcd.

IPADDR

La dirección IP para esta interface.

NETMASK, BROADCAST, NETWORK

Parámetros básicos de red: revise el COMO de red para más información.

GATEWAY

La dirección IP de una máquina pasarela para la subred de este host. Los paquetes con destinos hacia afuera de esta subred serán destinados a dicha pasarela.

DOMAIN

El nombre de dominio de la red local para este host, es usado al crear /etc/resolv.conf.

SEARCH

Una lista de búsqueda para búsqueda de nombres, es añadida a /etc/resolv.conf. DOMAIN y SEARCH son mutuamente exclusivos: revise man resolver para más información.

DNS_1,DNS_2,DNS_3

Nombres de host o direcciones IP para servidores de nombres para esta interface, para ser añadidos a /etc/resolv.conf

MOUNTS

Una lista de puntos de montaje NFS para ser montados por esta interface.

IPX_FRAME, IPX_NETNUM

Para redes IPX: el tipo de frame y número de red, pasado al comando ipx_interface.

Por ejemplo:

  case "$ADDRESS" in
  *,*,*,*)
      IF_PORT="10base2"
      BOOTP="n"
      IPADDR="10.0.0.1"
      NETMASK="255.255.255.0"
      NETWORK="10.0.0.0"
      BROADCAST="10.0.0.255"
      GATEWAY="10.0.0.1"
      DOMAIN="dominio.org"
      DNS_1="dns1.dominio.org"
      ;;
  esac

Para montar y desmontar automáticamente sistemas de archivos NFS, primero añada todos esos sistemas de archivos a /etc/fstab, incluyendo noauto en las opciones de montaje. En network.opts, liste los puntos de montaje de los sistemas de archivos en la variable MOUNTS. Es especialmente importante usar ya sea cardctl o cardinfo para apagar una tarjeta de red cuando NFS se encuentre activo. No es posible desmontar limpiamente los sistemas de archivos NFS si una tarjeta de red es símplemente expulsada sin precaución.

En adición a los parámetros usuales de configuración de red, el script network.opts puede especificar acciones extra a tomar después de que una interface es configurada, o antes de que se apague la interface. Si network.opts define una función de shell llamada start_fn, será invocada por el script de red después de que la interface sea configurada, y el nombre de interface se pasará a la función como su primer (y único) argumento. Similarmente, si es definido, stop_fn se invocará antes de apagar una interfaz.

El tipo de transceptor se puede seleccionar usando la configuración IF_PORT. Esto puede ser, ya sea un valor numérico como en las versiones anteriores de PCMCIA, o una palabra clave que identifique el tipo de transceptor. Todos los controladores de red están configurados por omisión para autodetectar la interface si es posible, o bien, utilizar 10baseT. El comando ifport se puede utilizar para comprobar el tipo de transceptor actual. Por ejemplo:

       # ifport eth0 10base2
       #
       # ifport eth0
       eth0    2 (10base2)

El controlador actual (3.0.10 o posterior) de 3c589 debe autodetectar rápidamente los cambios de transceptor en cualquier momento. Las primeras versiones del controlador 3x589 tenían un algoritmo de autodetección de transceptores algo lento y no muy amistoso. Para esas versiones, el cable de red apropiado debe ser conectado a la tarjeta cuando la tarjeta es configurada, o se puede forzar la autodetección con:

       ifconfig eth0 down up

Comentarios acerca de tarjetas específicas

Diagnóstico de problemas con adaptadores de red

4.4 Dispositivos serie PCMCIA y módems

Los dispositivos serie de Linux son gestionados por medio de los archivos de dispositivo especiales /dev/ttyS* y /dev/cua*. En los kernels pre-2.2 los dispositivos ttyS* eran para conexiones entrantes, como módems. El uso de dispositivos cua* se desaprueba en los kernels actuales, y se puede usar ttyS* para todas las aplicaciones. La configuración de un dispositivo serie se puede examinar y modificar con el comando setserial.

Cuando se detecta una tarjeta serie o módem, se le asignará el primer slot de dispositivo serie que se encuentre disponible. Este será usualmente /dev/ttyS1 (cua1) o /dev/ttyS2 (cua2), dependiendo del número de puertos serie que tenga. El dispositivo ttyS* es el que aparecerá en /var/run/stab. El script de opciones por omisión para dispositivos serie, /etc/pcmcia/serial.opts, enlazará el dispositivo a /dev/modem por conveniencia. Para los kernels pre-2.2, el enlace se hace al dispositivo cua*.

No intente usar /etc/rc.d/rc.serial para configurar un módem PCMCIA. Este script sólo debería ser utilizado para configurar dispositivos no extraíbles. Modifique /etc/pcmcia/serial.opts si quiere hacer algo especial para configurar su módem. No intente tampoco cambiar las configuraciones de E/S y puerto de un dispositivo serie utilizando setserial. Esto podría decir al controlador serie que busque al dispositivo en un lugar diferente, pero no cambiar cómo el hardware de la tarjeta está configurado actualmente. El script de configuración serie le permite especificar otras opciones para setserial, así como si se debe añadir una línea a /etc/inittab para este puerto.

La dirección del dispositivo pasada a serial.opts tiene tres campos separados por comas: el primero es el esquema, el segundo es el número de socket, y el tercero es la instancia del dispositivo. La instancia del dispositivo puede tomar varios valores para tarjetas que soporten múltiples puertos serie, pero para tarjetas de un sólo puerto, siempre será 0. Si comunmente usa más de un módem, puede especificar diferentes configuraciones basadas en la posición del socket, como en:

       case "$ADDRESS" in
       *,0,*)
           # Opciones para un modem en el socket 0
           LINK=/dev/modem0
           ;;
       *,1,*)
           # Opciones para un modem en el socket 1
           LINK=/dev/modem1
           ;;
       esac

Si un módem PCMCIA ya está configurado cuando Linux arranca, puede ser identificado incorrectamente como un puerto serie ordinario. Esto es inofensivo, sin embargo, cuando los controladores PCMCIA toman el control del módem, se le asignará un slot de dispositivo diferente. Por ello es mejor, ya sea analizar /var/run/stab o usar /dev/modem, en lugar de indicar que este módulo debe recargarse. Edite la entrada del dispositivo serie, de modo que se lea:

       device "serial_cs"
         class "serial" module "misc/serial", "serial_cs"

Parámetros de dispositivos serie

Los siguientes parámetros se pueden definir en serial.opts:

LINK

Especifica una ruta para un enlace simbólico a crear al dispositivo callout (para llamar hacia el exterior) (ejemplo, /dev/cua* para kernels pre-2.2 o /dev/ttyS* para kernels 2.2.x).

SERIAL_OPTS

Especifica las opciones que se pasan al comando setserial.

INITTAB

Si se especifica, se usará para añadir una entrada inittab para el dispositivo.

Por ejemplo:

       case "$ADDRESS" in
       *,*,*,*)
           LINK="/dev/modem"
           SERIAL_OPTS=""
           INITTAB="/sbin/getty"

Diagnóstico de problemas con dispositivos serie

4.5 Dispositivos PCMCIA de puerto paralelo

El controlador de puerto paralelo de Linux está estructurado por capas, así que varios tipos de dispositivos de alto nivel pueden compartir el mismo controlador de puerto de bajo nivel. Los dispositivos se gestionan a través de los archivos especiales de dispositivo /dev/lp*. La configuración de un dispositivo de impresora puede examinarse y modificarse con el comando tunelp.

El módulo parport_cs depende de los controladores parport y parport_pc, los cuales pueden ser compilados dentro del kernel o bien compilados como módulos. La estructura del controlador por capas significa que cualquiera de los controladores paralelos de alto nivel (tales como el controlador plip, el controlador de impresora, etc.) deben ser compilados como módulos. Estos controladores sólo reconocen dispositivos de puerto paralelo en el momento de iniciar el módulo, así que pueden cargarse después de que cualquier dispositivo paralelo PC Card sea configurado.

La dirección del dispositivo pasada a parport.opts tiene tres campos separados por comas: el primero es el esquema, el segundo es el número de socket, y el tercero es la instancia del dispositivo. La instancia del dispositivo puede tomar varios valores para tarjetas que soportan múltiples puertos paralelos, pero para tarjetas de un solo puerto, siempre será 0. Si usa habitualmente más de una tarjeta, necesitará especificar diferentes configuraciones basadas en la posición del socket, como en:

       case "$ADDRESS" in
       *,0,*)
           # Opciones para una tarjeta en el socket 0
           LINK=/dev/printer0
           ;;
       *,1,*)
           # Opciones para una tarjeta en el socket 1
           LINK=/dev/printer1
           ;;
       esac

Si configura el kernel para cargar el controlador básico de puerto paralelo como módulo, debe editar /etc/pcmcia/config para indicar qué módulos necesitan cargarse. Edite la entrada para el dispositivo paralelo de modo que se lea:

       device "parport_cs"
         class "parport" module "misc/parport", "misc/parport_pc", "parport_cs"

Parámetros de dispositivos paralelos

Los siguientes parámetros pueden especificarse en parport.opts:

LINK

Especifica la ruta del enlace simbólico a crear hacia el puerto de impresora.

LP_OPTS

Especifica las opciones a pasar al comando tunelp.

Por ejemplo:

       case "$ADDRESS" in
       *,*,*,*)
           LINK="/dev/printer"
           LP_OPTS=""

Diagnóstico de problemas con dispositivos de puertos paralelos

4.6 Adaptadores SCSI PCMCIA

Todos los controladores que dan soporte actualmente a tarjetas SCSI PCMCIA son trabajos basados en alguna de las siguientes tarjetas bus ISA: Qlogic, Adaptec AHA-152X, o Future Domain TMC-16x0. Los controladores PCMCIA son compilados enlazando parcialmente código específico PCMCIA (en qlogic_cs.c, toaster_cs.c, o fdomain_cs.c) con el controlador SCSI normal de Linux. Debido a las limitaciones en el modelo del controlador SCSI de Linux, sólo se soporta una tarjeta extraíble por controlador.

Cuando se detecta un nuevo adaptador SCSI, los controladores SCSI sondearán la presencia de dispositivos. Revise el registro del sistema para asegurar que los dispositivos sean detectado apropiadamente. Los nuevos dispositivos SCSI se asignarán a los primeros archivos de dispositivo SCSI disponibles. El primer disco SCSI será /dev/sda, la primera cinta SCSI será /dev/st0, y el primer CD-ROM será /dev/scd0.

En /var/run/stab se muestra una lista de los dispositivos conectados a este adaptador, y el script de configuración /etc/pcmcia/scsi se llamará una vez para cada dispositivo conectado, ya sea para configurar o apagar ese dispositivo. El script por omisión no toma ninguna acción para configurar dispositivos SCSI, pero desmontará apropiadamente los sistemas de archivos en dispositivos SCSI cuando se extraiga la tarjeta.

Las direcciones de dispositivo que se pasan a scsi.opts son complicadas, debido a la variedad de cosas que pueden conectarse a un adaptador SCSI. Las direcciones consisten de de seis o siete campos separados por comas: el esquema actual, el tipo de dispositivo, el número de socket, el canal SCSI, ID, y el número lógico de unidad, y opcionalmente, el número de partición. El tipo de dispositivo será sd para discos, st para cintas, sr para unidades de CD-ROM, y sg para dispositivos SCSI genéricos. Para la mayoría de configuraciones, la unidad lógica y el canal SCSI serán 0. Para unidades de disco con varias particiones, scsi.opts se llamará primero para toda la unidad, con direcciones de cinco campos. El script deberá establecer la variable PARTS una lista de particiones. Entonces, scsi.opts será llamado para cada partición, con las direcciones más largas, de siete campos.

Si su kernel no tiene un controlador de alto nivel (disco, cinta, etc) para un dispositivo SCSI en particular, entonces no será configurado por los controladores PCMCIA. Como efecto lateral, el nombre del dispositivo en /var/run/stab será algo como sd#nnnn donde nnnn es un número hexadecimal de cuatro dígitos. Esto pasa cuando cardmgr no puede traducir una ID de un dispositivo SCSI a su nombre de dispositivo correspondiente en Linux.

Es posible modularizar los controladores SCSI de alto nivel para que puedan cargarse según demanda. Para hacerlo, necesita editar /etc/pcmcia/config para decirle a cardmgr qué módulos extra necesitan ser cargados cuando sea configurado su adaptador. Por ejemplo:

       device "aha152x_cs"
         class "scsi" module "scsi/scsi_mod", "scsi/sd_mod", "aha152x_cs"

Especificaría que se cargase el módulo principal SCSI y el módulo controlador de disco antes de cargar el módulo controlador PCMCIA normal. El script Configure de PCMCIA no detectará automáticamente módulos SCSI modularizados, así que necesitará usar la opción de configuración manual para habilitar el soporte SCSI.

Encienda siempre los dispositivos SCSI antes de encender su portátil, o antes de insertar la tarjeta adaptadora, para que el bus SCSI esté listo cuando el adaptador se configure. También hay que ser muy cuidadoso al expulsar un adaptador SCSI. Asegúrese que todos los dispositivos SCSI asociados sean desmontados y cerrados antes de expulsar la tarjeta. La mejor forma de asegurar esto es usar cardctl o cardinfo para solicitar que se desactive la tarjeta antes de expulsarla físicamente. Por ahora, todos los dispositivos SCSI deberán encenderse antes de conectar un adaptador SCSI, y deberán permanecer conectados hasta que desconecte el adaptador y/o apague su portátil.

Hay una complicación potencial cuando se usan tarjetas que no se presentan con adaptadores de bus ISA ordinarios. El bus SCSI transporta una señal termination power (corriente de terminación) que se necesita para que los terminadores pasivos SCSI ordinarios funcionen apropiadamente. Los adaptadores PCMCIA SCSI no suministran corriente de terminación, así que si se requiere, deberá proporcionarlo el dispositivo externo. Algunos dispositivos externos SCSI deben configurarse para suministrarlo. Otros, como el Iomega Zip y el Syquest EZ, usan terminadores activos que no dependen de ello. En algunos casos, puede ser necesario usar un bloque terminador especial como el APS SCSI Sentry 2, el cual tiene una fuente de alimentación externa. Cuando configure la entrada para el dispositivo SCSI, hágalo teniendo en cuenta si alguno de sus dispositivos requieren o pueden suministrar corriente de terminación o no.

Parámetros de dispositivos SCSI

Los siguientes parámetros pueden ser especificados en scsi.opts:

DO_FSTAB

Es una opción booleana (y/n): Especifica si se debe añadir una entrada /etc/fstab para este dispositivo.

DO_FSCK

Es una opción booleana (y/n): Especifica si se debe comprobar este dispositivo antes de ser montado, con fsck -Ta.

DO_MOUNT

Es una opción booleana (y/n): Especifica si este dispositivo debe montarse automáticamente al momento de insertar la tarjeta.

FSTYPE, OPTS, MOUNTPT

El tipo de sistema de archivos, opciones de montaje, y punto de montaje que se utilizarán para la entrada en fstab y/o para montar el dispositivo.

Por ejemplo, un script para configurar una unidad de disco en SCSI ID 3, con dos particiones, y un CD-ROM en SCSI ID 6:

  case "$ADDRESS" in
  *,sd,*,0,3,0)
      # Este dispositivo tiene dos particiones...
      PARTS="1 2"
      ;;
  *,sd,*,0,3,0,1)
      # Opciones para la particion 1:
      #  actualizar /etc/fstab, y montar un sistema de archivos ext2 en /usr1
      DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
      FSTYPE="ext2"
      OPTS=""
      MOUNTPT="/usr1"
      ;;
  *,sd,*,0,3,0,2)
      # Opciones para la partición 2:
      #  actualizar /etc/fstab, y montar un sistema de archivos MS-DOS en /usr2
      DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
      FSTYPE="msdos"
      OPTS=""
      MOUNTPT="/usr2"
      ;;
  *,sr,*,0,6,0)
      # Opciones para un CD-ROM en SCSI ID 6
      PARTS=""
      DO_FSTAB="y" ; DO_FSCK="n" ; DO_MOUNT="y"
      FSTYPE="iso9660"
      OPTS="ro"
      MOUNTPT="/cdrom"
      ;;
  esac

Comentarios acerca de tarjetas específicas

Diagnóstico de problemas con adaptadores SCSI

4.7 Tarjetas de memoria PCMCIA

El controlador memory_cs maneja todos los tipos de tarjetas de memoria, y también proporciona acceso directo al espacio de la dirección de memoria PCMCIA para tarjetas que tienen otras funciones. Cuando se carga, crea una combinación de dispositivos de caracteres y de bloques. Revise la página del manual del módulo para ver una descripción completa del esquema de nombres de estos dispositivos. Los dispositivos de bloques se usan para tener acceso a disco (creando y montando sistemas de archivos, etc.). Los dispositivos de caracteres son para lecturas en bruto (que no se procesan) que no se guardan en el buffer y son escritas en posiciones arbitrarias.

La dirección de dispositivo que se pasa a memory.opts consiste de dos campos: el esquema, y el número de socket. Las opciones se aplican a la primera partición de memoria común en la tarjeta correspondiente.

Algunas tarjetas de memoria antiguas, y la mayoría de las tarjetas de RAM simple estática, carecen de Card Information Structure, CIS (Estructura de Información de Tarjeta), que es el esquema que las tarjetas PCMCIA usan para identificarse a si mismas. Normalmente, cardmgr asumirá que una tarjeta que carece de CIS es una tarjeta de memoria simple, y cargará el controlador memory_cs. Por tanto, un efecto lateral es que otros tipos de tarjetas pueden detectarse erróneamente como tarjetas de memoria.

El controlador memory_cs usa un algoritmo heurístico para determinar la capacidad de esas tarjetas. Este algoritmo no funciona con tarjetas protegidas contra escritura, y puede cometer errores en algunos otros casos. Si una tarjeta se configura de forma errónea, su tamaño puede especificarse explícitamente cuando se haga uso de los comandos dd o mkfs.

Parámetros de dispositivos de memoria

DO_FSTAB

Es una opción booleana (y/n): Especifica si se debe añadir una entrada /etc/fstab para este dispositivo.

DO_FSCK

Es una opción booleana (y/n): Especifica si se debe comprobar este dispositivo antes de ser montado, con fsck -Ta.

DO_MOUNT

Es una opción booleana (y/n): Especifica si este dispositivo debe montarse automáticamente en el momento de insertar la tarjeta.

FSTYPE, OPTS, MOUNTPT

El tipo de sistema de archivos, opciones de montaje, y punto de montaje que se utilizarán para la entrada en fstab y/o para montar el dispositivo.

He aquí un ejemplo de un script que montará automáticamente las tarjetas de memoria basándose en el socket en que estén insertadas:

       case "$ADDRESS" in
       *,0,0)
           # Montar sistema de archivos, pero no actualizar /etc/fstab
           DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
           FSTYPE="ext2" ; OPTS=""
           MOUNTPT="/mem0"
           ;;
       *,1,0)
           # Montar sistema de archivos, pero no actualizar /etc/fstab
           DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
           FSTYPE="ext2" ; OPTS=""
           MOUNTPT="/mem1"
           ;;
       esac

Uso de tarjetas de memoria flash

La dirección de dispositivo que se pasa a ftl.opts consiste en tres o cuatro campos: el esquema, el número de socket, el número de región, y opcionalmente, el número de partición. La mayoría de tarjetas flash tienen sólo una región de memoria flash, así que el número de región será generalmente cero siempre.

Para usar una tarjeta de memoria flash como un dispositivo de bloques del tipo de un disco ordinario, primero se crea una partición FTL, o flash translation layer, en el dispositivo por medio del comando ftl_format. Esta capa oculta los detalles específicos de dispositivo de la programación de la memoria flash y hace que la tarjeta se vea como un simple dispositivo de bloques. Por ejemplo:

       ftl_format -i /dev/mem0c0c

Nótese que este comando accede a la tarjeta por medio de la interface raw de la tarjeta de memoria. Una vez formateada, la tarjeta puede tratarse como un dispositivo de bloques ordinario por medio del controlador ftl_cs. Por ejemplo:

       mke2fs /dev/ftl0c0
       mount -t ext2 /dev/ftl0c0 /mnt

La nomenclatura de dispositivos FTL es difícil. Los números menores de los dispositivos tienen tres partes: el número de tarjeta, el número de región en esa tarjeta, y opcionalmente, la partición dentro de esa región. Una región puede ser tratada como un simple dispositivo de bloques sin tabla de partición (como un disquete), o puede particionarse como un disco duro. El dispositivo ftl0c0 es la tarjeta 0, región de memoria común 0, la región entera. Los dispositivos de ftl0c0p1 a ftl0c0p4 son primariamente las particiones de 1 a 4 si la región ha sido particionada.

Hay dos formatos mayores para tarjetas de memoria flash: el estilo FTL, y el sistema de archivos Microsoft Flash. El formato FTL es generalmente más flexible porque permite que pueda utilizarse cualquier sistema de archivos de alto nivel en una tarjeta flash como si fuera un dispositivo de disco ordinario. El FFS es un tipo sistema de archivos completamente diferente. Linux no puede manejar actualmente tarjetas formateadas con FFS.

Las tarjetas flash Intel Series 100 usan el primer bloque flash de 128k para almacenar la información de la configuración de la tarjeta. Para prevenir el borrado accidental de esta información, ftl_format automáticamente detectará esto y saltará al primer bloque cuando se cree una partición FTL.

4.8 Tarjetas PCMCIA para unidades ATA/IDE

El soporte para unidades ATA/IDE se basa en el controlador IDE regular del kernel. La parte específica PCMCIA del controlador es ide_cs. Asegúrese de usar cardctl o cardinfo para apagar la tarjeta ATA/IDE antes de expulsarla, porque el controlador no fue programado a prueba de extracción en caliente.

La dirección de dispositivo que se pasa a ide.opts consiste de tres o cuatro campos: el esquema actual, el número de socket, el número de serie de la unidad, y un número opcional de partición. El comando ide_info puede usarse para obtener el número de serie del dispositivo IDE. Tal y como sucede con los dispositivos SCSI, ide.opts se llama primero para el dispositivo entero. Si ide.opts retorna una lista de particiones en la variable PARTS, el script entonces se llamará para cada partición.

Parámetros para discos ATA/IDE

Los siguientes parámetros se pueden especificar en ide.opts:

DO_FSTAB

Es una opción booleana (y/n): Especifica si se debe añadir una entrada /etc/fstab para este dispositivo.

DO_FSCK

Es una opción booleana (y/n): Especifica si se debe comprobar este dispositivo antes de ser montado, con fsck -Ta.

DO_MOUNT

Es una opción booleana (y/n): Especifica si este dispositivo debe montarse automáticamente al momento de insertar la tarjeta.

FSTYPE, OPTS, MOUNTPT

El tipo de sistema de archivos, opciones de montaje, y punto de montaje que se utilizarán para la entrada en fstab y/o para montar el dispositivo.

He aqui un ejemplo del archivo ide.opts para montar la primera partición de cualquier tarjeta ATA/IDE en /mnt.

       case "$ADDRESS" in
       *,*,*,1)
           DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
           FSTYPE="msdos"
           OPTS=""
           MOUNTPT="/mnt"
           ;;
       *,*,*)
           PARTS="1"
           ;;
       esac

Diagnóstico de problemas con adaptadores ATA/IDE

4.9 Tarjetas multifunción

Se puede compartir una simple interrupción entre varios controladores, como el controlador serie y el controlador ethernet: en efecto: la especificación PCMCIA requiere que todas las funciones de las tarjetas compartan la misma interrupción. Normalmente, todas las funciones de las tarjetas están disponibles sin tener que intercambiar controladores.

El uso simultáneo de dos funciones de tarjetas es algo «difícil» y varios fabricantes de hardware han implementado el compartir interrupciones en sus propias formas incompatibles (y a veces propietarias). Los controladores para algunas tarjetas (Ositech Jack de Diamond, 3Com 3c562, Linksys) soportan de forma apropiada el acceso simultáneo, pero otras (Megahertz en particular) no.

Los kernels antiguos no soportan el compartir interrupciones entre diferentes controladores de dispositivos, así que no es posible para los controladores PCMCIA el configurar esta tarjeta para acceso simultáneo ethernet y módem. Los controladores ethernet y serie se cargan automáticamente. Sin embargo, el controlador ethernet por omisión «posee» la interrupción de la tarjeta. Para usar el módem, puede descargar el controlador ethernet y reconfigurar el puerto serie haciendo algo como:

       ifconfig eth0 down
       rmmod 3c589_cs
       setserial /dev/modem autoconfig auto_irq
       setserial /dev/modem

El segundo setserial debe verificar que el puerto ha sido configurado para usar la interrupción que previamente utilizaba el controlador ethernet.


Página siguiente Página anterior Índice general