  Linux PCMCIA COMO
  David Hinds, dhinds@hyper.stanford.edu
  Romero, dlr@cuates.pue.upaep.mx
  Original: v2.40, 10 Septiembre 1999

  Este documento describe cmo instalar y usar los servicios de las tar
  jetas PCMCIA con Linux. Las ltimas versiones de este documento puede
  encontrarlas siempre en ftp://hyper.stanford.edu/pub/pcmcia/doc. La
  versin en HTML est en http://hyper.stanford.edu/HyperNews/get/pcm
  cia/home.html
  ______________________________________________________________________

  ndice general





















































  1. Informacin general y requerimientos de hardware

     1.1 Introduccin
     1.2 Licencia y renuncia de responsabilidad
     1.3 Cul es la ltima versin, y dnde puedo obtenerla?
     1.4 Qu sistemas estn soportados?
     1.5 Qu tarjetas estn soportadas?
     1.6 Cundo estar soportada mi tarjeta favorita (no soportada)?
     1.7 Listas de correo y otras fuentes de informacin
     1.8 Por qu no distribuyen binarios?
     1.9 Por qu el paquete es tan grande?

  2. Compilacin e instalacin

     2.1 Prerequisitos y configuracin del kernel
     2.2 Instalacin
     2.3 Opciones de inicio
     2.4 Configuracin de recursos del sistema
     2.5 Notas acerca de distribuciones de Linux especficas
        2.5.1 Debian
        2.5.2 Red Hat, Caldera, Mandrake
        2.5.3 Slackware
        2.5.4 SuSE

  3. Resolucin de problemas de instalacin y configuracin

     3.1 No se cargan los mdulos bsicos de PCMCIA.
     3.2 Algunos mdulos controladores no cargan
     3.3 fallos en la bsqueda de interrupciones
     3.4 Fallos en la bsqueda de puertos de E/S
     3.5 Fallos durante la comprobacin de la memoria
     3.6 Fallo al detectar cuando se inserta o se extrae la tarjeta
     3.7 Faltan recursos del sistema
     3.8 Conflicto de recursos entre dos tarjetas
     3.9 No se completa la configuracin de dispositivos

  4. Uso y caractersticas

     4.1 Herramientas para configurar y monitorizar dispositivos PCMCIA
        4.1.1 El demonio de configuracin
        4.1.2 Las utilidades
        4.1.3 Insercin y extraccin de tarjetas
        4.1.4 Servicios de Tarjetas y Administracin Avanzada de Energa
        4.1.5 Apagado del sistema PCMCIA
     4.2 Un vistazo a los scripts de configuracin de PCMCIA
     4.3 Adaptadores de red PCMCIA
        4.3.1 Parmetros de dispositivos de red
        4.3.2 Comentarios acerca de tarjetas especficas
        4.3.3 Diagnstico de problemas con adaptadores de red
     4.4 Dispositivos serie PCMCIA y mdems
        4.4.1 Parmetros de dispositivos serie
        4.4.2 Diagnstico de problemas con dispositivos serie
     4.5 Dispositivos PCMCIA de puerto paralelo
        4.5.1 Parmetros de dispositivos paralelos
        4.5.2 Diagnstico de problemas con dispositivos de puertos paralelos
     4.6 Adaptadores SCSI PCMCIA
        4.6.1 Parmetros de dispositivos SCSI
        4.6.2 Comentarios acerca de tarjetas especficas
        4.6.3 Diagnstico de problemas con adaptadores SCSI
     4.7 Tarjetas de memoria PCMCIA
        4.7.1 Parmetros de dispositivos de memoria
        4.7.2 Uso de tarjetas de memoria flash
     4.8 Tarjetas PCMCIA para unidades ATA/IDE
        4.8.1 Parmetros para discos ATA/IDE
        4.8.2 Diagnstico de problemas con adaptadores ATA/IDE
     4.9 Tarjetas multifuncin
  5. Temas avanzados

     5.1 Apartado de recursos para dispositivos PCMCIA
     5.2 Cmo puedo separar configuraciones de los dispositivos para casa y el trabajo?
     5.3 Arranque desde un dispositivo PCMCIA
        5.3.1 El script
        5.3.2 Creacin de un disquete de inicio
        5.3.3 Instalacin de una imagen

  6. Problemas con tarjetas no soportadas

     6.1 Configuracin de tarjetas no reconocidas
     6.2 Soporte para una tarjeta ethernet compatible con NE2000
     6.3 Tarjetas PCMCIA para unidades de disquete
     6.4 Qu hay de las tarjetas Xircom?

  7. Trucos para depurar e informacin de programacin

     7.1 Envo de informes de
     7.2 Interpretacin de los informes generados por los
     7.3 Primeros auxilios al depurar a bajo nivel
     7.4 (TT
     7.5 Programacin de controladores de servicios PCMCIA para nuevas tarjetas
     7.6 Sugerencias para los autores de controladores PCMCIA
     7.7 Sugerencias para encargados de las distribuciones de Linux

  8. Anexo: El INSFLUG



  ______________________________________________________________________

  1.  Informacin general y requerimientos de hardware



  1.1.  Introduccin


  Los Servicios de Tarjeta para Linux son un paquete de soporte completo
  para PCMCIA o PC Card. Incluye un conjunto de mdulos cargables en el
  kernel que implementan una versin de la interface del programa de
  aplicacin de Servicios de Tarjetas, un conjunto de controladores de
  clientes para tarjetas especficas, y un demonio controlador de
  tarjetas que responde a los eventos de insercin y extraccin de
  tarjetas, el cual carga y descarga los controladores segn sea
  necesario. Soporta extraccin en caliente de la mayora de tarjetas,
  por lo que pueden ser insertadas y extradas de forma segura en
  cualquier momento.

  Este software est en continuo desarrollo. Probablemente contenga
  bugs, y debe ser usado con precaucin. Har lo que est en mi mano
  para resolver los problemas que me son comunicados, pero si no me los
  dice, nunca lo sabr. Si usa este cdigo, espero que me enve sus
  experiencias, buenas o malas!

  Si tiene sugerencias de cmo puede mejorarse este documento, por favor
  hgamelo saber (dhinds@hyper.stanford.edu).


  1.2.  Licencia y renuncia de responsabilidad


  Derechos Reservados  1998 David A. Hinds


  Este documento puede ser reproducido o distribuido en cualquier forma
  sin mi permiso previo. Las versiones modificadas de este documento,
  incluyendo traducciones a otros idiomas, pueden ser distribuidos
  libremente, si son claramente identificados como tales, y siempre que
  este copyright se incluya intacto.

  Este documento puede ser includo en distribuciones comerciales sin mi
  previo consentimiento. Aunque no suponga requisito, me gustara estar
  informado de su uso. Si pretende incorporar este documento en un
  trabajo para ser publicado, por favor contacte conmigo para asegurarme
  que tiene la ltima versin disponible.

  Este documento se proporciona TAL CUAL, sin garantas expresas o
  implcitas. Utilice la informacin en este documento bajo su propio
  riesgo.


  1.3.  Cul es la ltima versin, y dnde puedo obtenerla?


  La versin actual de los Servicios de Tarjetas es la 3.0, y las
  actualizaciones menores o reparaciones de bugs se numeran 3.0.1,
  3.0.2, y as sucesivamente.

  El cdigo fuente de la ltima versin est disponible en
  ftp://hyper.stanford.edu en el directorio /pub/pcmcia como pcmcia-
  cs-3.0.?.tar.gz.  Habr usualmente varias versiones ah.  Por lo
  general, solo conservo la ltima versin menor para dar origen a una
  versin mayor.

  Las nuevas versiones pueden contener cdigo relativamente sin probar,
  as que tambin conservo la ltima versin de la ltima mayor como
  colchn relativamente estable; el retraso actual es 2.9.12. Vd.
  decide qu versin es ms apropiada, el archivo CHANGES mostrar las
  diferencias ms importantes.

  ftp://hyper.stanford.edu es replicado en ftp://sunsite.unc.edu (y
  todos los servidores rplica de Sunsite) en /pub/Linux/kernel/pcmcia.

  Si no se siente Vd. a gusto compilando controladores, hay
  controladores precompilados incluidos con las versiones actuales de la
  mayora de las distribuciones principales de Linux, incluyendo
  Slackware, Debian, Red Hat, Caldera, SuSE, e Yggdrasil, entre otros.


  1.4.  Qu sistemas estn soportados?


  Este paquete debera correr en la mayora de porttiles basados en
  Intel y que sean Linuxizables. Tambin corre en plataformas basadas
  en Alpha (DEC Multia, por ejemplo). Se programa para hacer al paquete
  completamente dual-endian, as que tambin soporta plataformas basadas
  en PowerPC (Apple Powerbooks, por ejemplo). Los controladores de
  sockets ms comunes estn soportados. Las bahas de tarjetas PCMCIA
  para sistemas de escritorio deben funcionar si usan un controlador
  soportado, y se conectan directamente al bus ISA o PCI, lo opuesto a
  los adaptadores SCSI-a-PCMCIA o IDE-a-PCMCIA.

  Estn soportados los siguientes controladores:


    Cirrus Logic PD6710, PD6720, PD6722, PD6729, PD6730, PD6732, PD6832

    Intel i82365sl B, C, y secuencias DF, 82092AA


    O2Micro OZ6729, OZ6730, OZ6832, OZ6833, OZ6836, OZ6860

    Omega Micro 82C092G

    Ricoh RF5C296, RF5C396, RL5C465, RL5C466, RL5C475, RL5C476, RL5C478

    SMC 34C90

    Texas Instruments PCI1130, PCI1131, PCI1210, PCI1220, PCI1221,
     PCI1250A, PCI1251A, PCI1251B, PCI1450

    Toshiba ToPIC95, ToPIC97 (experimental)

    Vadem VG465, VG468, VG469

    VLSI Technologies 82C146, VCF94365

    VIA VT83C469

    Databook DB86082, DB86082A, DB86084, DB86084A, DB86072, DB86082B

  Otros controladores que estn registrados como compatibles con el
  Intel i82365sl, funcionarn tambin como norma general.

  El soporte para tarjetas CardBus de 32 bits es todava experimental.
  Los manejadores previos a la versin 3.0 slo soportan tarjetas de 16
  bits en sockets CardBus. Debido al paso tan rpido en el cambio de la
  tecnologa para el hardware de porttiles, aparecen nuevos
  controladores frecuentemente, y puede producirse cierto estancamiento
  entre el momento en que aparece un nuevo modelo en el mercado, y el
  que haya soporte para ese controlador.

  Toshiba ha dispuesto parcialmente documentacin sobre sus chipsets
  ToPIC95 y ToPIC97, sin embargo, la informacin que han liberado no ha
  sido la realmente adecuada. A pesar de los informes de conflictos,
  Toshiba no ha hecho algn esfuerzo efectivo para remediar esta
  situacin.  Hay problemas serios en el soporte de Linux para los
  chipsets ToPIC, que no pueden ser resueltos hasta que est disponible
  una documentacin mejor, o la ayuda adecuada por parte de Toshiba. No
  recomiendo el uso de porttiles Toshiba por el momento. Para el uso de
  tarjetas de 16 bits, recomiendo establecer el modo de puente a PCIC en
  la configuracin de la BIOS; para tarjetas CardBus, la decisin es
  suya.

  El controlador Motorola 6AHC05GA usado en porttiles Hyundai, no est
  soportado. El controlador en la HP Omnibook 600 tampoco.


  1.5.  Qu tarjetas estn soportadas?


  La versin actual incluye controladores para una variedad de tarjetas
  ethernet, para tarjetas mdem y puertos serie, varios controladores
  para adaptadores SCSI, un controlador para tarjetas de unidades
  ATA/IDE, y controladores para tarjetas de memoria que slo soportan la
  mayora de tarjetas SRAM y algunas tarjetas flash. El archivo
  SUPPORTED.CARDS includo en cada versin de Servicios de Tarjetas
  lista todas las tarjetas que se sabe que funcionan al menos en un
  sistema.

  La probabilidad de que funcione una tarjeta que no est en la lista de
  soportados depende del tipo. Esencialmente todos los mdems deberan
  funcionar con el controlador provisto. Algunas tarjetas de red pueden
  funcionar si hay versiones OEM de las tarjetas soportadas. Otro tipo
  de tarjetas de E/S (frame buffers, tarjetas de sonido, etc) no
  funcionarn hasta que alguien escriba los controladores apropiados.
  1.6.  Cundo estar soportada mi tarjeta favorita (no soportada)?


  Desafortunadamente, no me pagan por escribir controladores para
  dispositivos, as que si quiere tener un controlador para su tarjeta
  favorita, probablemente tendr trabajar un poco.  Idealmente, me
  gustara trabajar hacia un modelo como el del kernel de Linux, donde
  yo sea el responsable principalmente del cdigo del ncleo y otros
  autores puedan contribuir y mantener los controladores para tarjetas
  especficas. El archivo SUPPORTED.CARDS menciona algunas tarjetas para
  las cuales los controladores estn actualmente en progreso. Tratar de
  ayudar donde pueda, pero tenga en cuenta que depurar controladores de
  dispositivo del kernel por email no es particularmente efectivo.

  Los fabricantes interesados en ayudar a proveer soporte Linux para sus
  productos pueden contactar conmigo a fin de acordar consultoras.


  1.7.  Listas de correo y otras fuentes de informacin


  Sola mantener una base de datos y una lista de correo de usuarios de
  Linux PCMCIA. Recientemente he convertido mi pgina web para
  informacin de Linux PCMCIA en un sitio HyperNews, con un conjunto de
  listas de mensajes de temas de Linux PCMCIA. Hay listas para
  instalacin y configuracin, para diferentes tipos de tarjetas, para
  programar y depurar. La pgina de informacin de Linux PCMCIA est en
  http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html. Los usuarios
  pueden solicitar otificacin por email de nuevas respuestas a
  preguntas particulares, o notificacin para todos los mensajes nuevos
  en una categora dada. Espero que esto sea un repositorio til de
  informacin, para cuestiones que van ms all del enfoque del COMO.

  Hay una lista de Linux dedicada a asuntos de porttiles, la lista
  linux-laptop. Para ms informacin, enve un mensaje con la palabra
  help a majordomo@vger.rutgers.edu. Para suscribirse, enve un email
  que contenga el mensaje subscribe linux-laptop a la misma direccin.
  Esta lista de correo puede ser un buen foro de discusin de asuntos de
  Linux PCMCIA.

  La pgina de Linux Laptop est en
  http://www.cs.utexas.edu/users/kharker/linux-laptop tiene enlaces a
  muchos sitios que tienen informacin acerca de la configuracin de
  tipos especficos de porttiles para Linux. Hay tambin una base de
  datos para buscar informacin acerca de configuracin de sistemas.


  1.8.  Por qu no distribuyen binarios?


  Para mi, distribuir los binarios puede suponer una molestia
  importante.  Esto es complicado porque algunas caractersticas solo
  pueden ser seleccionadas al momento de compilar, y porque los mdulos
  dependen mucho de contar con una configuracin correcta del kernel.
  As, probablemente necesite distribuir mdulos precompilados junto con
  los kernels correspondientes.  Ms que esto, la necesidad ms grande
  de los mdulos precompilados es cuando se instala Linux en un sistema
  limpio. Esto tpicamente requiere configurar los controladores para
  que puedan ser utilizados en el proceso de instalacin, para una
  distribucin de Linux en particular. Cada distribucin de Linux tiene
  su propia idiosincrasia, y no me resulta factible el proveer discos
  boot y root para cada una de las combinaciones de controladores y
  distribuciones.

  PCMCIA forma parte ahora de las principales distribuciones de Linux,
  incluyendo RedHat, Caldera, Slackware, Yggdrasil, Craftworks y Nascent
  Technology.



  1.9.  Por qu el paquete es tan grande?


  Bueno, no es realmente tan grande al fin y al cabo. Todos los mdulos
  controladores ocupan alrededor de 500K de espacio en disco. Los
  programas de utilidades aaden unos 70K, y los scripts en /etc/pcmcia
  son de 50K. Los controladores principales ocupan unos 55K de la
  memoria del sistema. El demonio cardmgr ser generalmente
  intercambiado excepto cuando cuando las tarjetas sean insertadas o
  extradas. El tamao total del paquete es comparable a las
  implementaciones de servicios de tarjetas de DOS/Windows.



  2.  Compilacin e instalacin




  2.1.  Prerequisitos y configuracin del kernel


  Antes de empezar, debera pensar si realmente necesita compilar el
  paquete por s mismo. Todas las distribuciones comunes de Linux vienen
  con paquetes de controladores precompilados. Generalmente, slo
  necesita instalar los controladores si necesita una caracterstica
  nueva de los ms actuales, o si ha actualizado y/o reconfigurado su
  kernel de forma que es incompatible con los incluidos en su
  distribucin de Linux. A pesar de que compilar el paquete no es
  tcnicamente difcil, requiere algo de familiaridad general con Linux.

  Las siguientes cosas deben estar instaladas en su sistema antes de
  comenzar:


    El rbol de fuentes del kernel, serie 2.0.*, 2.1.*, o 2.2.*

    Un conjunto apropiado de utilidades de mdulos.

    La interface de utilidades XForms para X11 (Opcional).

  Necesita tener la estructura completa del cdigo fuente del kernel, no
  slo una imagen actualizada del kernel. Los mdulos de los
  controladores contienen algunas referencias a los archivos fuentes del
  kernel. Mientras que Vd. busca compilar un kernel nuevo para eliminar
  manejadores innecesarios, instalar PCMCIA no requiere que lo haga as.

  Los fuentes y parches estables actuales del kernel estn disponibles
  en
  ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0, o en
  ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0 Los kernels en
  desarrollo los puede encontrar en los subdirectorios v2.1.  las
  utilidades de mdulos actuales puede encontrarlas en la misma
  ubicacin.

  En los fuentes del kernel de Linux, el archivo Documentation/Changes
  describe las versiones de todas las clases de otros componentes del
  sistema que son requeridas por esa versin del kernel. Probablemente
  quiera revisarlo y verificar que su sistema est actualizado,
  especialmente si tiene actualizado el kernel. Si est usando un kernel
  en desarrollo, asegrese de estar usando la combinacin correcta de
  bibliotecas compartidas y herramientas de mdulos.
  Cuando configure su kernel, si planea usar una tarjeta ethernet
  PCMCIA, debe activar el soporte para red, y desactivar los
  controladores normales de tarjetas de red de Linux, incluyendo pocket
  and portable adapters.  Todos los controladores para tarjetas de red
  PCMCIA estn compilados como mdulos cargables. Cualquiera de los
  controladores compilados dentro de su kernel slo desperdiciar
  espacio.

  Si quiere usar SLIP, PPP o PLIP, necesitar ya sea configurar el
  kernel con ese soporte activado, o usar la versin de los mdulos
  cargables de esos controladores. Hay una desafortunada deficiencia en
  el proceso de configuracin de los kernels 1.2.X, en el que no es
  posible establecer opciones de configuracin (como compresin SLIP)
  para un mdulo cargable, as que es probablemente mejor enlazar SLIP
  dentro del kernel si es que lo necesita.

  Para usar un adaptador token ring PCMCIA, el kernel debe estar
  configurado con la opcin Token Ring driver support (CONFIG_TR)
  activada, aunque debe dejar CONFIG_IBMTR desactivado.

  Si requiere usar un adaptador IDE PCMCIA, su kernel debe estar
  configurado con la opcin CONFIG_BLK_DEV_IDE_PCMCIA activada, para los
  kernels desde 2.0.* hasta 2.1.*. Los kernels antiguos no soportan
  dispositivos IDE extrables; los nuevos no requieren una configuracin
  especial.

  Si va a usar un adaptador SCSI PCMCIA, debe habilitar CONFIG_SCSI
  cuando configure el kernel. Debe activar tambin cualquier controlador
  de alto nivel (disco SCSI, cinta, cdrom, genrico) que espere usar.
  Debe desactivar todos los controladores de bajo nivel para adaptadores
  en particular, porque slo le quitarn espacio.

  Si busca modularizar un controlador que se necesita para un
  dispositivo PCMCIA, debe modificar /etc/pcmcia/config para especificar
  qu mdulos necesitan ser cargados para qu tipos de tarjetas. Por
  ejemplo, si el controlador serie est modularizado, entonces la
  definicin del dispositivo serie debera ser:



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




  Este paquete incluye una utilidad llamada cardinfo que est basada en
  X para monitorizar el estado de la tarjeta. Est basada en un toolkit
  de libre distribucin, la biblioteca XForms. Esta librera est
  disponible como un paquete separado de la mayora de distribuciones de
  Linux. Si desea compilar cardinfo, deber instalar XForms y todas las
  cabeceras y bibliotecas de desarrollo habituales para X antes de
  configurar el paquete PCMCIA.


  2.2.  Instalacin


  He aqu una sinopsis del proceso de instalacin:


    Descomprima pcmcia-cs-3.0.?.tar.gz en /usr/src

    Ejecute make config en el nuevo directorio pcmcia-cs-3.0.?


    Ejecute make all, y luego make install.

    Configure el script de inicio y los archivos de opciones en
     /etc/pcmcia para su sistema.

  Si planea instalar cualquier controlador que sea una contribucin y
  que no est includo en la distribucin principal de PCMCIA,
  descomprima cada uno de ellos en el directorio raz del rbol PCMCIA.
  Luego siga las instrucciones normales de compilacin. Los
  controladores extras se compilarn e instalarn automticamente.

  Cuando ejecute make config, se le preguntarn algunas opciones de
  configuracin y se comprobar su sistema para verificar que se
  satisfagan todos los prerequisitos para instalar soporte PCMCIA. En la
  mayora de los casos, slo tendr que aceptar todas las opciones de
  configuracin que vienen por omisin. Asegrese de comprobar
  cuidadosamente la salida de ste comando en caso de que hubiera
  problemas. Estn disponibles las siguientes opciones:



     Hay un directorio de instalacin alternativo?
        Si est compilando el paquete para instalarlo en otro equipo,
        especifique un directorio destino alternativo cuando se le
        pregunte. Debe ser una ruta absoluta. Todos los archivos sern
        instalados relativos a este directorio. Entonces estar listo
        para aplicar tar a este directorio y copiarlo a su equipo
        destino, y desempaquetarlo relativo a su directorio raz para
        instalar todo en los lugares apropiados.


     Necesita indicadores de compilacin para depurar?
        Vea la seccin ``Primeros auxilios al depurar a bajo nivel''
        para mayor informacin acerca de esta opcin.


     Necesita compilar versiones trusting de las utilidades de
        tarjetas?"  Algunas de las utilidades de soporte (cardctl y
        cardinfo) pueden ser compiladas ya sea de forma safe o trusting.
        La forma safe previene a los usuarios no-root de modificar
        configuraciones de tarjetas. La forma trusting permite a los
        usuarios ordinarios ejecutar comandos para suspender y reactivar
        tarjetas, resetear tarjetas, y cambiar el esquema de
        configuracin actual.  La forma configurada por omisin es safe.


     Necesita incluir soporte para tarjetas de 32-bits (CardBus)?
        Deber seleccionar esta opcin si desea usar tarjetas CardBus de
        32-bits.  No se requiere para tener soporte con puentes CardBus
        si slo planea usar tarjetas PC de 16-bits.


     Necesita incluir chequeo de recursos para BIOS PnP?
        Esto compila cdigo adicional en el mdulo principal PCMCIA para
        comunicarse con el BIOS PnP de un sistema para obtener
        informacin de los recursos que estn incluidos en la placa
        madre (puertos serie y paralelos, sonido, etc), para ayudar a
        prevenir conflictos de recursos. Si se habilita, se crearn
        algunos archivos extra de recursos bajo /proc/bus/pccard, y las
        herramientas lspnp y setpnp se pueden usar para visualizar y
        manipular los dispositivos PnP del BIOS.


     Cmo configurar opciones especficas del kernel?
        Hay algunas opciones de configuracin del kernel que afectan a
        las herramientas PCMCIA. El script de configuracin puede
        deducirlo desde el kernel actual (el caso por omisin y ms
        comn).  Alternativamente, si est compilando para instalar en
        otro equipo, puede leer la configuracin del rbol de los
        fuentes del kernel, o cada opcin se puede establecer
        interactivamente.


  El script de configuracin se puede ejecutar de forma no-interactiva,
  para compilar automticamente o para reconfigurar rpidamente despus
  de una actualizacin del kernel. Algunas opciones adicionales no
  utilizadas con frecuencia slo pueden ser establecidas desde la lnea
  de comandos.  Ejecutando: Configure --help se listarn todas las
  opciones disponibles.

  Al ejecutar make all seguido de make install compilar y luego
  instalar los mdulos del kernel y los programas de utilidades.  Los
  mdulos del kernel sern instalados en /lib/modules/<version>/pcmcia.
  Los programas cardctl y cardmgr sern instalados en /sbin. Si cardinfo
  se compila, ser instalado en /usr/bin/X11.

  Los archivos de configuracin sern instalados en el directorio
  /etc/pcmcia. Si est instalando sobre una versin antigua, sus scripts
  de configuracin anteriores se respaldarn antes de ser reemplazados.
  Los scripts guardados tendrn la extensin de tipo *.O.

  Si no sabe qu tipo de controlador usa su sistema, puede utilizar la
  utilidad probe en el subdirectorio cardmgr/ para determinarlo.  Hay
  dos tipos principales: el tipo Databook TCIC-2 y el tipo compatible
  con Intel i82365SL.

  En raras ocasiones, el comando probe ser incapaz de determinar su
  tipo de controlador automticamente. Si tiene un sistema Halikan NBD
  486, tiene un controlador TCIC-2 en una localizacin inusual:
  necesitar editar rc.pcmcia para cargar el mdulo tcic, y tambin
  especificar el parmetro PCIC_OPTS a tcic_base=0x02c0.

  En algunos sistemas que usan controladores Cirrus, incluyendo el Nec
  Versa M, la bios pone el controlador en un estado especial de
  suspensin al iniciar el sistema. En esos sistemas, el comando probe
  fallar al encontrar cualquier controlador conocido. Si esto pasa,
  edite rc.pcmcia y especifica PCIC a i82365, y PCIC_OPTS a wakeup=1.


  2.3.  Opciones de inicio


  El script de inicio de PCMCIA reconoce varios grupos de opciones de
  inicio, establecidas por medio de variables de entorno. Se pueden
  separar mltiples opciones por medio de espacios y encerradas en
  comillas. La colocacin de las opciones de inicio depende de la
  distribucin de Linux que se est usando. Pueden ser colocados
  directamente en el script de inicio, o pueden mantenerse en un archivo
  de opciones separado. Revise la seccin ``Notas acerca de
  distribuciones de Linux especficas'' para ms detalles. Se pueden
  establecer las siguientes variables:



     PCMCIA
        Esta variable especifica si el soporte PCMCIA debe ser iniciado
        o no. Si est especificado de forma diferente a yes, el script
        de inicio ser desactivado.


     PCIC
        Esto identifica el mdulo controlador de PC Card Interface
        Controller. Hay dos opciones: tcic o i82365. Virtualmente todos
        los controladores actuales estn en el grupo i82365. Esta es la
        nica opcin obligatoria a establecer.


     PCIC_OPTS
        Esto especifica las opciones para el mdulo PCIC. Algunos
        controladores tienen caractersticas opcionales que pueden o no
        ser implementadas en un sistema en particular. En algunos casos,
        es imposible para el socket controlador detectar si esas
        caractersticas estn implementadas. Revise la pgina del manual
        correspondiente para una descripcin completa de las opciones
        disponibles.


     CORE_OPTS
        Esto especifica las opciones para el mdulo pcmcia_core, el cual
        implementa los servicios principales del controlador PC Card. Es
        conveniente echar un vistazo a man pcmcia_core para ms
        informacin.


     CARDMGR_OPTS
        Esto especifica las opciones que se pasarn al demonio cardmgr.
        Revise man cardmgr para ms informacin.


     SCHEME
        Si est activado, el esquema de configuracin de PC Card ser
        inicializado a este modo en el momento de arrancar. Revise la
        seccin ``Un vistazo a los scripts de configuracin de PCMCIA''
        para ver la discusin de esquemas.


  Los controladores de sockets de bajo nivel, tcic e i82365, tienen
  varios parmetros de sincronizacin de bus que pueden necesitar ser
  ajustados para sistemas con velocidades de bus no muy usuales. Los
  sntomas de los problemas de sincronizacin incluyen problemas al
  reconocer las tarjetas, congelamiento bajo carga pesada, tasas de
  error altas, o rendimiento pobre de dispositivos. Slo ciertos puentes
  tienen parmetros de sincronizacin ajustables, revise la pgina
  correspondiente del manual para ver qu opciones existen para su
  controlador. He aqu un pequeo resumen:


    Los controladores Cirrus tienen muchos parmetros de
     sincronizacin.  Lo ms importante parece ser el indicador
     cmd_time, la cual determina la longitud de los ciclos de bus
     PCMCIA. En los sistemas rpidos 486 (DX4-100, por ejemplo) parece
     ser beneficioso el incrementar esto de 6 (por omisin) a 12 o 16.

    El controlador Cirrus PD6729 PCI tiene el indicador fast_pci, la
     cual debe establecerse si la velocidad del bus PCI es mayor a 25
     Mhz.

    Para controladores Vadem VG-468 y Databook TCIC-2, el indicador
     async_clock cambia la velocidad relativa del bus PCMCIA y los
     ciclos de bus del equipo. Activar este indicador aade estados de
     espera extra a algunas operaciones. Sin embargo, todava no he
     sabido de ningn porttil que necesite esto.


    El mdulo pcmcia_core tiene el parmetro cis_speed para cambiar la
     velocidad de la memoria, la cual se usa para acceder a la
     Estructura de Informacin de Tarjeta (Card Information Structure)
     (CIS) de una tarjeta. En algunos sistemas con pulsos de bus
     rpidos, incrementar este parmetro (por ejemplo, reducir la
     velocidad de los accesos a tarjeta) puede resultar beneficioso para
     quien tenga problemas al reconocerlas.

    Esto no es cuestin de sincronizacin, pero si Vd. tiene ms de un
     controlador ISA-a-PCMCIA en su sistema o tiene bahas extra en una
     estacin, el mdulo i82365 debe ser cargado con el parmetro
     extra_sockets establecido a 1. Esto no deber ser necesario para
     deteccin de puentes PCI-a-PCMCIA y PCI-a-CardBus.

  He aqu algunas configuraciones de sincronizacin para algunos
  sistemas especficos:


    En un ARM Pentium-90 o en un Midwest Micro Soundbook Plus, use
     freq_bypass=1 cmd_time=8.

    En un Midwest Micro Soundbook Elite, use cmd_time=12.

    En un Gateway Liberty, pruebe con cmd_time=16.

    En un Samsung SENS 810, use fast_pci=1.


  2.4.  Configuracin de recursos del sistema


  Los servicios de tarjetas deben evitar automticamente el ocupar
  puertos e interrupciones que ya estn en uso por otros dispositivos
  estndar.  Intentar as mismo detectar conflictos con dispositivos
  desconocidos, pero esto no es del todo fiable, y en algunos casos
  puede que necesite excluir explcitamente recursos para un dispositivo
  en /etc/pcmcia/config.opts.

  He aqu algunas configuraciones de recursos para tipos especficos de
  porttiles. Revselas con cuidado: pueden darle informacin necesaria
  para resolver problemas, pero algunas estn (inevitablemente)
  obsoletas y ciertamente contienen errores. Las correcciones y
  adiciones sern bienvenidas.


    En un AMS SoundPro, excluya la irq 10.

    En algunos modelos AMS TravelPro 5300, use el rango de memoria
     0xc8000-0xcffff.

    En un BMX 486DX2-66, excluya irq 5, irq 9.

    En un Chicony NB5, use el rango de memoria 0xda000-0xdffff.

    En un Compaq Presario 1020, excluya el puerto 0x2f8-0x2ff, irq 3,
     irq 5.

    En un HP Omnibook 4000C, excluya el puerto 0x300-0x30f.

    En un IBM ThinkPad 380, y posiblemente en las series 385 y 600,
     excluya el puerto 0x230-0x233, e irq 5.

    En un IBM ThinkPad 600, excluya el puerto 0x2f8-0x2ff.

    En un Micron Millenia Transport, excluya irq 5, irq 9.

    En un NEC Versa M, excluya irq 9, y el puerto 0x2e0-2ff.

    En un NEC Versa P/75, excluya irq 5, irq 9.

    En un NEC Versa S, excluya irq 9, irq 12.

    En las series NEC Versa 6000, excluya el puerto 0x2f8-0x33f, irq 9,
     irq 10

    En un ProStar 9200, Altima Virage, y Acquiline Hurricane DX4-100,
     excluya irq 5, y el puerto 0x330-0x35f.  Puede usar el rango de
     memoria 0xd8000-0xdffff.

    En un Siemens Nixdorf SIMATIC PG 720C, use el rango de memoria
     0xc0000-0xcffff, y el puerto 0x300-0x3bf.

    En un TI TravelMate 5000, use el rango de memoria 0xd4000-0xdffff.

    En un Toshiba T4900 CT, excluya irq 5, y los puertos 0x2e0-0x2e8,
     0x330-0x338.

    En un Twinhead 5100, HP 4000, Sharp PC-8700 and PC-8900, excluya
     irq 9 (sonido), irq 12.

    En un MPC 800 Series, excluya irq 5, y el puerto 0x300-0x30f para
     el CD-ROM.


  2.5.  Notas acerca de distribuciones de Linux especficas


  Esta seccin est incompleta. Todas las correcciones y adiciones sern
  bienvenidas.


  2.5.1.  Debian


  Debian usa el conjunto de scripts de arranque de tipo System V. El
  script de inicio PCMCIA est instalado en /etc/init.d/pcmcia, y las
  opciones de inicio se especifican en /etc/pcmcia.conf. La
  configuracin de syslog de Debian colocar los mensajes del kernel en
  /var/log/messages y los mensajes del demonio cardmgr en
  /var/log/daemon.log.

  Debian distribuye el sistema PCMCIA en dos paquetes: el paquete
  pcmcia-cs que contiene cardmgr y otras herramientas, pginas del
  manual, y los scripts de configuracin; y el paquete pcmcia-modules
  que contiene los mdulos controladores del kernel.


  2.5.2.  Red Hat, Caldera, Mandrake


  Estas distribuciones usan la organizacin de scripts System V. El
  script de inicio de PCMCIA est instalado en /etc/rc.d/init.d/pcmcia,
  y las opciones de arranque se guardan en /etc/sysconfig/pcmcia.
  Observe que al instalar el paquete de Red Hat puede instalar un
  archivo de opciones de inicio por omisin que tiene PCMCIA
  desactivado.  Para habilitar PCMCIA, la variable PCMCIA debe
  establecerse en yes.  La configuracin por omisin del syslogd de Red
  Hat grabar todos los mensajes interesantes en /var/log/messages.

  El paquete PCMCIA de Red Hat contiene un reemplazo para el script de
  inicio de red, /etc/pcmcia/network, el cual se acopla al panel de
  control de red de Red Hat. Esto es conveniente para el caso donde slo
  se usa un adaptador de red, con un conjunto de parmetros de red, pero
  no tiene la flexibilidad completa del script regular de red PCMCIA.
  Compilar e instalar una distribucin fuente de PCMCIA nueva,
  sobreescribir el script de red, rompiendo el enlace con el panel de
  control. Si prefiere el script de Red Hat, puede evitarlo bien usando
  nicamente RPMS de Red Hat, o creando /etc/pcmcia/network.opts que
  contenga lo siguiente:



              if [ -f /etc/sysconfig/network-scripts/ifcfg-eth0 ] ; then
                  start_fn () {
                      /sbin/ifup $1
                  }
                  stop_fn () {
                      /sbin/ifdown $1
                  }
              fi




  Red Hat maneja su distribucin de los fuentes de PCMCIA con pocas
  modificaciones dentro de su SRPM del kernel, en lugar de gestionarlo
  como un paquete separado.


  2.5.3.  Slackware


  Slackware usa el conjunto de scripts de inicio de BSD. El script de
  inicio de PCMCIA est instalado en /etc/rc.d/rc.pcmcia, y las opciones
  de inicio se especifican en el mismo rc.pcmcia. El script de inicio de
  PCMCIA se invoca desde /etc/rc.d/rc.S.


  2.5.4.  SuSE


  SuSE usa el conjunto de scripts System V, con los scripts de inicio
  almacenados en /sbin/init.d. El script de inicio de PCMCIA est
  instalado en /sbin/init.d/pcmcia, y las opciones de arranque se
  guardan en /etc/rc.config. El script de inicio de SuSE est algo
  limitado y no permite que las variables de inicio de PCMCIA sean
  invalidados desde el prompt de inicio de lilo.


  3.  Resolucin de problemas de instalacin y configuracin


  Esta seccin describe algunos de los errores ms comunes del
  subsistema PCMCIA. Compare sus sntomas con los ejemplos. Esta seccin
  slo describe fallos generales que no son especficas de un
  controlador o tipo de tarjeta en particular.

  Antes de diagnosticar un problema, debe saber dnde se almacena el
  registro del sistema (revise la seccin ``Notas acerca de
  distribuciones de Linux especficas''). Debe estar familiarizado con
  las herramientas bsicas de diagnstico como dmesg y lsmod.  Preste
  especial atencin al hecho de que muchos componentes de los
  controladores (incluyendo todos los mdulos del kernel) tienen sus
  propias pginas individuales en el manual.

  Intente definir su problema lo ms ampliamente posible. Si tiene
  varias tarjetas, pruebe cada tarjeta de forma aislada, y en diferentes
  combinaciones. Intente arranques de Linux en fro y arranques en
  caliente de Windows. Compare el arrancar con tarjetas insertadas, o
  insertar las tarjetas despus de iniciar. Si normalmente usa su
  porttil ensamblado con una dockstation, prebelo aparte. Algunas
  veces, dos bahas se comportarn de forma diferente.
  Es casi imposible depurar problemas de un controlador cuando se
  intenta instalar Linux por medio de un dispositivo PCMCIA. En lugar de
  eso, si puede identificar el problema basndose en los sntomas, los
  discos de instalacin son difciles de modificar, especialmente sin
  tener acceso a un sistema Linux ya funcionando. La personalizacin e
  instalacin de los discos de instalacin es completamente dependiente
  de la distribucin de Linux que elija, y ms all del enfoque de este
  documento. En general, el mejor curso de accin es instalar Linux
  usando otros medios, obteniendo los controladores ms recientes, y
  depurando el problema entonces, si es que persiste.


  3.1.  No se cargan los mdulos bsicos de PCMCIA.


  Sntomas:


    Aparecen errores acerca de que la versin del kernel difiere cuando
     se ejecuta el script de inicio de PCMCIA.

    Despus de iniciar, lsmod no muestra algn mdulo PCMCIA.

    cardmgr informa no pcmcia driver in /proc/devices en el registro
     del sistema.

  Los mdulos del kernel contienen informacin de la versin, la cual se
  comprueba con el kernel actual cuando se carga un mdulo. El tipo de
  chequeo depende de la opcin del kernel CONFIG_MODVERSIONS. Si es
  falso, entonces el nmero de versin del kernel se compila dentro de
  cada mdulo y el programa insmod comprueba esto para compararlo con el
  kernel actual. Si CONFIG_MODVERSIONS es verdadero, entonces cada
  smbolo exportado por el kernel tiene un checksum. Esos cdigos se
  comparan con los cdigos correspondientes compilados dentro de un
  mdulo.

  La idea de esto fue crear mdulos menos dependientes de la versin,
  porque los checksums slo pueden cambiar si la interface del kernel
  cambia, y podra generalmente permanecer a lo largo de actualizaciones
  menores del kernel. En esencia, los checksums se han desactivado
  para ser mas restrictivos, porque muchas interfaces del kernel
  dependen de las opciones pasadas al momento de compilarse. Tambin,
  los checksums han resultado ser jueces excesivamente pesimistas
  respecto a compatibilidad.

  El enfoque prctico de esto es que los mdulos del kernel estn muy
  atados a tanto la versin del kernel, como a muchas opciones de
  configuracin del mismo. Generalmente, un grupo de mdulos compilados
  para un kernel 2.0.31 no cargar con otros kernels 2.0.31 a menos que
  se tome un cuidado especial asegurndose que los dos fueron compilados
  con configuraciones similares. Esto resulta ser un asunto difcil para
  la distribucin de mdulos precompilados del kernel.

  Tiene Vd. varias opciones:


    Si obtuvo controladores precompilados como parte de una
     distribucin de Linux, verifique que est usando el mismo kernel
     que vena con su distribucin, sin modificaciones. Si pretende usar
     los mdulos precompilados que venan con su distribucin, deber
     permanecer con el mismo kernel que trajera sta.

    Si ha reconfigurado o actualizado su kernel, probablemente
     necesitar compilar e instalar el paquete PCMCIA desde cero. Esto
     se hace fcilmente si ya tiene instalada la estructura fuente del
     kernel. Revise la seccin ``Compilacin e instalacin'' para
     instrucciones ms detalladas.

    En algunos casos, las incompatibilidades en otros componentes del
     sistema pueden prevenir la carga correcta de los mdulos del
     kernel. Si ha actualizado su propio kernel, ponga atencin a la
     seccin ``Requisitos'' acerca de utilidades para mdulos y binutils
     que se listan en el archivo Documentation/Changes del rbol de
     directorios de los fuentes del kernel.


  3.2.  Algunos mdulos controladores no cargan


  Sntomas:


    Los mdulos base (pcmcia_core, ds, i82365) cargan correctamente.

    Al insertar una tarjeta, emite un pitido agudo + un pitido grave.

    cardmgr informa de errores de versiones diferentes en el registro
     del sistema.

  Algunos de los mdulos controladores requieren servicios del kernel
  que pueden o no estar presentes, dependiendo de la configuracin del
  kernel.  Por ejemplo, los controladores de tarjetas SCSI requieren que
  el kernel sea compilado con soporte SCSI, y los controladores de red
  requieren un kernel de red. Si a un kernel le falta una caracterstica
  necesaria, insmod puede avisar acerca de smbolos indefinidos y
  rechazar la carga de un mdulo en particular. Note que los mensajes de
  error de insmod no distinguen entre errores por diferencias de
  versiones y errores por falta de smbolos.

  Especficamente:


    El controlador serie serial_cs requiere que el soporte en el kernel
     est activado con CONFIG_SERIAL. Este controlador se debe compilar
     como mdulo.

    El soporte para tarjetas serie multipuerto o tarjetas multifuncin
     que incluyen dispositivos serie o mdems, requieren que se active
     CONFIG_SERIAL_SHARE_IRQ.

    Los clientes SCSI requieren que CONFIG_SCSI est activada, junto
     con las opciones apropiadas para los controladores de alto nivel
     (CONFIG_BLK_DEV_SD, CONFIG_BLK_DEV_SR etc. para kernels 2.1) que
     pueden ser compilados como mdulos.

    Los controladores de red requieren que se habilite CONFIG_INET El
     soporte para red del kernel no se puede compilar como mdulo.

    El cliente token-ring requiere que el kernel se compile con la
     opcin CONFIG_TR activada.

  Hay dos formas de proceder:


    Recompile el kernel con las caractersticas necesarias activadas.

    Si las caractersticas han sido compiladas como mdulos, entonces
     modifique /etc/pcmcia/config para precargar esos mdulos.

  El archivo /etc/pcmcia/config puede especificar qu mdulos
  adicionales necesitan cargarse para un cliente en particular. Por
  ejemplo, para el controlador serial, uno puede ser:
              device "serial_cs"
                class "serial" module "misc/serial", "serial_cs"




  Las rutas hacia los mdulos se especifican relativas al nivel ms alto
  del directorio de mdulos para la versin actual del kernel; si no se
  especifica la ruta relativa, entonces la ruta por omisin ser hacia
  el subdirectorio pcmcia.


  3.3.  fallos en la bsqueda de interrupciones


  Sntomas:


    El sistema se congela cuando se cargan los controladores PCMCIA,
     incluso cuando no hay tarjetas presentes.

    El registro del sistema muestra que el sondeo tuvo xito, justo
     antes de que se congele, pero no muestra resultados de las pruebas
     de interrupciones.




  Despus de identificar el tipo de controlador, el controlador del
  socket sondea las interrupciones libres. Este sondeo o tanteo
  consiste en programar el controlador para cada interrupcin
  aparentemente libre, generando una interrupcin soft (suave), para ver
  si la interrupcin puede ser detectada correctamente. En algunos
  casos, el sondear una interrupcin en particular puede interferir con
  otro dispositivo del sistema.

  La razn de este tanteo es identificar interrupciones que parezcan
  estar libres (es decir, aquellas que no estn reservadas por otro
  controlador de dispositivo), ya sea porque no est conectado
  fsicamente a la controladora, o que est conectado a otro dispositivo
  que no tiene un controlador.

  En el registro del sistema, un sondeo realizado con xito tiene este
  aspecto:



              Intel PCIC probe:
                TI 1130 CardBus at mem 0x10211000, 2 sockets
                ...
                ISA irqs (scanned) = 5,7,9,10 status change on irq 10




  Hay dos formas de proceder:


    El sondeo de interrupciones puede estar restringida a una lista de
     interrupciones utilizando el parmetro irq_list para los
     controladores. Por ejemplo, irq_list=5,9,10 limitar la bsqueda a
     tres interrupciones. Todos los dispositivos PCMCIA estarn
     restringidos a usar esas interrupciones (asumiendo que pasen el
     tanteo). Puede ser que necesite determinar qu interrupciones son
     tanteables de forma segura a base de ensayo y error.

    El sondeo de interrupciones puede desactivarse completamente al
     cargar el controlador del socket con la opcin do_scan=0. En este
     caso, se usar una interrupcin por omisin, la cual evita
     interrupciones ya utilizadas por otros dispositivos.

  En cualquier caso, las opciones de tanteo pueden especificarse en el
  script de inicio de PCMCIA utilizando la definicin PCIC_OPTS, por
  ejemplo:



               PCIC_OPTS="irq_list=5,9,10"




  Como podr notar, /proc/interrupts es absolutamente intil cuando se
  van a diagnosticar problemas en el sondeo de interrupciones. El tanteo
  es lo suficientemente sensible como para nunca intentar usar una
  interrupcin que ya est en uso por otro controlador de Linux. Los
  controladores PCMCIA estn ya teniendo en cuenta toda la informacin
  de /proc/interrupts. Dependiendo del diseo del sistema, un
  dispositivo inactivo puede todava ocupar una interrupcin y causar
  problemas si es probado por PCMCIA.


  3.4.  Fallos en la bsqueda de puertos de E/S


  Sntomas:


    El sistema se congela cuando cardmgr se inicia por primera vez,
     incluso cuando no hay tarjetas presentes.

    El registro del sistema muestra un tanteo positivo del controlador
     del host, incluyendo resultados de sondeos de interrupcin, pero no
     muestra resultados de sondeos de E/S.

    En algunos casos, el tanteo de E/S ser positivo, pero avisa de un
     gran nmero de de exclusiones aleatorias.

  Cuando cardmgr procesa los rangos de puertos de E/S listados en
  /etc/pcmcia/config.opts, el kernel tantea esos rangos para detectar
  los dispositivos latentes que ocupan espacio de E/S pero que no estn
  asociados con un controlador de Linux. El tanteo es de slo lectura,
  pero en algunos casos extraos, leer desde un dispositivo puede
  interferir con una funcin importante del sistema, resultando en
  congelamiento.

  La gua de usuario de su sistema debe traer un mapa de los
  dispositivos del sistema, mostrando sus rangos de E/S y de memoria.
  Esos pueden ser excluidos explcitamente en config.opts.

  Por otra parte, si el sondeo no resulta fiable en su sistema, puede
  ser desactivado estableciendo CORE_OPTS a probe_io=0. En este caso,
  deber ser muy cuidadoso al especificar solamente rangos de puertos
  genuinamente disponibles en config.opts, en lugar de usar las
  configuraciones por omisin.


  3.5.  Fallos durante la comprobacin de la memoria


  Sntomas:

    Los controladores principales cargan correctamente cuando no hay
     tarjetas presentes, sin errores en el registro del sistema.

    El sistema se congela y/o reinicia tan pronto como se inserte una
     tarjeta antes de que se escuche algn pitido.

  O alternativamente:


    Todas las inserciones de tarjetas generan un pitido agudo seguido
     de un pitido grave.

    Todas las tarjetas son identificadas como anonymous memory cards

    El registro del sistema avisa que varios rangos de memoria han sido
     excluidos.

  Los mdulos principales realizan un chequeo de los primeros 16 bits de
  memoria en el momento en que se inserta la tarjeta. Esta exploracin
  puede interferir potencialmente con otros dispositivos de memoria
  mapeados. As mismo, los paquetes de controladores pre-3.0.0 realizan
  una exploracin ms agresiva que los controladores ms recientes. La
  ventana de memoria se define en /etc/pcmcia/config.opts. La ventana
  por omisin es grande, as que puede ayudar a restringir la
  exploracin a un rango ms reducido. Los rangos razonables para
  incluir son: 0xd0000-0xdffff, 0xc0000-0xcffff, 0xc8000-0xcffff, o
  0xd8000-0xdffff.

  Si tiene controladores PCMCIA DOS o Windows, puede deducir que regin
  de memoria usan esos controladores. Tenga en cuenta que las
  direcciones de memoria de DOS se especifican normalmente en forma de
  segmentos, los cuales dejan el ltimo dgito hexadecimal (as una
  direccin absoluta de 0xd0000 puede darse como 0xd000). Asegrese de
  aadir el dgito extra de cuando haga los cambios a config.opts.

  En casos no muy usuales, un fallo en el sondeo de memoria puede
  indicar un problema de configuracin en la sincronizacin con el
  controlador.  Revise la seccin ``Opciones de inicio'' para ms
  informacin acerca de cmo combatir los problemas comunes de
  sincronizacin.


    cs: warning: no high memory space available!

  Los puentes CardBus pueden reservar ventanas de memoria fuera del
  agujero de memoria de 640KB-1MB en la arquitectura de bus ISA.
  Generalmente es buena idea el configurar puentes CardBus para usar
  ventanas de memoria alta, porque es muy difcil que existan conflictos
  con otros dispositivos.  Tambin, las tarjetas CardBus pueden requerir
  grandes ventanas de memoria, las cuales puede ser difcil o imposible
  que coincidan en memoria baja.  Los servicios de tarjetas
  preferentemente localizarn las ventanas en memoria alta para puentes
  CardBus, si ambas ventanas de memoria (alta y baja) se definen en
  config.opts. El archivo config.opts por omisin ahora incluye una
  ventana de memoria alta de 0xa0000000-0xa0ffffff. Si tiene un puente
  CardBus y ha actualizado de una versin de PCMCIA anterior, aada esta
  ventana de memoria si no est ya definido.

  En algunos casos, la ventana de memoria alta por omisin no se
  utiliza.

  En algunos modelos IBM Thinkpad, una ventana de 0x60000000-0x60ffffff
  funcionar en lugar de la ventana por omisin.



  3.6.  Fallo al detectar cuando se inserta o se extrae la tarjeta


  Sntomas:


    Las tarjetas se detectan y configuran apropiadamente si estn
     presentes al momento de iniciar.

    Los controladores no responden a los eventos de insercin y
     extraccin, ya sea registrando los eventos en el registro del
     sistema, o emitiendo pitidos.

  En muchos casos, el controlador del socket (i82365 o tcic) probar
  automticamente y seleccionar la interrupcin apropiada para sealar
  cambios en el estado de la tarjeta. El tanteo automtico de
  interrupciones no funciona con algunos controladores compatibles con
  Intel, incluyendo los chips Cirrus y los chips usados en IBM
  Thinkpads. Si un dispositivo est inactivo en el momento del sondeo,
  su interrupcin puede parecer estar disponible. En esos casos, el
  controlador del socket puede usar una interrupcin que es usada por
  otro dispositivo.


  Con los controladores i82365 y tcic la opcin list_irq puede usarse
  para limitar las interrupciones que sern tanteadas. Esta lista limita
  el conjunto de interrupciones que pueden ser utilizadas por las
  tarjetas PCMCIA as como para monitorizar los cambios en el estado de
  la tarjeta. La opcin cs_irq puede usarse tambin para establecer
  explcitamente la interrupcin que ser utilizada para monitorizar
  dichos cambios.

  Si no puede encontrar un nmero de interrupcin que funcione, hay
  tambin un estado en modo de bsqueda: ambos, i82365 y tcic aceptarn
  una opcin poll_interval=100, para buscar cambios en el estado de la
  tarjeta una vez por segundo. Esta opcin puede usarse tambin si su
  sistema tiene un rango corto de interrupciones disponibles para
  utilizarse con tarjetas PCMCIA. Especialmente para sistemas con ms de
  un controlador de host, hay un pequeo punto para dedicar
  interrupciones para monitorizar cambios de estado de la tarjeta.

  Todas esas opciones deberan establecerse en la lnea PCIC_OPTS= ya
  sea en /etc/rc.d/rc.pcmcia o en /etc/sysconfig/pcmcia, dependiendo de
  la configuracin de su sistema.


  3.7.  Faltan recursos del sistema


  Sntomas:


    Cuando se inserta una tarjeta, es identificada correctamente, pero
     no puede ser configurada (secuencia de pitidos agudos/graves).

    Aparecen en el registro del sistema alguno de los siguientes
     mensajes:









         RequestIO: Resource in use
         RequestIRQ: Resource in use
         RequestWindow: Resource in use
         GetNextTuple: No more items
         could not allocate nn IO ports for CardBus socket n
         could not allocate nnK memory for CardBus socket n
         could not allocate interrupt for CardBus socket n





  La reserva de interrupciones indica generalmente un problema con el
  sondeo de interrupciones, vase la seccin ``Fallos en la bsqueda de
  interrupciones''.

  En algunos casos, el tanteo parece funcionar, pero nicamente aparecen
  una o dos interrupciones disponibles. Revise el registro de su sistema
  para ver si los resultados de la exploracin son plausibles.
  Desactivar el tanteo y seleccionar las interrupciones manualmente
  puede ayudar.

  Si el sondeo de interrupciones no est funcionando adecuadamente, el
  controlador del socket puede reservar una interrupcin para
  monitorizar inserciones de tarjetas, incluso cuando las interrupciones
  sean demasiado escasas para esto, constituye una buena idea. En este
  caso, puede Vd.  cambiar el controlador a modo de bsqueda
  estableciendo PCIC_OPTS a poll_interval=100. O, si tiene un
  controlador CardBus, intente con pci_csc=1, el cual selecciona una
  interrupcin PCI (si est disponible) para cambios de estado en la
  tarjeta.

  La reserva de puertos de E/S no es muy comn, pero algunas veces tiene
  lugar con tarjetas que requieren regiones de espacio de E/S grandes,
  contiguas y alineadas, o que slo reconocen pocas posiciones
  especficas de puertos.  Los rangos de puertos de E/S por omisin en
  /etc/pcmcia/config.opts normalmente son suficientes, pero pueden ser
  extendidos. En casos extraos, la reserva puede indicar que fall el
  sondeo de puertos de E/S; revise la seccin ``fallos en la bsqueda de
  puertos de E/S''.

  La reserva de memoria no es comn tampoco con las configuraciones de
  la ventana de memoria que vienen por omisin en config.opts. Las
  tarjetas CardBus pueden requerir regiones de memoria ms grandes que
  las tarjetas tpicas de 16-bits. Dado que de que las ventanas de
  memoria de las tarjetas CardBus pueden ser mapeadas a cualquier parte
  del espacio de la direccin PCI del host (en lugar de slo mapearlo al
  agujero de 640K-1MB en sistemas PC), es de utilidad especificar
  ventanas de memoria amplias en la memoria alta, tales como
  0xa0000000-0xa0ffffff.


  3.8.  Conflicto de recursos entre dos tarjetas


  Sntomas:


    Dos tarjetas funcionan bien cuando se usan separadamente.

    Cuando ambas tarjetas se insertan, slo funciona una.

  Esto usualmente indica un conflicto de recursos con un dispositivo del
  sistema que Linux no conoce. Los dispositivos PCMCIA son configurados
  dinmicamente, as, por ejemplo, las interrupciones son reservadas
  conforme se vayan necesitando, en lugar de ser asignadas
  especficamente a tarjetas o sockets en particular. Dada una lista de
  recursos que parecen estar disponibles, las tarjetas son recursos
  asignados en el orden en que son configurados. En este caso, a la
  tarjeta configurada en ltimo lugar se le est asignando un recurso
  que en efecto, no est libre.

  Revise el registro del sistema para ver qu recursos estn usados por
  la tarjeta que no funciona. Exclyalos de /etc/pcmcia/config.opts, y
  reinicie el demonio cardmgr para recargar la base de datos de
  recursos.


  3.9.  No se completa la configuracin de dispositivos


  Sntomas:


    Cuando se inserta una tarjeta, se escucha un pitido agudo.

    Las inserciones y extracciones posteriores de tarjetas son
     ignoradas.

  Esto indica que la tarjeta fue identificada con xito, sin embargo,
  cardmgr fue incapaz de completar el proceso de configuracin por
  alguna razn. La ms comn es que un paso en el script de
  configuracin se ha bloqueado. Un buen ejemplo podra ser el script de
  red bloquendose si una tarjeta de red se inserta sin tener presente
  una conexin a la red.

  Para verificar el problema, puede ejecutar manualmente un script de
  configuracin para ver dnde se est bloqueando. Los scripts estn en
  el directorio /etc/pcmcia. Toman dos parmetros: un nombre de
  dispositivo, y una accin. El demonio cardmgr graba los comandos de
  configuracin en el registro del sistema. Por ejemplo, si el registro
  del sistema muestra que el comando ./network start eth0 fue el ltimo
  comando ejecutado por cardmgr, el siguiente comando puede rastrear el
  script:



              sh -x /etc/pcmcia/network start eth0






  4.  Uso y caractersticas



  4.1.  Herramientas para configurar y monitorizar dispositivos PCMCIA


  Si los mdulos son todos cargados correctamente, la salida del comando
  lsmod debera 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 tambin incluir la salida del
  controlador del socket, describiendo el(los) controlador(es) del host
  encontrado(s) y el nmero de sockets detectados.


  4.1.1.  El demonio de configuracin 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 tambin
  usa pitidos para sealar cambios en el estado de las tarjetas.  Los
  tonos de los pitidos indican el xito o fracaso de un paso de la
  configuracin 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 razn.  Un pitido grave indica
  que la tarjeta no pudo ser identificada.

  cardmgr registra informacin 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 lneas 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 mltiples dispositivos
  asociados con el mismo controlador, el quinto es el nombre del
  dispositivo, y los dos campos finales son los nmeros 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 cmo
  identificar esas tarjetas, y cual(es) controlador(es) pertenecen a
  cada tarjeta. El formato de este archivo se describe en la pgina del
  manual de pcmcia(5).


  4.1.2.  Las utilidades cardctl  y cardinfo


  El comando cardctl puede ser usado para comprobar el estado de un
  socket, o para ver cmo est configurado. Tambin puede ser usado para
  alterar el estado de configuracin 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 informacin de la identificacin 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 grfica el estado
  actual de todos los sockets PCMCIA, similar en contenido a cardctl
  config. Tambin proporciona una interfaz grfica para la mayora de
  las otras funciones de cardctl.


  4.1.3.  Insercin y extraccin de tarjetas


  En teora, puede insertar y extraer tarjetas PCMCIA en cualquier
  momento.  Sin embargo, es una buena idea no expulsar una tarjeta que
  est siendo utilizada por algn programa de aplicacin. Los kernels
  anteriores al 1.1.77 solan congelarse cuando las tarjetas serie/mdem
  eran expulsadas, aunque esto parece estar ya solucionado.


  4.1.4.  Servicios de Tarjetas y Administracin Avanzada de Energa


  Los servicios de tarjetas pueden ser compilados con soporte para APM
  (Advanced Power Management) (En castellano: Administracin Avanzada de
  Energa), 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 ms informacin disponible en
  http://www.worldvisions.ca/~apenwarr/apmd/. Los mdulos PCMCIA sern
  configurados automticamente para APM si es detectada una versin
  compatible en el sistema.

  Est APM configurado o no, puede usar cardctl suspend antes de
  suspender su porttil, y cardctl resume despus de despertarlo, para
  apagar y reactivar sus tarjetas PCMCIA. No funcionar con un mdem que
  est en uso, porque el controlador serie no puede guardar y
  restablecer los parmetros operativos del mdem.

  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.


  4.1.5.  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 desactivacin ser
  incompleto, y puede que algunos mdulos 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 configuracin de PCMCIA


  Cada dispositivo PCMCIA tiene una clase asociada que describe cmo
  debe ser configurado y manejado. Las clases estn 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
  configuracin (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 extrada.  Para tarjetas con varios dispositivos asociados, el
  script ser invocado para cada dispositivo.

  Los scripts de configuracin inician al extraer algo de informacin
  acerca del dispositivo de /var/run/stab. Cada script construye una
  direccin 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 informacin
  acerca de cmo debe ser configurado un dispositivo en esta direccin.
  Para algunos, la direccin del dispositivo es slo el nmero de
  socket. Para otros, se incluye informacin extra que puede ser til
  para decidir cmo configurar el dispositivo. Por ejemplo, los
  dispositivos de red pasan su direccin ethernet de hardware como parte
  de la direccin 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 parmetro es usado para soportar
  mltiples 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 parmetros de
  configuracin de red.  El esquema actual se selecciona usando el
  comando cardctl scheme. Si no se define un esquema, por omisin se
  establece el esquema default.

  Como regla general, cuando se configura Linux para un equipo porttil,
  los dispositivos PCMCIA deben ser configurados desde los scripts para
  dispositivos PCMCIA. No intente configurar un dispositivo PCMCIA de la
  misma forma en que configurara un dispositivo conectado de forma
  permanente. No obstante, algunas distribuciones de Linux suministran
  paquetes PCMCIA que estn relacionadas con las herramientas de
  configuracin de dispositivos propios de la misma distribucin. En ese
  caso, alguna de las siguientes secciones puede o no aplicar;
  idealmente, esto sera documentado por los encargados de la
  distribucin.


  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 comnmente 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 sern
  ejecutados slo cuando su tarjeta ethernet est presente. Si su
  sistema tiene la facilidad de configuracin de red automtica, puede o
  no ser PCMCIA. Consulte la documentacin de su distribucin de Linux y
  la seccin `` Notas acerca de distribuciones de Linux especficas''
  para determinar si los dispositivos de red PCMCIA deben ser
  configurados con herramientas automticas, o editando network.opts.

  La direccin de dispositivo pasada a network.opts consiste en cuatro
  campos separados por comas: el esquema, el nmero de socket, la
  instancia de dispositivo, y la direccin 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
  propsitos diferentes, una opcin puede ser el configurar las tarjetas
  basadas en la posicin 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




  Alternatvamente, pueden ser configuradas usando su direccin 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





  4.3.1.  Parmetros de dispositivos de red


  Los siguientes parmetros 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 opcin booleana (y/n): indica si la direccin IP e
        informacin de rutado del host se puede obtener ya sea por BOOTP
        o DHCP, con el demonio pump.


     BOOTP
        Una opcin booleana (y/n): indica si la direccin IP del host y
        su informacin de rutado se obtendrn usando el protocolo BOOTP,
        con bootpc.


     DHCP
        Un opcin booleana (y/n): indica si la direccin IP del host y
        su informacin de rutado se obtendrn de un servidor DHCP, con
        dhcpcd.


     IPADDR
        La direccin IP para esta interface.


     NETMASK, BROADCAST, NETWORK
        Parmetros bsicos de red: revise el COMO de red para ms
        informacin.


     GATEWAY
        La direccin IP de una mquina pasarela para la subred de este
        host.  Los paquetes con destinos hacia afuera de esta subred
        sern 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 bsqueda para bsqueda de nombres, es aadida a
        /etc/resolv.conf. DOMAIN y SEARCH son mutuamente exclusivos:
        revise man resolver para ms informacin.


     DNS_1,DNS_2,DNS_3
        Nombres de host o direcciones IP para servidores de nombres para
        esta interface, para ser aadidos 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 nmero 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 automticamente sistemas de archivos NFS,
  primero aada 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 smplemente expulsada sin precaucin.


  En adicin a los parmetros usuales de configuracin de red, el script
  network.opts puede especificar acciones extra a tomar despus de que
  una interface es configurada, o antes de que se apague la interface.
  Si network.opts define una funcin de shell llamada start_fn, ser
  invocada por el script de red despus de que la interface sea
  configurada, y el nombre de interface se pasar a la funcin 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 configuracin
  IF_PORT. Esto puede ser, ya sea un valor numrico como en las
  versiones anteriores de PCMCIA, o una palabra clave que identifique el
  tipo de transceptor. Todos los controladores de red estn configurados
  por omisin 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
  rpidamente los cambios de transceptor en cualquier momento.  Las
  primeras versiones del controlador 3x589 tenan un algoritmo de
  autodeteccin 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 autodeteccin
  con:



              ifconfig eth0 down up





  4.3.2.  Comentarios acerca de tarjetas especficas



    Con las tarjetas IBM CCAE y Socket EA, el tipo de transceptor
     (10base2, 10baseT, AUI), necesita configurarse cuando el
     dispositivo de red est configurado. Asegrese de que el tipo de
     transceptor que aparece en el registro del sistema concuerda con su
     conexin.

    Los controladores para tarjetas SMC, Megahertz, Ositech, y 3Com
     deben autodetectar el tipo de red conectada (10base2 o 10baseT).
     Establecer el tipo de transceptor cuando se carga el controlador
     sirve para definir la primera bsqueda de la tarjeta.

    La Farallon EtherWave actualmente est basada en la 3Com 3c589, con
     un transceptor especial. Aunque la EtherWave usa conexiones al
     estilo 10baseT, su transceptor requiere que la 3c589 sea
     configurada en modo 10base2.

    Si tiene problemas con un adaptador IBM CCAE, NE4100, Thomas
     Conrad, o Kingston, pruebe a incrementar el tiempo de acceso con la
     opcin mem_speed=# al mdulo pcnet_cs. Un ejemplo de cmo hacer
     esto se muestra en el archivo config.opts. Pruebe con velocidades
     por encima de 1000 (en nanosegundos).

    Para el adaptador New Media Ethernet, en algunos sistemas, puede
     ser necesario incrementar el tiempo de acceso al puerto de E/S con
     la opcin io_speed=# cuando se cargue el mdulo pcmcia_core.  Edite
     CORE_OPTS en el script de inicio para activar esta opcin.

    El soporte multicast en el controlador New Media Ethernet est
     incompleto. El ltimo controlador funcionar con kernels multicast,
     pero ignorar los paquetes multicast. El modo promiscuo debe
     funcionar apropiadamente.

    El controlador usado por los controladores token ring IBM y 3Com
     parecen comportarse bastante mal si las tarjetas no estn
     conectadas cuando son inicializadas. Conecte siempre esas tarjetas
     a la red antes de activarlas. Si ifconfig informa que la direccin
     de harware como todo 0, esto debe ser debido a un problema de
     configuracin de la ventana de memoria.

    Algunas tarjetas Linksys, D-Link, e IC-Card 10baseT/10base2 tienen
     una forma nica de seleccionar el tipo de transceptor que no es
     manejado por los controladores de Linux. Una solucin es arrancar
     DOS y utilizar la utilidad proporcionada por el fabricante para
     seleccionar el transceptor, haciendo entonces un arranque en
     caliente de Linux. Alternativamente, hay una utilidad Linux para
     realizar esta funcin, que est disponible en
      ftp://hyper.stanford.edu/pub/pcmcia/extras/dlport.c.

    Para adaptadores de red inalmbricos WaveLAN, Jean Tourrilhes,
     jt@hpl.hp.com)  tiene disponible el Wireless HOWTO (Cmo
     inalmbrico) en
     http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/


  4.3.3.  Diagnstico de problemas con adaptadores de red



    Es reconocida su tarjeta como una tarjeta ethernet? Revise el
     registro del sistema y asegrese de que cardmgr identifique la
     tarjeta correctamente e inicia uno de los controladores de red. Si
     no lo hace, su tarjeta puede ser utilizable todava si es
     compatible con una tarjeta soportada. Esto es posible hacerlo
     fcilmente si la tarjeta dice ser NE2000 compatible.

    Est configurada la tarjeta apropiadamente? Si est usando una
     tarjeta soportada, y fue reconocida por cardmgr, pero todava no
     funciona, pudo ser un conflicto de interrupcin o puerto con otro
     dispositivo. Determine qu recursos est utilizando la tarjeta (en
     el registro del sistema), e intente de nuevo excluyndolos en
     /etc/pcmcia/config.opts para forzar a la tarjeta a usar otros.

    Si su tarjeta parece estar configurada adecuadamente, pero a veces
     se congela, particularmente bajo carga alta, puede ser que necesite
     intentar cambiar los parmetros de sincronizacin de su controlador
     del socket. Revise la seccin ``Opciones de Inicio'' para ms
     informacin.

    Si obtiene mensajes de network unreachable cuando intenta acceder a
     la red, la informacin especificada en /etc/pcmcia/network.opts es
     incorrecta. Este mensaje es una indicacin absolutamente a prueba
     de tontos de que hay un error de rutado.  Por otra parte, las
     tarjetas mal configuradas normalmente fallarn silenciosamente.


    Para diagnosticar problemas en /etc/pcmcia/network.opts, empiece
     tratando de hacer ping a otros sistemas en la misma subred usando
     sus direcciones IP. Trate entonces de hacer ping a su puerta de
     enlace o pasarela (gateway), y a mquinas en otras subredes.
     Debe ser posible hacer ping a las mquinas por su nombre si lleva a
     cabo dichas pruebas con xito.

    Asegrese que su problema sea PCMCIA. Puede ser muy til comprobar
     si la tarjeta funciona correctamente bajo DOS con los controladores
     del fabricante.  Verifique bien sus modificaciones al script
     /etc/pcmcia/network.opts. Asegrese que su cable, conector T,
     terminador, etc. estn funcionando.


  4.4.  Dispositivos serie PCMCIA y mdems


  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 mdems. El uso de dispositivos cua* se desaprueba en los kernels
  actuales, y se puede usar ttyS* para todas las aplicaciones. La
  configuracin de un dispositivo serie se puede examinar y modificar
  con el comando setserial.

  Cuando se detecta una tarjeta serie o mdem, 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
  nmero de puertos serie que tenga. El dispositivo ttyS* es el que
  aparecer en /var/run/stab. El script de opciones por omisin 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 mdem PCMCIA.
  Este script slo debera ser utilizado para configurar dispositivos no
  extrables. Modifique /etc/pcmcia/serial.opts si quiere hacer algo
  especial para configurar su mdem. No intente tampoco cambiar las
  configuraciones de E/S y puerto de un dispositivo serie utilizando
  setserial. Esto podra decir al controlador serie que busque al
  dispositivo en un lugar diferente, pero no cambiar cmo el hardware de
  la tarjeta est configurado actualmente. El script de configuracin
  serie le permite especificar otras opciones para setserial, as como
  si se debe aadir una lnea a /etc/inittab para este puerto.

  La direccin del dispositivo pasada a serial.opts tiene tres campos
  separados por comas: el primero es el esquema, el segundo es el nmero
  de socket, y el tercero es la instancia del dispositivo. La instancia
  del dispositivo puede tomar varios valores para tarjetas que soporten
  mltiples puertos serie, pero para tarjetas de un slo puerto, siempre
  ser 0. Si comunmente usa ms de un mdem, puede especificar
  diferentes configuraciones basadas en la posicin 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 mdem 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 mdem, 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 mdulo debe recargarse. Edite la entrada
  del dispositivo serie, de modo que se lea:



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





  4.4.1.  Parmetros de dispositivos serie


  Los siguientes parmetros se pueden definir en serial.opts:



     LINK
        Especifica una ruta para un enlace simblico 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 aadir una entrada inittab para
        el dispositivo.


  Por ejemplo:



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





  4.4.2.  Diagnstico de problemas con dispositivos serie



    Se reconoce su tarjeta como un mdem? Revise el registro del
     sistema y asegrese que cardmgr identifica la tarjeta correctamente
     e inicia el controlador serial_cs. Si no, necesitar aadir una
     nueva entrada en el fichero /etc/pcmcia/config para que pueda ser
     identificado apropiadamente. Consulte la seccin ``Configuracin de
     tarjetas no reconocidas'' para ms detalles.

    Es el mdem configurado satisfactoriamente por serial_cs?
     Nuevamente, revise el registro del sistema y busque los mensajes
     del controlador serial_cs. Si ve mensajes como register_serial()
     failed debe tener un conflicto de puerto de E/S con otro
     dispositivo.  Otra causa de conflictos tiene lugar cuando el
     dispositivo es reconocido como una UART 8250;  la mayora de mdems
     modernos deben identificarse como UART 16550A. Si piensa que est
     viendo un conflicto de puertos, edite /etc/pcmcia/config.opts y
     excluya el rango de puertos que fue reservado para el mdem.

    Hay un conflicto de interrupciones? Si el registro del sistema se
     parece normal, pero el mdem no funciona, pruebe a cambiar la irq a
     0 usando setserial y comprobar si el mdem funciona. Esto causa que
     el controlador serie use un modo de bsqueda ms bajo en lugar de
     usar interrupciones. Si esto parece solucionar el problema, es
     probable que otro dispositivo del sistema est usando la
     interrupcin seleccionada por serial_cs. Deber aadir una lnea a
     /etc/pcmcia/config.opts para excluir esta interrupcin.

    Si el mdem parece funcionar muy, muy lento, esto es casi un
     indicador seguro de un conflicto de interrupciones. Asegrese que
     su problema sea realmente PCMCIA. Puede ayudarle comprobar si la
     tarjeta funciona bajo DOS con los controladores del fabricante. As
     mismo, evite probar la tarjeta con algo complicado como SLIP o PPP
     hasta que est seguro que haga conexiones simples. Si es capaz de
     establecer conexiones simples, pero no con SLIP, su problema es
     ms probable que tenga que ver con SLIP, y no con PCMCIA.

    Si obtiene mensajes del kernel indicando que el mdulo serial_cs no
     puede cargarse, significa que su kernel no tiene soporte para
     dispositivo serie. Si ha compilado el controlador serie como
     mdulo, debe modificar /etc/pcmcia/config para indicar que el
     mdulo serie debe cargarse antes de serial_cs.


  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 travs de los archivos especiales de
  dispositivo /dev/lp*. La configuracin de un dispositivo de impresora
  puede examinarse y modificarse con el comando tunelp.

  El mdulo parport_cs depende de los controladores parport y
  parport_pc, los cuales pueden ser compilados dentro del kernel o bien
  compilados como mdulos. 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 mdulos. Estos controladores slo reconocen
  dispositivos de puerto paralelo en el momento de iniciar el mdulo,
  as que pueden cargarse despus de que cualquier dispositivo paralelo
  PC Card sea configurado.

  La direccin del dispositivo pasada a parport.opts tiene tres campos
  separados por comas: el primero es el esquema, el segundo es el nmero
  de socket, y el tercero es la instancia del dispositivo. La instancia
  del dispositivo puede tomar varios valores para tarjetas que soportan
  mltiples puertos paralelos, pero para tarjetas de un solo puerto,
  siempre ser 0. Si usa habitualmente ms de una tarjeta, necesitar
  especificar diferentes configuraciones basadas en la posicin 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 bsico de puerto
  paralelo como mdulo, debe editar /etc/pcmcia/config para indicar qu
  mdulos 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"





  4.5.1.  Parmetros de dispositivos paralelos


  Los siguientes parmetros pueden especificarse en parport.opts:



     LINK
        Especifica la ruta del enlace simblico 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=""





  4.5.2.  Diagnstico de problemas con dispositivos de puertos paralelos



    Hay un conflicto de interrupciones? Si el registro del sistema
     parece estar bien, pero el puerto no funciona, cambie la irq a 0
     usando tunelp, y compruebe si las cosas mejoran.  Esto cambia el
     controlador a modo de bsqueda. Si parece solucionar el problema,
     es probable que otro dispositivo en su sistema est utilizando la
     interrupcin seleccionada por parport_cs. Deber aadir una lnea a
     /etc/pcmcia/config.opts para excluir esta interrupcin.

    Si su kernel genera mensajes indicando que el mdulo parport_cs no
     puede cargarse, significa que el kernel no tiene soporte para
     dispositivos paralelos. Si tiene compilado el controlador paralelo
     como mdulo, necesita modificar /etc/pcmcia/config para indicar que
     los mdulos parport y parport_pc deben cargarse antes que
     parport_cs.


  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 cdigo
  especfico 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, slo se soporta una tarjeta
  extrable por controlador.

  Cuando se detecta un nuevo adaptador SCSI, los controladores SCSI
  sondearn la presencia de dispositivos. Revise el registro del sistema
  para asegurar que los dispositivos sean detectado apropiadamente. Los
  nuevos dispositivos SCSI se asignarn 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 configuracin /etc/pcmcia/scsi se
  llamar una vez para cada dispositivo conectado, ya sea para
  configurar o apagar ese dispositivo. El script por omisin no toma
  ninguna accin 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
  nmero de socket, el canal SCSI, ID, y el nmero lgico de unidad, y
  opcionalmente, el nmero de particin. El tipo de dispositivo ser sd
  para discos, st para cintas, sr para unidades de CD-ROM, y sg para
  dispositivos SCSI genricos. Para la mayora de configuraciones, la
  unidad lgica y el canal SCSI sern 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 particin, con las direcciones ms 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
  nmero hexadecimal de cuatro dgitos. 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 segn demanda. Para hacerlo, necesita editar
  /etc/pcmcia/config para decirle a cardmgr qu mdulos 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"




  Especificara que se cargase el mdulo principal SCSI y el mdulo
  controlador de disco antes de cargar el mdulo controlador PCMCIA
  normal.  El script Configure de PCMCIA no detectar automticamente
  mdulos SCSI modularizados, as que necesitar usar la opcin de
  configuracin manual para habilitar el soporte SCSI.

  Encienda siempre los dispositivos SCSI antes de encender su porttil,
  o antes de insertar la tarjeta adaptadora, para que el bus SCSI est
  listo cuando el adaptador se configure. Tambin hay que ser muy
  cuidadoso al expulsar un adaptador SCSI. Asegrese 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 fsicamente. Por ahora, todos los dispositivos SCSI debern
  encenderse antes de conectar un adaptador SCSI, y debern permanecer
  conectados hasta que desconecte el adaptador y/o apague su porttil.

  Hay una complicacin potencial cuando se usan tarjetas que no se
  presentan con adaptadores de bus ISA ordinarios. El bus SCSI
  transporta una seal termination power (corriente de terminacin) que
  se necesita para que los terminadores pasivos SCSI ordinarios
  funcionen apropiadamente. Los adaptadores PCMCIA SCSI no suministran
  corriente de terminacin, 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 alimentacin
  externa. Cuando configure la entrada para el dispositivo SCSI, hgalo
  teniendo en cuenta si alguno de sus dispositivos requieren o pueden
  suministrar corriente de terminacin o no.


  4.6.1.  Parmetros de dispositivos SCSI


  Los siguientes parmetros pueden ser especificados en scsi.opts:



     DO_FSTAB
        Es una opcin booleana (y/n): Especifica si se debe aadir una
        entrada /etc/fstab para este dispositivo.


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


     DO_MOUNT
        Es una opcin booleana (y/n): Especifica si este dispositivo
        debe montarse automticamente al momento de insertar la tarjeta.


     FSTYPE, OPTS, MOUNTPT
        El tipo de sistema de archivos, opciones de montaje, y punto de
        montaje que se utilizarn 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 particin 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






  4.6.2.  Comentarios acerca de tarjetas especficas



    La tarjeta Adaptec APA-1480 CardBus necesita una ventana de puerto
     de E/S grande (256 puertos contiguos alineados en un lmite de 256
     puertos). Puede que sea necesario incluir las regiones de los
     puertos de E/S en /etc/pcmcia/config.opts para garantizar que cada
     ventana pueda encontrarse.

    No est soportado el adaptador Adaptec APA-460 SlimSCSI. Esta
     tarjeta se vendi originalmente bajo el nombre de Trantor, y cuando
     Adaptec se uni a Trantor, continuaron vendiendo la tarjeta Trantor
     con etiqueta Adaptec. La APA-460 no es compatible con ningn
     controlador de Linux existente.

    He sido informado de la mala interaccin entre la tarjeta New Media
     Bus Toaster y un scanner UMAX Astra 1200s. Debido a la complejidad
     del protocolo SCSI, cuando se diagnostican problemas con
     dispositivos SCSI, es digno de considerar que combinaciones
     incompatibles como esta pueden existir y no pueden documentarse.




  4.6.3.  Diagnstico de problemas con adaptadores SCSI



    Con el controlador aha152x_cs (usado por Adaptec, New Media, y
     algunos ms), parece que el soporte SCSI de conexin/reconexin
     constituye una fuente de problemas frecuentes con dispositivos de
     cinta. Para desactivar esta caracterstica, aada lo siguiente a
     /etc/pcmcia/config.opts:



         module "aha152x_cs" opts "reconnect=0"





    Con el controlador aha152x_cs, ciertos dispositivos parecen
     requerir un tiempo de espera de inicio ms grande, controlado con
     el parmetro reset_delay del mdulo. La unidad CDR Yamaha 4416S es
     uno de esos dispositivos. El resultado es que el dispositivo es
     identificado sin problemas, y luego se congela el sistema. En esos
     casos, pruebe:



              module "aha152x_cs" opts "reset_delay=500"





    Otra fuente potencial de problemas en el sondeo de dispositivos
     SCSI es el tanteo de LUNs mltiples. Si ve que la deteccin de un
     dispositivo es realizada sin problemas, seguida de timeouts del
     bus SCSI cuando se sondea el LUN 1 para ese dispositivo, debe
     desactivar la opcin CONFIG_SCSI_MULTI_LUN del kernel.

    Si tiene compilado el soporte SCSI modularmente (CONFIG_SCSI es m),
     debe modificar /etc/pcmcia/config para cargar los mdulos SCSI
     antes de que se cargue el controlador *_cs apropiado.

    Si obtiene mensajes de tipo aborting command due to timeout
     (abortando el comando debido a timeout), cuando se sondea el bus
     SCSI, es muy probable que tenga un conflicto de interrupciones.

    Si el controlador del host avisa no SCSI devices found (no se han
     encontrado dispositivos SCSI), verifique que el kernel fue
     compilado con los controladores SCSI de alto nivel apropiados para
     sus dispositivos (por ejemplo, disco, cinta, CD-ROM, y/o
     genricos). Si falta un controlador de alto nivel, los dispositivos
     de ese tipo se ignorarn.



  4.7.  Tarjetas de memoria PCMCIA


  El controlador memory_cs maneja todos los tipos de tarjetas de
  memoria, y tambin proporciona acceso directo al espacio de la
  direccin de memoria PCMCIA para tarjetas que tienen otras funciones.
  Cuando se carga, crea una combinacin de dispositivos de caracteres y
  de bloques.  Revise la pgina del manual del mdulo para ver una
  descripcin 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 direccin de dispositivo que se pasa a memory.opts consiste de dos
  campos: el esquema, y el nmero de socket. Las opciones se aplican a
  la primera particin de memoria comn en la tarjeta correspondiente.

  Algunas tarjetas de memoria antiguas, y la mayora de las tarjetas de
  RAM simple esttica, carecen de Card Information Structure, CIS
  (Estructura de Informacin 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
  errneamente como tarjetas de memoria.

  El controlador memory_cs usa un algoritmo heurstico 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 errnea, su tamao puede
  especificarse explcitamente cuando se haga uso de los comandos dd o
  mkfs.


  4.7.1.  Parmetros de dispositivos de memoria




     DO_FSTAB
        Es una opcin booleana (y/n): Especifica si se debe aadir una
        entrada /etc/fstab para este dispositivo.


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


     DO_MOUNT
        Es una opcin booleana (y/n): Especifica si este dispositivo
        debe montarse automticamente 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 utilizarn para la entrada en fstab y/o para
        montar el dispositivo.


  He aqu un ejemplo de un script que montar automticamente las
  tarjetas de memoria basndose en el socket en que estn 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






  4.7.2.  Uso de tarjetas de memoria flash


  La direccin de dispositivo que se pasa a ftl.opts consiste en tres o
  cuatro campos: el esquema, el nmero de socket, el nmero de regin, y
  opcionalmente, el nmero de particin. La mayora de tarjetas flash
  tienen slo una regin de memoria flash, as que el nmero de regin
  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 particin FTL, o
  flash translation layer, en el dispositivo por medio del comando
  ftl_format. Esta capa oculta los detalles especficos de dispositivo
  de la programacin de la memoria flash y hace que la tarjeta se vea
  como un simple dispositivo de bloques. Por ejemplo:



              ftl_format -i /dev/mem0c0c




  Ntese 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 difcil. Los nmeros menores de
  los dispositivos tienen tres partes: el nmero de tarjeta, el nmero
  de regin en esa tarjeta, y opcionalmente, la particin dentro de esa
  regin. Una regin puede ser tratada como un simple dispositivo de
  bloques sin tabla de particin (como un disquete), o puede
  particionarse como un disco duro.  El dispositivo ftl0c0 es la tarjeta
  0, regin de memoria comn 0, la regin entera. Los dispositivos de
  ftl0c0p1 a ftl0c0p4 son primariamente las particiones de 1 a 4 si la
  regin 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 ms 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 informacin de la configuracin de la tarjeta.
  Para prevenir el borrado accidental de esta informacin, ftl_format
  automticamente detectar esto y saltar al primer bloque cuando se
  cree una particin 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 especfica PCMCIA del controlador es ide_cs.
  Asegrese de usar cardctl o cardinfo para apagar la tarjeta ATA/IDE
  antes de expulsarla, porque el controlador no fue programado a prueba
  de extraccin en caliente.

  La direccin de dispositivo que se pasa a ide.opts consiste de tres o
  cuatro campos: el esquema actual, el nmero de socket, el nmero de
  serie de la unidad, y un nmero opcional de particin. El comando
  ide_info puede usarse para obtener el nmero 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 particin.


  4.8.1.  Parmetros para discos ATA/IDE


  Los siguientes parmetros se pueden especificar en ide.opts:



     DO_FSTAB
        Es una opcin booleana (y/n): Especifica si se debe aadir una
        entrada /etc/fstab para este dispositivo.


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


     DO_MOUNT
        Es una opcin booleana (y/n): Especifica si este dispositivo
        debe montarse automticamente al momento de insertar la tarjeta.


     FSTYPE, OPTS, MOUNTPT
        El tipo de sistema de archivos, opciones de montaje, y punto de
        montaje que se utilizarn para la entrada en fstab y/o para
        montar el dispositivo.


  He aqui un ejemplo del archivo ide.opts para montar la primera
  particin 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






  4.8.2.  Diagnstico de problemas con adaptadores ATA/IDE



    Algunas unidades IDE violan la especificacin PCMCIA al requerir un
     tiempo mayor para iniciar que el mximo permitido para la
     configuracin de la tarjeta. Desde la versin 3.0.6, el controlador
     ide_cs automticamente intentar sondear el dispositivo para darle
     tiempo de iniciarlos. Con los controladores antiguos, necesita
     cargar el mdulo pcmcia_core con:



              CORE_OPTS="unreset_delay=400"





    Para usar una unidad de CD-ROM ATA/IDE, el kernel debe compilarse
     con CONFIG_BLK_DEV_IDECD activado. Normalmente ser el caso para
     los kernels estndar, sin embargo es bueno estar enterado por si
     compila un kernel personalizado.


  4.9.  Tarjetas multifuncin


  Se puede compartir una simple interrupcin entre varios controladores,
  como el controlador serie y el controlador ethernet: en efecto: la
  especificacin PCMCIA requiere que todas las funciones de las tarjetas
  compartan la misma interrupcin. Normalmente, todas las funciones de
  las tarjetas estn disponibles sin tener que intercambiar
  controladores.

  El uso simultneo de dos funciones de tarjetas es algo difcil 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
  simultneo, 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
  simultneo ethernet y mdem. Los controladores ethernet y serie se
  cargan automticamente. Sin embargo, el controlador ethernet por
  omisin posee la interrupcin de la tarjeta. Para usar el mdem,
  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 interrupcin que previamente utilizaba el controlador
  ethernet.



  5.  Temas avanzados



  5.1.  Apartado de recursos para dispositivos PCMCIA


  En teora, no debe importar qu interrupcin se reserva para cada
  dispositivo, mientras dos dispositivos no sean configurados para usar
  la misma interrupcin.

  En /etc/pcmcia/config.opts encontrar un lugar para excluir las
  interrupciones que son usadas por dispositivos no PCMCIA.

  De igual modo, no hay forma de especificar directamente las
  direcciones de E/S que va a utilizar una tarjeta. El archivo
  /etc/pcmcia/config.opts permite especificar rangos de puertos
  disponibles para ser usados por una tarjeta cualquiera, o para excluir
  rangos que causan conflictos con otros dispositivos.

  Despus de modificar /etc/pcmcia/config.opts, puede reiniciar cardmgr
  con kill -HUP.

  La interrupcin que se utiliza para monitorizar el estado de la
  tarjeta se determina por el mdulo controlador de bajo nivel del
  socket (i82365 o tcic) antes de que cardmgr pase a /etc/pcmcia/config,
  as no se ve afectado con los cambios a este archivo. Para establecer
  esta interrupcin, use la opcin cs_irq= cuando se cargue el
  controlador del socket, estableciendo la variable PCIC_OPTS en
  /etc/rc.d/rc.pcmcia

  Todos los controladores de tarjetas tienen un parmetro llamado
  irq_list para especificar qu interrupciones pueden intentar reservar.
  Dichas opciones deben establecerse en el archivo /etc/pcmcia/config.
  Por ejemplo:



              device "serial_cs"
                module "serial_cs" opts "irq_list=8,12"
                ...




  debe especificarse que el controlador serie debe utilizar slo la irq
  8 o la 12. Sin importar las configuraciones de irq_list, los Servicios
  de Tarjetas nunca reservarn una interrupcin que ya est siendo usada
  por otro dispositivo, o una interrupcin que est excluida en el
  archivo de configuracin.


  5.2.  trabajo?  Cmo puedo separar configuraciones de los dispositivos
  para casa y el


  Esto es bastante fcil con el soporte de esquemas. Usando dos
  esquemas de configuracin, llamados casa y trabajo. He aqu un ejemplo
  del script network.opts con configuraciones especficas de esquemas:



              case "$ADDRESS" in
              trabajo,*,*,*)
                  # definiciones para la tarjeta de red en el esquema trabajo
                  ...
                  ;;
              casa,*,*,*|default,*,*,*)
                  # definiciones para la tarjeta de red en el esquema casa
                  ...
                  ;;
              esac




  La primera parte de una direccin de dispositivo siempre es la
  configuracin del esquema. En este ejemplo, la segunda clusula case
  aplicar para ambos esquemas. As, si un esquema no est establecido
  por cualquier razn, se tomar por omisin la configuracin casa.

  Ahora, para seleccionar entre dos conjuntos de configuraciones,
  ejecute:



              cardctl scheme casa




  o bien



              cardctl scheme trabajo




  El comando cardctl hace el equivalente a apagar todas sus tarjetas y
  luego reiniciarlas. Este comando puede ejecutarse de forma segura
  estando el sistema PCMCIA cargado o no, pero el comando puede fallar
  si est usando otros dispositivos PCMCIA en ese momento (incluso si
  sus configuracion no es explcitamente dependiente de la configuracin
  del esquema).

  Para mostrar la configuracin del esquema, ejecute:



              cardctl scheme


  Por omisin, la configuracin del esquema es persistente a travs de
  los inicios del equipo. Esto puede tener efectos no deseados si la red
  se inicializa para el ambiente equivocado. Opcionalmente, puede
  establecer el valor inicial del esquema con la opcin de inicio
  SCHEME; consulte la seccin `` Opciones de Inicio'' para ms detalles.
  Tambin es posible establecer el esquema desde el prompt de inicio de
  lilo.  Debido a que lilo pasa opciones desconocidas a init como
  variables de entorno, un valor destinado a SCHEME (o cualquier otra
  opcin de inicio de PCMCIA) en el prompt de inicio se propagar al
  script de inicio PCMCIA.

  Para ahorrarse tecleo, los esquemas pueden ser especificados en el
  archivo de configuracin de lilo. Por ejemplo, puede tener:



              root = /dev/hda1
              read-only
              image = /boot/vmlinuz
                label  = casa
                append = "SCHEME=casa"
              image = /boot/vmlinuz
                label  = trabajo
                append = "SCHEME=trabajo"




  As, al teclear casa o trabajo en el prompt de inicio arrancar con el
  esquema PCMCIA apropiado.


  5.3.  Arranque desde un dispositivo PCMCIA


  Tener el sistema de archivos raz en un dispositivo PCMCIA es algo
  difcil porque el sistema PCMCIA de Linux no est diseado para ser
  enlazado dentro del kernel. Sus componentes principales, los mdulos
  cargables del kernel y el demonio cardmgr dependen de un sistema que
  ya est ejecutndose. La funcionalidad initrd del kernel sortea esta
  limitacin permitiendo a Linux iniciar utilizando un disco ram
  temporal como una imagen raz mnima, cargar los controladores, y
  remontar entonces un sistema de archivos raz diferente. La raz
  temporal puede configurar dispositivos PCMCIA y luego remontar un
  dispositivo PCMCIA como raz.

  La imagen initrd de residir en un dispositivo arrancable
  obligatoriamente;  lo que implica no puede tratarse de un dispositivo
  PCMCIA. Esta es una limitacin de BIOS, no del kernel. Aqui es til
  distinguir entre dispositivos arrancables (es decir, dispositivos
  desde los que se puede iniciar), y dispositivos root-ables (es decir,
  dispositivos origen, que son montados como raz). Los dispositivos
  arrancables se determinan por BIOS, y estn limitados generalmente a
  discos flexibles internos y unidades de disco duro. La funcionalidad
  initrd permite disponer de ms dispositivos origen, no de ms
  dispositivos arrancables.

  Algunas distribuciones de Linux permitirn la instalacin a un
  dispositivo conectado a un adaptador SCSI PCMCIA, como un efecto
  lateral involuntario de su soporte para instalar desde unidades de CD-
  ROM SCSI PCMCIA. Sin embargo, en la actualidad, no hay herramientas de
  instalacin de Linux que soporten el configurar una imagen initrd
  apropiada para iniciar Linux con un sistema de archivos raz PCMCIA.
  Configurar un sistema con raz PCMCIA de este modo requiere que se use
  otro sistema Linux para crear la imagen initrd. Si no tiene otro
  sistema Linux disponible, una opcin podra ser instalar temporalmente
  una configuracin mnima en una unidad no PCMCIA, crear una imagen
  initrd, y luego reinstalar en el dispositivo PCMCIA destino.

  El Linux Bootdisk-HOWTO contiene informacin general acerca de la
  configuracin de discos de inicio pero nada especfico de initrd.  El
  documento principal de initrd se incluye con las distribuciones
  recientes del cdigo fuente del kernel, en
  linux/Documentation/initrd.txt. Antes de empezar, debera leer este
  documento. Es de utilidad estar familiarizado con lilo. El uso de
  initrd tambin requiere que tenga un kernel compilado con
  CONFIG_BLK_DEV_RAM y CONFIG_BLK_DEV_INITRD activados.

  Esta es una tcnica de configuracin avanzada, y requiere un alto
  nivel de familiaridad con Linux y el sistema PCMCIA. Asegrese de leer
  toda la documentacin relevante antes de empezar. Las siguientes
  recetas deberan funcionar, pero las derivaciones de los ejemplos le
  pondrn rpidamente en un territorio desconocido y no soportado; y
  estar solo.

  Este mtodo requiere obligatoriamente que se use una versin del
  controlador PCMCIA 2.9.5 o posterior. Los paquetes PCMCIA antiguos o
  los componentes individuales no funcionarn en el contexto initrd. No
  mezcle componentes de diferentes versiones.


  5.3.1.  El script pcinitrd


  El script pcinitrd crea una imagen bsica para iniciar con una
  particin raz PCMCIA. La imagen incluye una jerarqua de directorios
  mnima, algunos archivos de dispositivos, unos cuantos binarios,
  bibliotecas compartidas, y un conjunto de mdulos controladores
  PCMCIA.  Cuando se invoca pcinitrd, especifique los mdulos
  controladores que busca que se incluyan en la imagen. Los componentes
  principales de PCMCIA, pcmcia_core y ds, se incluyen automticamente.

  Como ejemplo, digamos que su porttil usa un controlador compatible
  con i82365, y quiere iniciar Linux con el sistema de archivos raz en
  un disco duro conectado a un adaptador Adaptec SlimSCSI. Podra crear
  una imagen initrd apropiada con:



              pcinitrd -v initrd pcmcia/i82365.o pcmcia/aha152x_cs.o




  Para personalizar la secuencia de inicio de initrd, podra montar la
  imagen usando el dispositivo loopback con un comando como:



              mount -o loop -t ext2 initrd /mnt




  y luego editar el script linuxrc. Los archivos de configuracin se
  instalarn bajo /etc en la imagen, y tambin puede personalizarse.
  Consulte la pgina del manual de pcinitrd para mayor informacin.





  5.3.2.  Creacin de un disquete de inicio initrd


  Despus de crear una imagen con pcinitrd, puede crear un disquete de
  inicio copiando el kernel, la imagen initrd comprimida, y algunos
  archivos de soporte para lilo a un disquete limpio. En el ejemplo
  siguiente, asumimos que el dispositivo raz PCMCIA deseado es
  /dev/sda1:



              mke2fs /dev/fd0
              mount /dev/fd0 /mnt
              mkdir /mnt/etc /mnt/boot /mnt/dev
              cp -a /dev/fd0 /dev/sda1 /mnt/dev
              cp [kernel-image] /mnt/vmlinuz
              cp /boot/boot.b /mnt/boot/boot.b
              gzip < [initrd-image] > /mnt/initrd




  Genere un fichero /mnt/etc/lilo.conf que contenga:



              boot=/dev/fd0
              compact
              image=/vmlinuz
                  label=linux
                  initrd=/initrd
                  read-only
                  root=/dev/sda1




  Finalmente, invoque a lilo con:



              lilo -r /mnt




  Cuando lilo es invocado con -r, realiza todas las acciones tomando
  como directorio raz el especificado. La razn para crear los archivos
  de dispositivo bajo /mnt/dev es que lilo no podr usar esos archivos
  en /dev cuando se ejecute con este directorio raz alternativo.


  5.3.3.  Instalacin de una imagen initrd  en una unidad no-Linux


  Un uso comn de la funcionalidad initrd puede darse en sistemas donde
  el disco duro interno est dedicado a otro sistema operativo. El
  kernel de Linux y la imagen initrd pueden ponerse en una particin no-
  Linux, y lilo o LOADLIN pueden configurarse para iniciar Linux desde
  esas imgenes.

  Asumiendo que tiene un kernel que se ha configurado para el
  dispositivo raz apropiado, y una imagen initrd creada en otro
  sistema, la forma ms fcil de iniciar Linux es utilizando LOADLIN,
  como:

              LOADLIN <kernel> initrd=<imagen-initrd>




  Una vez que pueda iniciar Linux en su mquina destino, puede instalar
  lilo para permitir que Linux se inicie directamente. Por ejemplo,
  digamos que /dev/hda1 es la particin no-Linux destino y /mnt puede
  usarse como un punto de montaje. Primero, genere un subdirectorio en
  el destino para los archivos de Linux:



              mount /dev/hda1 /mnt
              mkdir /mnt/linux
              cp [imagen-del-kernel] /mnt/linux/vmlinuz
              cp [imagen-initrd] /mnt/linux/initrd




  En este ejemplo, digamos que /dev/sda1 es la particin raz de Linux
  deseada, en un disco duro SCSI montado va un adaptador PCMCIA SCSI.
  Para instalar lilo, genere un archivo lilo.conf que contenga:



              boot=/dev/hda
              map=/mnt/linux/map
              compact
              image=/mnt/linux/vmlinuz
                      label=linux
                      root=/dev/sda1
                      initrd=/mnt/linux/initrd
                      read-only
              other=/dev/hda1
                      table=/dev/hda
                      label=windows




  La lnea boot= dice que se instale el cargador de inicio en el MBR
  (master boot record) del dispositivo especificado. La lnea root=
  identifica el sistema de archivos raz deseado a usar despus de
  cargar la imagen initrd, que puede resultar innecesario si la imagen
  del kernel ya se encuentra configurada de esta forma. La seccin
  other= se usa para describir el otro sistema operativo instalado en
  /dev/hda1.

  Para instalar lilo en este caso, teclee:



              lilo -C lilo.conf




  Ntese que en este caso, el archivo lilo.conf usa rutas absolutas que
  incluyen /mnt. Hice esto en el ejemplo porque el sistema de archivos
  destino puede no soportar la creacin de archivos de dispositivos para
  las opciones boot= y root=.



  6.  Problemas con tarjetas no soportadas



  6.1.  Configuracin de tarjetas no reconocidas


  Asumiendo que su tarjeta est soportada por algn controlador
  existente, todo lo que se necesita hacer es aadir una entrada a
  /etc/pcmcia/config para decirle a cardmgr cmo identificar la tarjeta,
  y qu controlador(es) necesitan ser asociados a esta tarjeta.
  Consulte la pgina del manual de pcmcia para ms informacin acerca
  del formato del archivo de configuracin. Si inserta una tarjeta
  desconocida, cardmgr normalmente almacenar parte de informacin de la
  identificacin en el registro del sistema, lo cual puede usarse para
  elaborar la entrada de configuracin. Esta informacin puede mostrarse
  tambin con el comando cardctl ident.

  He aqu un ejemplo de cmo avisa cardmgr de una tarjeta no soportada
  en /usr/adm/messages



         cardmgr[460]: unsupported card in socket 1
         cardmgr[460]: product info: "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
         cardmgr[460]: manfid: 0x0101, 0x1234  function: 2 (serial)




  La entrada correspondiente en /etc/pcmcia/config podra ser:



              card "Megahertz XJ2288 V.34 Fax Modem"
                version "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
                bind "serial_cs"




  o usar los cdigos de ID ms compactos del producto:



              card "Megahertz XJ2288 V.34 Fax Modem"
                manfid 0x0101, 0x1234
                bind "serial_cs"





  Puede usar * para comparar cadenas que no necesiten concordar
  exactamente, como los nmeros de versin. Cuando haga nuevas entradas
  en la configuracin, hay que ser cuidadosos para copiar las cadenas
  exactamente, preservando maysculas y minsculas, y espacios en
  blanco.  Asegrese tambin de que la entrada en la configuracin tiene
  el msmo nmero de cadenas que aparecen en el archivo de registro.

  Tenga en cuenta que puede especificar cualquier controlador para una
  tarjeta, pero si slo est dando palos de ciego, no hay mucha razn
  para esperar que esto resulte productivo. Puede tener suerte y
  encontrar que su tarjeta est soportada por un controlador existente.
  Sin embargo, el resultado ms probable es que el controlador no
  funcione, y puede tener efectos laterales desafortunados como el
  congelamiento de su sistema. A diferencia de la mayora de los
  controladores de dispositivos, los cuales comprueban la pressencia de
  la tarjeta apropiada, el sondeo para un dispositivo PCMCIA se hace con
  cardmgr, y el controlador por s mismo puede no verificar antes de
  intentar comunicarse con el dispositivo.

  Despus de editar /etc/pcmcia/config, enve una seal a cardmgr para
  recargar el archivo con:



              kill -HUP `cat /var/run/cardmgr.pid`




  Si configura una entrada para una tarjeta nueva, por favor, enveme
  una copia para que pueda incluirla en el archivo de configuracin
  estndar.


  6.2.  Soporte para una tarjeta ethernet compatible con NE2000


  Antes de empezar: este procedimiento slo funcionar para tarjetas
  ethernet simples. Las tarjetas multifuncin (por ejemplo, las tarjetas
  combo ethernet/mdem) tienen una capa extra de complejidad en
  relacin a cmo estn integradas las dos funciones, y generalmente no
  pueden soportarse sin obtener algo de informacin de la configuracin
  provista por el fabricante de la tarjeta. Usar el procedimiento
  siguiente con una tarjeta multifuncin no resultar productivo en
  absoluto.

  Primero, compruebe si la tarjeta es reconocida por cardmgr. Algunas
  tarjetas que no estn listadas en SUPPORTED.CARDS son realmente
  versiones OEM de tarjetas que s estn soportadas. Si encuentra una
  tarjeta como sta, hgamelo saber para que pueda aadirla a la lista.

  Si su tarjeta no es reconocida, siga las instrucciones en la seccin
  ``Configuracin de tarjetas no reconocidas'' para crear una entrada en
  la configuracin para su tarjeta, y relacionar la tarjeta con el
  controlador pcnet_cs. Reinicie cardmgr para utilizar el archivo de
  configuracin actualizado.

  Si el controlador pcnet_cs dice que no puede determinar la direccin
  ethernet del hardware de la tarjeta, edite su nueva entrada en la
  configuracin para relacionar la tarjeta con el controlador de memoria
  memory_cs. Reinicie cardmgr para utilizar el nuevo archivo de
  configuracin actualizado. Necesitar conocer la direccin ethernet
  del hardware de la tarjeta. Esta direccin es una serie de seis
  nmeros hexadecimales de dos dgitos, impresos normalmente en la misma
  tarjeta. Si no estn impresos en la tarjeta, puede usar un controlador
  de DOS para mostrar la direccin. En cualquier caso, una vez que la
  sepa, ejecute:



              dd if=/dev/mem0a count=20 | od -Ax -t x1




  y busque el volcado de informacin de su tarjeta. Slo los bytes pares
  estn definidos, as que ignore los bytes impares del volcado. Anote
  el desplazamiento hexadecimal del primer byte de la direccin. Ahora,
  edite clients/pcnet_cs.c y busque la estructura hw_info.  Necesitar
  crear una nueva entrada para la tarjeta. El primer campo es el
  desplazamiento de memoria. Los siguientes tres campos son los primeros
  tres bytes de la direccin de hardware. El campo final contiene
  algunos indicadores de caractersticas especiales de la tarjeta; para
  empezar, pruebe establecindola a 0.

  Despus de editar pcnet_cs.c, compile e instale el nuevo mdulo.
  Edite nuevamente /etc/pcmcia/config/, y cambie la relacin de
  memory_cs con pcnet_cs. Siga las instrucciones para recargar el
  archivo de configuracin, y habr terminado. Por favor mndeme copias
  de sus nuevas entradas de configuracin a hw_info.

  Si no puede encontrar la direccin hardware de su tarjeta en el
  vaciado hexadecimal, como un ltimo recurso, puede forzar la
  direccin cuando se inicializa el mdulo pcnet_cs. Edite
  /etc/pcmcia/config.opts y aada una opcin hw_addr, como esta:



              module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03"




  Por supuesto, sustituya su propia direccin de hardware de la tarjeta
  en el punto apropiado. Tenga en cuenta que si ha tenido que hacer
  esto, es muy difcil que su tarjeta sea genuinamente compatible con
  NE2000. De hecho, no estoy seguro de la existencia de tarjetas que no
  sean manejadas por alguno de los dos primeros mtodos.


  6.3.  Tarjetas PCMCIA para unidades de disquete


  La interfaz para disquete PCMCIA que se usa en los Compaq Aero y otros
  equipos todava no est soportada por este paquete. La dificultad para
  soportar el disquete Aero radica en que el Aero parece usar un
  controlador PCMCIA personalizado para soportar DMA en el disquete. Sin
  saber exctamente cmo se hace esto, no hay forma de implementar
  soporte bajo Linux.

  Si la tarjeta del adaptador de disquete est presente cuando se
  inicia, la BIOS configurar la tarjeta, y Linux la identificar como
  una unidad de disquete normal. Cuando se cargan los controladores
  PCMCIA de Linux, notarn que la tarjeta ya est configurada y
  conectada al controlador de Linux, y este socket se dejar solo. As
  que, la unidad puede usarse si est presente al momento de iniciar,
  pero la tarjeta no se puede intercambiar en caliente.


  6.4.  Qu hay de las tarjetas Xircom?


  El paquete actual PCMCIA incluye un controlador para las tarjetas
  ethernet y ethernet/modem de Xircom, gracias al trabajo de Werner
  Koch. He dispuesto un foro especialmente para la discusin del
  desarrollo del controlador Xircom, en
  http://hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html.

  Durante mucho tiempo, las tarjetas Xircom no fueron soportadas porque
  Xircom tena como poltica de la compaa no divulgar informacin
  tcnica acerca de sus tarjetas. Sin embargo, han modificado sus
  reglas, y ahora, distribuyen informacin de los controladores...



  7.  Trucos para depurar e informacin de programacin



  7.1.  Envo de informes de bugs  que son de utilidad


  La mejor forma de informar de bugs es usar las listas de mensajes de
  HyperNews en el servidor web de Linux PCMCIA. De este modo, otras
  personas podrn ver los problemas actuales (y reparaciones o trabajos
  relacionados, si estn disponibles). He aqui algunas cosas que se
  deben incluir en los informes de bugs:


    El tipo de sistema, y la salida del comando probe.

    Qu tarjetas PCMCIA est usando.

    Su versin del kernel de Linux, y la versin del controlador
     PCMCIA.

    Cualquier cambio que haya hecho a los archivos de inicio en
     /etc/pcmcia, o al script de inicio de PCMCIA.

    Todos los mensajes relacionados con PCMCIA en el registro de su
     sistema.

  Todos los mdulos PCMCIA y el demonio cardmgr envan mensajes de
  estado al registro del sistema, que estar normalmente en sitios como
  /var/log/messages o /usr/adm/messages. Este archivo debe ser el primer
  lugar a comprobar cuando se est rastreando un problema.  Cuando enve
  una notificacin de bug, incluya siempre el contenido de este archivo.
  Si tiene problemas para encontrar los mensajes de su sistema, revise
  /etc/syslog.conf para ver cuantas clases diferentes de mensajes se
  manejan.

  Antes de enviar una notificacin de bug, por favor asegrese que no
  est usando una copia obsoleta del paquete de controladores. Aunque
  resulte gratificante leer informes sobre un bug que ya he reparado, no
  supone un uso particularmente constructivo de mi tiempo.

  Si no tiene acceso a web, puede enviarme los informes de bugs a
  dhinds@hyper.stanford.edu. Sin embargo, prefiero que sean introducidos
  en mi servidor web, as pueden ser vistos por otros.


  7.2.  Interpretacin de los informes generados por los traps  del ker
  nel


  Si su problema incluye un fallo del kernel, el vaciado del registro
  del fallo slo es til si puede traducir la direccin del error, EIP,
  o algo semejante. Las versiones recientes de klogd intentan traducir
  las direcciones de fallos basndose en el mapa actual de smbolos del
  kernel, pero puede que no funcione si el error se produce en un
  mdulo, o si el problema es lo bastante severo como para que que klogd
  no pueda terminar de escribir la informacin del fallo en el registro
  del sistema.

  Si se localiza en el kernel principal, la direccin de fallo puede
  encontrarse en el archivo System.map. El cual puede estar instalado en
  /System.map o en /boot/System.map. Si est en un mdulo, el comando nm
  proporciona la misma informacin; sin embargo, la direccin del fallo
  necesita ajustarse basndose en la direccin de carga del mdulo.
  Digamos que experimenta el siguiente fallo del kernel:

              Unable to handle kernel NULL pointer dereference
              current->tss.cr3 = 014c9000, %cr3 = 014c9000
              *pde = 00000000
              Oops: 0002
              CPU:    0
              EIP:    0010:[<c2026081>]
              EFLAGS: 00010282




  La direccin de fallo es 0xc2026081. Si buscamos en System.map, vemos
  que esto est ms all de los lmites del kernel, por ejemplo, es un
  mdulo del kernel. Para determinar qu mdulo, revise la salida de
  ksyms -m | sort



              Address   Symbol                            Defined by
              c200d000  (35k)                             [pcmcia_core]
              c200d10c  register_ss_entry                 [pcmcia_core]
              c200d230  unregister_ss_entry               [pcmcia_core]
                        ...
              c2026000  (9k)                              [3c574_cs]
              c202a000  (4k)                              [serial_cs]




  As, 0xc2026081 est en el mdulo 3c574_cs con un desplazamiento de
  0x0081 desde el inicio del mdulo. Todava no podemos ver ms all de
  este desplazamiento en 3c574_cs.o: cuando el kernel carga un mdulo,
  inserta un encabezado en la direccin de carga del mismo, as el
  inicio real se desplaza desde la direccin mostrada en ksyms.  El
  tamao del encabezado vara con la versin del kernel:  para encontrar
  el tamao en su kernel, busque un mdulo que exporte smbolos (como
  pcmcia_core), y compare la direccin del smbolo con la salida de nm
  para ese mismo smbolo. En este ejemplo, register_ss_entry se carga
  con un desplazamiento de 0xc200d10c - 0xc200d000 = 0x010c, mientras
  que nm pcmcia_core.o muestra el desplazamiento como 0x00c0, as que el
  tamao del encabezado es 0x010c - 0x00c0 = 0x004c bytes.

  Regresando a 3c574_cs.o, nuestro desplazamiento de fallo es 0x0081, y
  restando el encabezado 0x004c, el desplazamiento real del mdulo es
  0x0035. Ahora comprobando el resultado de un nm 3c574_cs.o | sort,
  observamos:



         0000002c d if_names
         0000002c t tc574_attach
         00000040 d mii_preamble_required
         00000041 d dev_info




  El fallo se localiza en tc574_attach().

  En este ejemplo, el fallo no caus un congelamiento total del sistema,
  as que ksyms puede ejecutarse despus de haber tenido lugar el fallo.
  En otros casos, puede que tenga que deducir indirectamente las
  direcciones de carga del mdulo. La misma secuencia de eventos cargar
  normalmente los mdulos en el mismo orden y en las mismas direcciones.
  Si se produce un fallo cuando se inserta cierta tarjeta, obtenga la
  salida de ksyms antes de insertar la tarjeta, o con una tarjeta
  diferente insertada. Puede cargar manualmente los mdulos
  controladores de la tarjeta con insmod y ejecutar ksyms antes de
  insertarla.

  Para profundizar, consulte man insmod, man ksyms, y man klogd. En el
  rbol de los fuentes del kernel, Documentation/oops-tracing.txt
  tambin es relevante. He aqu unas cuantas pistas para depurar el
  kernel:


    Dependiendo del error, puede ser til traducir direcciones en el
     Trazado de llamadas, usando el mismo procedimiento para la
     direccin de error principal.

    Para diagnosticar un congelamiento silencioso, pruebe provocar el
     problema con X desactivado, porque los mensajes del kernel se
     envan a la consola en texto, y no sern visibles bajo X.

    Si mata a klogd muchos de los mensajes del kernel harn eco
     directamente a la consola de texto, el cual puede ser til si el
     problema impide a klogd escribir en el registro del sistema.

    Para hacer que todos los mensajes del kernel se enven a la
     consola, para kernels 2.1.x, si existe /proc/sys/kernel/printk,
     hacer:



              echo 8 > /proc/sys/kernel/printk





    La combinacin de teclas <RightAlt><ScrLk> imprime un vaciado del
     registro en la consola de texto. Esto puede funcionar en caso de
     que el sistema est o no completamente sin responder, y la
     direccin EIP puede interpretarse como fallo del kernel.

    Para los kernels 2.1.x configurados con CONFIG_MAGIC_SYSRQ
     activado, se pueden activar varias funciones de emergencia por
     medio de las combinaciones especiales de las teclas <Alt><SysRq>,
     que estn documentadas en Documentation/sysrq.txt dentro del rbol
     de los fuentes del kernel.


  7.3.  Primeros auxilios al depurar a bajo nivel


  Los mdulos PCMCIA contienen bastante cdigo de depuracin compilado
  de forma condicional. La mayor parte de este cdigo est bajo el
  control de las definiciones del preprocesador de PCMCIA_DEBUG. Si no
  est definido, el cdigo de depuracin no se compilar. Si se
  establece a 0, se compilar pero no estar activo. Los nmeros mayores
  especifican el incremento del nivel de detalle del registro. Cada
  mdulo compilado con PCMCIA_DEBUG definido tendr un parmetro entero,
  pc_debug, que controla el nivel de detalle de su salida. Esto puede
  ajustarse cuando se carga el mdulo, as la salida puede controlarse
  en base a cada mdulo sin necesidad de recompilar.

  Su configuracin por omisin para syslogd puede descartar los mensajes
  de depuracin del kernel. Para asegurarse de que se estn registrando,
  edite /etc/syslog.conf y compruebe que los mensajes kern.debug se
  registren en algn lugar. Consulte man syslog.conf para ms detalles.


  Hay algunas herramientas de depuracin en el subdirectorio debug_tools
  dentro de la distribucin de PCMCIA. Las utilidades dump_tcic y
  dump_i365 generan volcados completos de los controladores PCMCIA, y
  decodifican mucha de la informacin del registro.  Son tiles si tiene
  acceso a una hoja con los datos del chip controlador correspondiente.
  El comando dump_cis (dump_tuples en las distribuciones pre-3.0.2)
  lista el contenido de la CIS (Card Information Structure) (Estructura
  de Informacin de Tarjeta), y decodifica algunos bits importantes.
  dump_cisreg muestra los registros de configuracin local de una
  tarjeta.

  El controlador de tarjetas de memoria memory_cs a veces tambin es
  til para depurar problemas con PC Cards de 16 bits. Puede utilizarse
  con cualquier tarjeta, y no interfiere con otros controladores. Puede
  usarse para acceder directamente a los atributos de memoria o memoria
  comn de cualquier tarjeta. De igual modo, con las tarjetas CardBus,
  el controlador memory_cb puede utilizarse con cualquier tarjeta de 32
  bits, para dar acceso directo a los espacios de direcciones de esa
  tarjeta. Revise las pginas del manual para ms informacin.


  7.4.  /proc/bus/pccard


  A partir de los kernels 2.1.103, el paquete PCMCIA crea un rbol de
  informacin de estado bajo /proc/bus/pccard. La entrada memory muestra
  las posiciones de memoria para dispositivos PC Card en un formato
  similar a /proc/ioports. Cada socket tiene tambin su propio
  subdirectorio de entradas de estado. La entrada info identifica el
  controlador del host y describe sus caractersticas. La entrada exca
  es un volcado del registro ExCA compatible con Intel i82365sl que se
  configura para ese socket. Para los puentes CardBus, la entrada pci es
  el volcado del espacio de la configuracin PCI del puente, y la
  entrada cardbus es el vaciado de los registros de configuracin de
  CardBus.


  7.5.  Programacin de controladores de servicios PCMCIA para nuevas
  tarjetas


  El Linux PCMCIA Programmer's Guide constituye la mejor documentacin
  acerca de la interfaz de los controladores. La ltima versin estar
  siempre disponible en hyper.stanford.edu en /pub/pcmcia/doc, o va WWW
  en http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html.

  Con los dispositivos relativamente similares a los dispositivos ISA
  normales, probablemente pueda Vd. usar parcialmente controladores
  Linux existentes. En algunos casos, el tropiezo ms grande ser
  modificar un controlador existente que pueda manejar la insercin y
  extraccin de dispositivos despus del momento de iniciar. De los
  controladores actuales, el controlador de tarjeta de memoria es el
  nico controlador autnomo, que no depende de otras partes del kernel
  de Linux para hacer la mayor parte del trabajo sucio.

  En muchos casos, el mayor impedimento para soportar un nuevo tipo de
  tarjeta es el obtener informacin tcnica por parte del fabricante.
  Puede ser difcil el encontrar a quin preguntar, o a quien explicar
  que informacin se necesita. Sin embargo, con pocas excepciones, es
  muy difcil, si no imposible, el implementar un controlador para una
  tarjeta sin informacin tcnica por parte del fabricante.

  He escrito un controlador modelo con muchos comentarios que explican
  bastante cmo el controlador se comunica con los Servicios de
  Tarjetas; lo encontrar en la distribucin fuente de PCMCIA en
  clients/dummy_cs.c.
  7.6.  Sugerencias para los autores de controladores PCMCIA


  He decidido que no es realmente factible para mi el distribuir todos
  los controladores de PCMCIA como parte del paquete PCMCIA. Cada
  controlador nuevo hace que el paquete principal sea incrementalmente
  ms dificil de mantener, e incluir un controlador inevitablemente
  transfiere algo del trabajo de mantenimiento del autor del controlador
  hacia m. En lugar de ello, decidir caso por caso si se incluyen o no
  los controladores que sean contribuciones, basndome en la demanda de
  los usuarios y tambin en la facilidad de mantenerlos. Para los
  controladores que no se incluyen en el paquete principal, sugiero que
  los autores de los controladores adopten el esquema siguiente para
  empaquetar sus controladores de cara a su distribucin.

  Los archivos controladores deben acomodarse en el mismo esquema del
  directorio que utiliza la distribucin fuente de PCMCIA, as el
  controlador puede ser desempaquetado en la parte ms alta del rbol de
  los fuentes de PCMCIA. Debe incluir los archivos fuentes (en
  ./modules/), una pgina del manual (en ./man/), y los archivos de
  configuracin (en ./etc/ ). El directorio ms alto debe incluir
  tambin un archivo README.

  El directorio de ms alto nivel debe incluir un makefile, configurado
  para que make -f ... all y make -f ... install compilen el controlador
  e instalen los archivos apropiados. Si este archivo tiene una
  extensin .mk, ser invocado automticamente por el Makefile de ms
  alto nivel para los destinos all e install. He aqu un ejemplo de cmo
  debe elaborarse un Makefile:



              # Un simple Makefile para un controlador de contribucin
              FILES = sample_cs.mk README.sample_cs \
                      modules/sample_cs.c modules/sample_cs.h \
                      etc/sample etc/sample.opts man/sample_cs.4
              all:
                      $(MAKE) -C modules MODULES=sample_cs.o
              install:
                      $(MAKE) -C modules install-modules MODULES=sample_cs.o
                      $(MAKE) -C etc install-clients CLIENTS=sample
                      $(MAKE) -C man install-man4 MAN4=sample_cs.4
              dist:
                      tar czvf sample_cs.tar.gz $(FILES)




  Este Makefile usa los destinos de instalacin que se definen en la
  versin 2.9.10 y versiones posteriores del paquete PCMCIA. Este
  makefile tambin incluye un destino dist para conveniencia del autor
  del controlador.  Probablemente desee aadir un nmero de versin al
  final del nombre del paquete (por ejemplo, sample_cs-1.5.tar.gz). Una
  distribucin completa puede ser similar a:



              sample_cs.mk
              README.sample_cs
              modules/sample_cs.c
              modules/sample_cs.h
              etc/sample
              etc/sample.opts
              man/sample_cs.4


  De esta forma, cuando un controlador de contribucin se desempaquete,
  se convierte en parte esencial del rbol de los fuentes de PCMCIA.
  Puede hacer uso de los archivos de encabezados de PCMCIA, as como
  tambin de la maquinaria para comprobar la configuracin del sistema
  del usuario, y chequeo automtico de dependencias, tal y como un
  controlador normal.

  Aceptar controladores preparados de acuerdo a esta especificacin y
  los colocar en el directorio /etc/pcmcia/contrib en mi servidor FTP,
  hyper.stanford.edu. El archivo README en este directorio describir
  cmo desempaquetar un controlador de contribucin.

  La interface de controlador no ha cambiado mucho a pesar del tiempo, y
  ha preservado casi siempre su compatibilidad con las versiones
  anteriores. Un controlador normalmente no necesitar actualizarse para
  revisiones menores en el paquete principal. Tratar de notificar a los
  autores de los controladores externos de los cambios que se requiera
  realizar a sus controladores.


  7.7.  Sugerencias para encargados de las distribuciones de Linux


  Si su distribucin tiene herramientas para configuracin del sistema
  que quiera que sean compatibles PCMCIA, por favor, use los archivos
  *.opts en /etc/pcmcia para su integracin. Dichos archivos no sern
  modificados si un usuario compila e instala una nueva versin del
  paquete PCMCIA. Si modifica los scripts principales de configuracin,
  una instalacin fresca sobreescribir silenciosamente sus scripts
  personalizados y romper la conexin con sus herramientas de
  configuracin. Contacte conmigo si no est seguro de cmo escribir un
  script de opciones apropiado, o si necesita caractersticas
  adicionales.

  Resulta muy til para los usuarios (y para mi) que documente cmo
  deriva su distribucin del paquete PCMCIA que se describe en este
  documento. En particular, por favor documente los cambios al script de
  inicio y a los scripts de configuracin. Si me manda la informacin
  apropiada, la incluir en la seccin ``Notas acerca de distribuciones
  de Linux especficas''.

  Cuando construya una distribucin PCMCIA, considere el incluir los
  controladores aportados, que no son parte del paquete PCMCIA
  principal.  Por razones de mantenimiento, estoy tratando de limitar el
  tamao del paquete principal, aadiendo solamente controladores nuevos
  si considero que son de inters general. Los dems controladores se
  distribuirn por separado, como se describe en la seccin anterior. La
  divisin entre controladores generales y separados es algo arbitraria
  y en parte histrica, y no debera implicar diferencia alguna en
  cuanto a calidad.


  8.  Anexo: El INSFLUG


  El INSFLUG forma parte del grupo internacional Linux Documentation
  Project, encargndose de las traducciones al castellano de los Howtos,
  as como de la produccin de documentos originales en aquellos casos
  en los que no existe anlogo en ingls, centrndose, preferentemente,
  en documentos breves, como los COMOs y PUFs (Preguntas de Uso
  Frecuente, las FAQs. :) ), etc.

  Dirjase a la sede del Insflug para ms informacin al respecto.

  En lla encontrar siempre las ltimas versiones de las traducciones
  oficiales:  www.insflug.org. Asegrese de comprobar cul es la
  ltima versin disponible en el Insflug antes de bajar un documento de
  un servidor rplica.

  Adems, cuenta con un sistema interactivo de gestin de fe de erratas
  y sugerencias en lnea, motor de bsqueda especfico, y ms servicios
  en los que estamos trabajando incesantemente.

  Se proporciona tambin una lista de los servidores rplica (mirror)
  del Insflug ms cercanos a Vd., e informacin relativa a otros
  recursos en castellano.

  En http://www.insflug.org/insflug/creditos.php3 cuenta con una
  detallada relacin de las personas que hacen posible tanto esto como
  las traducciones.

  Dirjase a http://www.insflug.org/colaboracion/index.php3 si desea
  unirse a nosotros!.

  Cartel Insflug, cartel@insflug.org.















































