Linux PCMCIA COMO
 David Hinds, [email protected]
 Romero, [email protected]
 Original: v2.40, 10 Septiembre 1999

 Este documento describe c�mo 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
 versi�n en HTML est� en http://hyper.stanford.edu/HyperNews/get/pcm
 cia/home.html
 ______________________________________________________________________

 �ndice general





















































 1. Informaci�n general y requerimientos de hardware

    1.1 Introducci�n
    1.2 Licencia y renuncia de responsabilidad
    1.3 �Cu�l es la �ltima versi�n, y d�nde puedo obtenerla?
    1.4 �Qu� sistemas est�n soportados?
    1.5 �Qu� tarjetas est�n soportadas?
    1.6 �Cu�ndo estar� soportada mi tarjeta favorita (no soportada)?
    1.7 Listas de correo y otras fuentes de informaci�n
    1.8 �Por qu� no distribuyen binarios?
    1.9 �Por qu� el paquete es tan grande?

 2. Compilaci�n e instalaci�n

    2.1 Prerequisitos y configuraci�n del kernel
    2.2 Instalaci�n
    2.3 Opciones de inicio
    2.4 Configuraci�n de recursos del sistema
    2.5 Notas acerca de distribuciones de Linux espec�ficas
       2.5.1 Debian
       2.5.2 Red Hat, Caldera, Mandrake
       2.5.3 Slackware
       2.5.4 SuSE

 3. Resoluci�n de problemas de instalaci�n y configuraci�n

    3.1 No se cargan los m�dulos b�sicos de PCMCIA.
    3.2 Algunos m�dulos controladores no cargan
    3.3 fallos en la b�squeda de interrupciones
    3.4 Fallos en la b�squeda de puertos de E/S
    3.5 Fallos durante la comprobaci�n 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 configuraci�n de dispositivos

 4. Uso y caracter�sticas

    4.1 Herramientas para configurar y monitorizar dispositivos PCMCIA
       4.1.1 El demonio de configuraci�n
       4.1.2 Las utilidades
       4.1.3 Inserci�n y extracci�n de tarjetas
       4.1.4 Servicios de Tarjetas y Administraci�n Avanzada de Energ�a
       4.1.5 Apagado del sistema PCMCIA
    4.2 Un vistazo a los scripts de configuraci�n de PCMCIA
    4.3 Adaptadores de red PCMCIA
       4.3.1 Par�metros de dispositivos de red
       4.3.2 Comentarios acerca de tarjetas espec�ficas
       4.3.3 Diagn�stico de problemas con adaptadores de red
    4.4 Dispositivos serie PCMCIA y m�dems
       4.4.1 Par�metros de dispositivos serie
       4.4.2 Diagn�stico de problemas con dispositivos serie
    4.5 Dispositivos PCMCIA de puerto paralelo
       4.5.1 Par�metros de dispositivos paralelos
       4.5.2 Diagn�stico de problemas con dispositivos de puertos paralelos
    4.6 Adaptadores SCSI PCMCIA
       4.6.1 Par�metros de dispositivos SCSI
       4.6.2 Comentarios acerca de tarjetas espec�ficas
       4.6.3 Diagn�stico de problemas con adaptadores SCSI
    4.7 Tarjetas de memoria PCMCIA
       4.7.1 Par�metros de dispositivos de memoria
       4.7.2 Uso de tarjetas de memoria flash
    4.8 Tarjetas PCMCIA para unidades ATA/IDE
       4.8.1 Par�metros para discos ATA/IDE
       4.8.2 Diagn�stico de problemas con adaptadores ATA/IDE
    4.9 Tarjetas multifunci�n
 5. Temas avanzados

    5.1 Apartado de recursos para dispositivos PCMCIA
    5.2 C�mo 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 Creaci�n de un disquete de inicio
       5.3.3 Instalaci�n de una imagen

 6. Problemas con tarjetas no soportadas

    6.1 Configuraci�n 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 informaci�n de programaci�n

    7.1 Env�o de informes de
    7.2 Interpretaci�n de los informes generados por los
    7.3 Primeros auxilios al depurar a bajo nivel
    7.4 (TT
    7.5 Programaci�n 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.  Informaci�n general y requerimientos de hardware



 1.1.  Introducci�n


 Los Servicios de Tarjeta para Linux son un paquete de soporte completo
 para PCMCIA o PC Card. Incluye un conjunto de m�dulos cargables en el
 kernel que implementan una versi�n de la interface del programa de
 aplicaci�n de Servicios de Tarjetas, un conjunto de controladores de
 clientes para tarjetas espec�ficas, y un demonio controlador de
 tarjetas que responde a los eventos de inserci�n y extracci�n de
 tarjetas, el cual carga y descarga los controladores seg�n sea
 necesario. Soporta �extracci�n en caliente� de la mayor�a de tarjetas,
 por lo que pueden ser insertadas y extra�das de forma segura en
 cualquier momento.

 Este software est� en continuo desarrollo. Probablemente contenga
 bugs, y debe ser usado con precauci�n. 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 c�digo, espero que me env�e sus
 experiencias, �buenas o malas!

 Si tiene sugerencias de c�mo puede mejorarse este documento, por favor
 h�gamelo saber ([email protected]).


 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 inclu�do en distribuciones comerciales sin mi
 previo consentimiento. Aunque no suponga requisito, me gustar�a 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 versi�n disponible.

 Este documento se proporciona �TAL CUAL�, sin garant�as expresas o
 impl�citas. Utilice la informaci�n en este documento bajo su propio
 riesgo.


 1.3.  �Cu�l es la �ltima versi�n, y d�nde puedo obtenerla?


 La versi�n 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 c�digo fuente de la �ltima versi�n 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 versi�n menor para dar origen a una
 versi�n mayor.

 Las nuevas versiones pueden contener c�digo relativamente sin probar,
 as� que tambi�n conservo la �ltima versi�n de la �ltima mayor como
 �colch�n� relativamente estable; el retraso actual es 2.9.12. Vd.
 decide qu� versi�n es m�s apropiada, el archivo CHANGES mostrar� las
 diferencias m�s importantes.

 ftp://hyper.stanford.edu es replicado en ftp://sunsite.unc.edu (y
 todos los servidores r�plica 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
 mayor�a de las distribuciones principales de Linux, incluyendo
 Slackware, Debian, Red Hat, Caldera, SuSE, e Yggdrasil, entre otros.


 1.4.  �Qu� sistemas est�n soportados?


 Este paquete deber�a correr en la mayor�a de port�tiles basados en
 Intel y que sean �Linuxizables�. Tambi�n corre en plataformas basadas
 en Alpha (DEC Multia, por ejemplo). Se programa para hacer al paquete
 completamente dual-endian, as� que tambi�n soporta plataformas basadas
 en PowerPC (Apple Powerbooks, por ejemplo). Los controladores de
 sockets m�s comunes est�n soportados. Las bah�as 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.

 Est�n 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 est�n registrados como compatibles con el
 Intel i82365sl, funcionar�n tambi�n como norma general.

 El soporte para tarjetas CardBus de 32 bits es todav�a experimental.
 Los manejadores previos a la versi�n 3.0 s�lo soportan tarjetas de 16
 bits en sockets CardBus. Debido al paso tan r�pido en el cambio de la
 tecnolog�a para el hardware de port�tiles, 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 documentaci�n sobre sus chipsets
 ToPIC95 y ToPIC97, sin embargo, la informaci�n que han liberado no ha
 sido la realmente adecuada. A pesar de los informes de conflictos,
 Toshiba no ha hecho alg�n esfuerzo efectivo para remediar esta
 situaci�n.  Hay problemas serios en el soporte de Linux para los
 chipsets ToPIC, que no pueden ser resueltos hasta que est� disponible
 una documentaci�n mejor, o la ayuda adecuada por parte de Toshiba. No
 recomiendo el uso de port�tiles Toshiba por el momento. Para el uso de
 tarjetas de 16 bits, recomiendo establecer el modo de puente a PCIC en
 la configuraci�n de la BIOS; para tarjetas CardBus, la decisi�n es
 suya.

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


 1.5.  �Qu� tarjetas est�n soportadas?


 La versi�n actual incluye controladores para una variedad de tarjetas
 ethernet, para tarjetas m�dem y puertos serie, varios controladores
 para adaptadores SCSI, un controlador para tarjetas de unidades
 ATA/IDE, y controladores para tarjetas de memoria que s�lo soportan la
 mayor�a de tarjetas SRAM y algunas tarjetas flash. El archivo
 SUPPORTED.CARDS inclu�do en cada versi�n 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 m�dems deber�an
 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
 funcionar�n hasta que alguien escriba los controladores apropiados.
 1.6.  �Cu�ndo 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
 gustar�a trabajar hacia un modelo como el del kernel de Linux, donde
 yo sea el responsable principalmente del c�digo del n�cleo y otros
 autores puedan contribuir y mantener los controladores para tarjetas
 espec�ficas. El archivo SUPPORTED.CARDS menciona algunas tarjetas para
 las cuales los controladores est�n 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 consultor�as.


 1.7.  Listas de correo y otras fuentes de informaci�n


 Sol�a mantener una base de datos y una lista de correo de usuarios de
 Linux PCMCIA. Recientemente he convertido mi p�gina web para
 informaci�n de Linux PCMCIA en un sitio HyperNews, con un conjunto de
 listas de mensajes de temas de Linux PCMCIA. Hay listas para
 instalaci�n y configuraci�n, para diferentes tipos de tarjetas, para
 programar y depurar. La p�gina de informaci�n de Linux PCMCIA est� en
 http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html. Los usuarios
 pueden solicitar otificaci�n por email de nuevas respuestas a
 preguntas particulares, o notificaci�n para todos los mensajes nuevos
 en una categor�a dada. Espero que esto sea un repositorio �til de
 informaci�n, para cuestiones que van m�s all� del enfoque del COMO.

 Hay una lista de Linux dedicada a asuntos de port�tiles, la lista
 linux-laptop. Para m�s informaci�n, env�e un mensaje con la palabra
 help a [email protected]. Para suscribirse, env�e un email
 que contenga el mensaje subscribe linux-laptop a la misma direcci�n.
 Esta lista de correo puede ser un buen foro de discusi�n de asuntos de
 Linux PCMCIA.

 La p�gina de Linux Laptop est� en
 http://www.cs.utexas.edu/users/kharker/linux-laptop tiene enlaces a
 muchos sitios que tienen informaci�n acerca de la configuraci�n de
 tipos espec�ficos de port�tiles para Linux. Hay tambi�n una base de
 datos para buscar informaci�n acerca de configuraci�n de sistemas.


 1.8.  �Por qu� no distribuyen binarios?


 Para mi, distribuir los binarios puede suponer una molestia
 importante.  Esto es complicado porque algunas caracter�sticas solo
 pueden ser seleccionadas al momento de compilar, y porque los m�dulos
 dependen mucho de contar con una configuraci�n �correcta� del kernel.
 As�, probablemente necesite distribuir m�dulos precompilados junto con
 los kernels correspondientes.  M�s que esto, la necesidad m�s grande
 de los m�dulos precompilados es cuando se instala Linux en un sistema
 limpio. Esto t�picamente requiere configurar los controladores para
 que puedan ser utilizados en el proceso de instalaci�n, para una
 distribuci�n de Linux en particular. Cada distribuci�n 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 m�dulos
 controladores ocupan alrededor de 500K de espacio en disco. Los
 programas de utilidades a�aden 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
 extra�das. El tama�o total del paquete es comparable a las
 implementaciones de servicios de tarjetas de DOS/Windows.



 2.  Compilaci�n e instalaci�n




 2.1.  Prerequisitos y configuraci�n del kernel


 Antes de empezar, deber�a pensar si realmente necesita compilar el
 paquete por s� mismo. Todas las distribuciones comunes de Linux vienen
 con paquetes de controladores precompilados. Generalmente, s�lo
 necesita instalar los controladores si necesita una caracter�stica
 nueva de los m�s actuales, o si ha actualizado y/o reconfigurado su
 kernel de forma que es incompatible con los incluidos en su
 distribuci�n de Linux. A pesar de que compilar el paquete no es
 t�cnicamente dif�cil, 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 m�dulos.

 �  La interface de utilidades XForms para X11 (Opcional).

 Necesita tener la estructura completa del c�digo fuente del kernel, no
 s�lo una imagen actualizada del kernel. Los m�dulos 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 est�n 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 m�dulos actuales puede encontrarlas en la misma
 ubicaci�n.

 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 versi�n 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, aseg�rese de estar usando la combinaci�n correcta de
 bibliotecas compartidas y herramientas de m�dulos.
 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 est�n compilados como m�dulos cargables. Cualquiera de los
 controladores compilados dentro de su kernel s�lo desperdiciar�
 espacio.

 Si quiere usar SLIP, PPP o PLIP, necesitar� ya sea configurar el
 kernel con ese soporte activado, o usar la versi�n de los m�dulos
 cargables de esos controladores. Hay una desafortunada deficiencia en
 el proceso de configuraci�n de los kernels 1.2.X, en el que no es
 posible establecer opciones de configuraci�n (como compresi�n SLIP)
 para un m�dulo 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 opci�n 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 opci�n CONFIG_BLK_DEV_IDE_PCMCIA activada, para los
 kernels desde 2.0.* hasta 2.1.*. Los kernels antiguos no soportan
 dispositivos IDE extra�bles; los nuevos no requieren una configuraci�n
 especial.

 Si va a usar un adaptador SCSI PCMCIA, debe habilitar CONFIG_SCSI
 cuando configure el kernel. Debe activar tambi�n cualquier controlador
 de alto nivel (disco SCSI, cinta, cdrom, gen�rico) que espere usar.
 Debe desactivar todos los controladores de bajo nivel para adaptadores
 en particular, porque s�lo le quitar�n espacio.

 Si busca modularizar un controlador que se necesita para un
 dispositivo PCMCIA, debe modificar /etc/pcmcia/config para especificar
 qu� m�dulos necesitan ser cargados para qu� tipos de tarjetas. Por
 ejemplo, si el controlador serie est� modularizado, entonces la
 definici�n del dispositivo serie deber�a 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 distribuci�n, la biblioteca XForms. Esta librer�a est�
 disponible como un paquete separado de la mayor�a 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.  Instalaci�n


 He aqu� una sinopsis del proceso de instalaci�n:


 �  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 contribuci�n y
 que no est� inclu�do en la distribuci�n principal de PCMCIA,
 descomprima cada uno de ellos en el directorio ra�z del �rbol PCMCIA.
 Luego siga las instrucciones normales de compilaci�n. Los
 controladores extras se compilar�n e instalar�n autom�ticamente.

 Cuando ejecute make config, se le preguntar�n algunas opciones de
 configuraci�n y se comprobar� su sistema para verificar que se
 satisfagan todos los prerequisitos para instalar soporte PCMCIA. En la
 mayor�a de los casos, s�lo tendr� que aceptar todas las opciones de
 configuraci�n que vienen por omisi�n. Aseg�rese de comprobar
 cuidadosamente la salida de �ste comando en caso de que hubiera
 problemas. Est�n disponibles las siguientes opciones:



    �Hay un directorio de instalaci�n 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 ser�n
       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 ra�z para
       instalar todo en los lugares apropiados.


    �Necesita indicadores de compilaci�n para depurar?
       Vea la secci�n ``Primeros auxilios al depurar a bajo nivel''
       para mayor informaci�n acerca de esta opci�n.


    �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
       configuraci�n actual.  La forma configurada por omisi�n es safe.


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


    �Necesita incluir chequeo de recursos para BIOS PnP?
       Esto compila c�digo adicional en el m�dulo principal PCMCIA para
       comunicarse con el BIOS PnP de un sistema para obtener
       informaci�n de los recursos que est�n incluidos en la �placa
       madre� (puertos serie y paralelos, sonido, etc), para ayudar a
       prevenir conflictos de recursos. Si se habilita, se crear�n
       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.


    �C�mo configurar opciones espec�ficas del kernel?
       Hay algunas opciones de configuraci�n del kernel que afectan a
       las herramientas PCMCIA. El script de configuraci�n puede
       deducirlo desde el kernel actual (el caso por omisi�n y m�s
       com�n).  Alternativamente, si est� compilando para instalar en
       otro equipo, puede leer la configuraci�n del �rbol de los
       fuentes del kernel, o cada opci�n se puede establecer
       interactivamente.


 El script de configuraci�n se puede ejecutar de forma no-interactiva,
 para compilar autom�ticamente o para reconfigurar r�pidamente despu�s
 de una actualizaci�n del kernel. Algunas opciones adicionales no
 utilizadas con frecuencia s�lo pueden ser establecidas desde la l�nea
 de comandos.  Ejecutando: Configure --help se listar�n todas las
 opciones disponibles.

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

 Los archivos de configuraci�n ser�n instalados en el directorio
 /etc/pcmcia. Si est� instalando sobre una versi�n antigua, sus scripts
 de configuraci�n anteriores se respaldar�n antes de ser reemplazados.
 Los scripts guardados tendr�n la extensi�n 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 autom�ticamente. Si tiene un sistema Halikan NBD
 486, tiene un controlador TCIC-2 en una localizaci�n inusual:
 necesitar� editar rc.pcmcia para cargar el m�dulo tcic, y tambi�n
 especificar el par�metro 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
 suspensi�n 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 m�ltiples opciones por medio de espacios y encerradas en
 comillas. La colocaci�n de las opciones de inicio depende de la
 distribuci�n 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 secci�n ``Notas acerca de
 distribuciones de Linux espec�ficas'' para m�s 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 m�dulo controlador de PC Card Interface
       Controller. Hay dos opciones: tcic o i82365. Virtualmente todos
       los controladores actuales est�n en el grupo i82365. Esta es la
       �nica opci�n obligatoria a establecer.


    PCIC_OPTS
       Esto especifica las opciones para el m�dulo PCIC. Algunos
       controladores tienen caracter�sticas opcionales que pueden o no
       ser implementadas en un sistema en particular. En algunos casos,
       es imposible para el socket controlador detectar si esas
       caracter�sticas est�n implementadas. Revise la p�gina del manual
       correspondiente para una descripci�n completa de las opciones
       disponibles.


    CORE_OPTS
       Esto especifica las opciones para el m�dulo pcmcia_core, el cual
       implementa los servicios principales del controlador PC Card. Es
       conveniente echar un vistazo a man pcmcia_core para m�s
       informaci�n.


    CARDMGR_OPTS
       Esto especifica las opciones que se pasar�n al demonio cardmgr.
       Revise man cardmgr para m�s informaci�n.


    SCHEME
       Si est� activado, el esquema de configuraci�n de PC Card ser�
       inicializado a este modo en el momento de arrancar. Revise la
       secci�n ``Un vistazo a los scripts de configuraci�n de PCMCIA''
       para ver la discusi�n de esquemas.


 Los controladores de sockets de bajo nivel, tcic e i82365, tienen
 varios par�metros de sincronizaci�n de bus que pueden necesitar ser
 ajustados para sistemas con velocidades de bus no muy usuales. Los
 s�ntomas de los problemas de sincronizaci�n incluyen problemas al
 reconocer las tarjetas, congelamiento bajo carga pesada, tasas de
 error altas, o rendimiento pobre de dispositivos. S�lo ciertos puentes
 tienen par�metros de sincronizaci�n ajustables, revise la p�gina
 correspondiente del manual para ver qu� opciones existen para su
 controlador. He aqu� un peque�o resumen:


 �  Los controladores Cirrus tienen muchos par�metros de
    sincronizaci�n.  Lo m�s importante parece ser el indicador
    cmd_time, la cual determina la longitud de los ciclos de bus
    PCMCIA. En los sistemas r�pidos 486 (DX4-100, por ejemplo) parece
    ser beneficioso el incrementar esto de 6 (por omisi�n) 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 a�ade estados de
    espera extra a algunas operaciones. Sin embargo, todav�a no he
    sabido de ning�n port�til que necesite esto.


 �  El m�dulo pcmcia_core tiene el par�metro cis_speed para cambiar la
    velocidad de la memoria, la cual se usa para acceder a la
    Estructura de Informaci�n de Tarjeta (Card Information Structure)
    (CIS) de una tarjeta. En algunos sistemas con pulsos de bus
    r�pidos, incrementar este par�metro (por ejemplo, reducir la
    velocidad de los accesos a tarjeta) puede resultar beneficioso para
    quien tenga problemas al reconocerlas.

 �  Esto no es cuesti�n de sincronizaci�n, pero si Vd. tiene m�s de un
    controlador ISA-a-PCMCIA en su sistema o tiene bah�as extra en una
    estaci�n, el m�dulo i82365 debe ser cargado con el par�metro
    extra_sockets establecido a 1. Esto no deber� ser necesario para
    detecci�n de puentes PCI-a-PCMCIA y PCI-a-CardBus.

 He aqu� algunas configuraciones de sincronizaci�n para algunos
 sistemas espec�ficos:


 �  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.  Configuraci�n de recursos del sistema


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

 He aqu� algunas configuraciones de recursos para tipos espec�ficos de
 port�tiles. Rev�selas con cuidado: pueden darle informaci�n necesaria
 para resolver problemas, pero algunas est�n (inevitablemente)
 obsoletas y ciertamente contienen errores. Las correcciones y
 adiciones ser�n 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 espec�ficas


 Esta secci�n est� incompleta. Todas las correcciones y adiciones ser�n
 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
 configuraci�n 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, p�ginas del
 manual, y los scripts de configuraci�n; y el paquete pcmcia-modules
 que contiene los m�dulos controladores del kernel.


 2.5.2.  Red Hat, Caldera, Mandrake


 Estas distribuciones usan la organizaci�n 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 omisi�n que tiene PCMCIA
 desactivado.  Para habilitar PCMCIA, la variable PCMCIA debe
 establecerse en yes.  La configuraci�n por omisi�n 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 s�lo
 se usa un adaptador de red, con un conjunto de par�metros de red, pero
 no tiene la flexibilidad completa del script regular de red PCMCIA.
 Compilar e instalar una distribuci�n 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 distribuci�n 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.  Resoluci�n de problemas de instalaci�n y configuraci�n


 Esta secci�n describe algunos de los errores m�s comunes del
 subsistema PCMCIA. Compare sus s�ntomas con los ejemplos. Esta secci�n
 s�lo describe fallos generales que no son espec�ficas de un
 controlador o tipo de tarjeta en particular.

 Antes de diagnosticar un problema, debe saber d�nde se almacena el
 registro del sistema (revise la secci�n ``Notas acerca de
 distribuciones de Linux espec�ficas''). Debe estar familiarizado con
 las herramientas b�sicas de diagn�stico como dmesg y lsmod.  Preste
 especial atenci�n al hecho de que muchos componentes de los
 controladores (incluyendo todos los m�dulos del kernel) tienen sus
 propias p�ginas individuales en el manual.

 Intente definir su problema lo m�s ampliamente posible. Si tiene
 varias tarjetas, pruebe cada tarjeta de forma aislada, y en diferentes
 combinaciones. Intente arranques de Linux en fr�o y arranques en
 caliente de Windows. Compare el arrancar con tarjetas insertadas, o
 insertar las tarjetas despu�s de iniciar. Si normalmente usa su
 port�til ensamblado con una dockstation, pr�ebelo aparte. Algunas
 veces, dos bah�as se comportar�n 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 bas�ndose en los s�ntomas, los
 discos de instalaci�n son dif�ciles de modificar, especialmente sin
 tener acceso a un sistema Linux ya funcionando. La personalizaci�n e
 instalaci�n de los discos de instalaci�n es completamente dependiente
 de la distribuci�n de Linux que elija, y m�s all� del enfoque de este
 documento. En general, el mejor curso de acci�n es instalar Linux
 usando otros medios, obteniendo los controladores m�s recientes, y
 depurando el problema entonces, si es que persiste.


 3.1.  No se cargan los m�dulos b�sicos de PCMCIA.


 S�ntomas:


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

 �  Despu�s de iniciar, lsmod no muestra alg�n m�dulo PCMCIA.

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

 Los m�dulos del kernel contienen informaci�n de la versi�n, la cual se
 comprueba con el kernel actual cuando se carga un m�dulo. El tipo de
 chequeo depende de la opci�n del kernel CONFIG_MODVERSIONS. Si es
 falso, entonces el n�mero de versi�n del kernel se compila dentro de
 cada m�dulo y el programa insmod comprueba esto para compararlo con el
 kernel actual. Si CONFIG_MODVERSIONS es verdadero, entonces cada
 s�mbolo exportado por el kernel tiene un �checksum�. Esos c�digos se
 comparan con los c�digos correspondientes compilados dentro de un
 m�dulo.

 La idea de esto fue crear m�dulos menos dependientes de la versi�n,
 porque los checksums s�lo pueden cambiar si la interface del kernel
 cambia, y podr�a 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. Tambi�n,
 los checksums han resultado ser jueces excesivamente pesimistas
 respecto a compatibilidad.

 El enfoque pr�ctico de esto es que los m�dulos del kernel est�n muy
 atados a tanto la versi�n del kernel, como a muchas opciones de
 configuraci�n del mismo. Generalmente, un grupo de m�dulos compilados
 para un kernel 2.0.31 no cargar� con otros kernels 2.0.31 a menos que
 se tome un cuidado especial asegur�ndose que los dos fueron compilados
 con configuraciones similares. Esto resulta ser un asunto dif�cil para
 la distribuci�n de m�dulos precompilados del kernel.

 Tiene Vd. varias opciones:


 �  Si obtuvo controladores precompilados como parte de una
    distribuci�n de Linux, verifique que est� usando el mismo kernel
    que ven�a con su distribuci�n, sin modificaciones. Si pretende usar
    los m�dulos precompilados que ven�an con su distribuci�n, 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 f�cilmente si ya tiene instalada la estructura fuente del
    kernel. Revise la secci�n ``Compilaci�n e instalaci�n'' para
    instrucciones m�s detalladas.

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


 3.2.  Algunos m�dulos controladores no cargan


 S�ntomas:


 �  Los m�dulos 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 m�dulos controladores requieren servicios del kernel
 que pueden o no estar presentes, dependiendo de la configuraci�n 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 caracter�stica
 necesaria, insmod puede avisar acerca de s�mbolos indefinidos y
 rechazar la carga de un m�dulo en particular. Note que los mensajes de
 error de insmod no distinguen entre errores por diferencias de
 versiones y errores por falta de s�mbolos.

 Espec�ficamente:


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

 �  El soporte para tarjetas serie multipuerto o tarjetas multifunci�n
    que incluyen dispositivos serie o m�dems, 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 m�dulos.

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

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

 Hay dos formas de proceder:


 �  Recompile el kernel con las caracter�sticas necesarias activadas.

 �  Si las caracter�sticas han sido compiladas como m�dulos, entonces
    modifique /etc/pcmcia/config para precargar esos m�dulos.

 El archivo /etc/pcmcia/config puede especificar qu� m�dulos
 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 m�dulos se especifican relativas al nivel m�s alto
 del directorio de m�dulos para la versi�n actual del kernel; si no se
 especifica la ruta relativa, entonces la ruta por omisi�n ser� hacia
 el subdirectorio pcmcia.


 3.3.  fallos en la b�squeda de interrupciones


 S�ntomas:


 �  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.




 Despu�s 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 interrupci�n
 aparentemente libre, generando una interrupci�n soft (suave), para ver
 si la interrupci�n puede ser detectada correctamente. En algunos
 casos, el sondear una interrupci�n en particular puede interferir con
 otro dispositivo del sistema.

 La raz�n de este �tanteo� es identificar interrupciones que parezcan
 estar libres (es decir, aquellas que no est�n reservadas por otro
 controlador de dispositivo), ya sea porque no est� conectado
 f�sicamente 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 par�metro irq_list para los
    controladores. Por ejemplo, irq_list=5,9,10 limitar� la b�squeda a
    tres interrupciones. Todos los dispositivos PCMCIA estar�n
    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 opci�n do_scan=0. En este
    caso, se usar� una interrupci�n por omisi�n, 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 definici�n PCIC_OPTS, por
 ejemplo:



              PCIC_OPTS="irq_list=5,9,10"




 Como podr� notar, /proc/interrupts es absolutamente in�til cuando se
 van a diagnosticar problemas en el sondeo de interrupciones. El tanteo
 es lo suficientemente sensible como para nunca intentar usar una
 interrupci�n que ya est� en uso por otro controlador de Linux. Los
 controladores PCMCIA est�n ya teniendo en cuenta toda la informaci�n
 de /proc/interrupts. Dependiendo del dise�o del sistema, un
 dispositivo inactivo puede todav�a ocupar una interrupci�n y causar
 problemas si es probado por PCMCIA.


 3.4.  Fallos en la b�squeda de puertos de E/S


 S�ntomas:


 �  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 interrupci�n, pero no
    muestra resultados de sondeos de E/S.

 �  En algunos casos, el tanteo de E/S ser� positivo, pero avisa de un
    gran n�mero 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 est�n
 asociados con un controlador de Linux. El tanteo es de s�lo lectura,
 pero en algunos casos extra�os, leer desde un dispositivo puede
 interferir con una funci�n importante del sistema, resultando en
 �congelamiento�.

 La gu�a 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 expl�citamente 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 omisi�n.


 3.5.  Fallos durante la comprobaci�n de la memoria


 S�ntomas:

 �  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 alg�n 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 m�dulos principales realizan un chequeo de los primeros 16 bits de
 memoria en el momento en que se inserta la tarjeta. Esta exploraci�n
 puede interferir potencialmente con otros dispositivos de memoria
 mapeados. As� mismo, los paquetes de controladores pre-3.0.0 realizan
 una exploraci�n m�s agresiva que los controladores m�s recientes. La
 ventana de memoria se define en /etc/pcmcia/config.opts. La ventana
 por omisi�n es grande, as� que puede ayudar a restringir la
 exploraci�n a un rango m�s 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 regi�n
 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 d�gito hexadecimal (as� una
 direcci�n absoluta de 0xd0000 puede darse como 0xd000). Aseg�rese de
 a�adir el d�gito 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 configuraci�n en la sincronizaci�n con el
 controlador.  Revise la secci�n ``Opciones de inicio'' para m�s
 informaci�n acerca de c�mo combatir los problemas comunes de
 sincronizaci�n.


 �  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 dif�cil que existan conflictos
 con otros dispositivos.  Tambi�n, las tarjetas CardBus pueden requerir
 grandes ventanas de memoria, las cuales puede ser dif�cil o imposible
 que coincidan en memoria baja.  Los servicios de tarjetas
 preferentemente localizar�n 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 omisi�n ahora incluye una
 ventana de memoria alta de 0xa0000000-0xa0ffffff. Si tiene un puente
 CardBus y ha actualizado de una versi�n de PCMCIA anterior, a�ada esta
 ventana de memoria si no est� ya definido.

 En algunos casos, la ventana de memoria alta por omisi�n no se
 utiliza.

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



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


 S�ntomas:


 �  Las tarjetas se detectan y configuran apropiadamente si est�n
    presentes al momento de iniciar.

 �  Los controladores no responden a los eventos de inserci�n y
    extracci�n, ya sea registrando los eventos en el registro del
    sistema, o emitiendo pitidos.

 En muchos casos, el controlador del socket (i82365 o tcic) probar�
 autom�ticamente y seleccionar� la interrupci�n apropiada para se�alar
 cambios en el estado de la tarjeta. El tanteo autom�tico 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 interrupci�n puede parecer estar disponible. En esos casos, el
 controlador del socket puede usar una interrupci�n que es usada por
 otro dispositivo.


 Con los controladores i82365 y tcic la opci�n list_irq puede usarse
 para limitar las interrupciones que ser�n 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 opci�n cs_irq puede usarse tambi�n para establecer
 expl�citamente la interrupci�n que ser� utilizada para monitorizar
 dichos cambios.

 Si no puede encontrar un n�mero de interrupci�n que funcione, hay
 tambi�n un estado en modo de b�squeda: ambos, i82365 y tcic aceptar�n
 una opci�n poll_interval=100, para buscar cambios en el estado de la
 tarjeta una vez por segundo. Esta opci�n puede usarse tambi�n si su
 sistema tiene un rango corto de interrupciones disponibles para
 utilizarse con tarjetas PCMCIA. Especialmente para sistemas con m�s de
 un controlador de host, hay un peque�o punto para dedicar
 interrupciones para monitorizar cambios de estado de la tarjeta.

 Todas esas opciones deber�an establecerse en la l�nea PCIC_OPTS= ya
 sea en /etc/rc.d/rc.pcmcia o en /etc/sysconfig/pcmcia, dependiendo de
 la configuraci�n de su sistema.


 3.7.  Faltan recursos del sistema


 S�ntomas:


 �  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, v�ase la secci�n ``Fallos en la b�squeda 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 exploraci�n 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 interrupci�n 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 b�squeda
 estableciendo PCIC_OPTS a poll_interval=100. O, si tiene un
 controlador CardBus, intente con pci_csc=1, el cual selecciona una
 interrupci�n PCI (si est� disponible) para cambios de estado en la
 tarjeta.

 La reserva de puertos de E/S no es muy com�n, pero algunas veces tiene
 lugar con tarjetas que requieren regiones de espacio de E/S grandes,
 contiguas y alineadas, o que s�lo reconocen pocas posiciones
 espec�ficas de puertos.  Los rangos de puertos de E/S por omisi�n en
 /etc/pcmcia/config.opts normalmente son suficientes, pero pueden ser
 extendidos. En casos extra�os, la reserva puede indicar que fall� el
 sondeo de puertos de E/S; revise la secci�n ``fallos en la b�squeda de
 puertos de E/S''.

 La reserva de memoria no es com�n tampoco con las configuraciones de
 la ventana de memoria que vienen por omisi�n en config.opts. Las
 tarjetas CardBus pueden requerir regiones de memoria m�s grandes que
 las tarjetas t�picas 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 direcci�n PCI del host (en lugar de s�lo 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


 S�ntomas:


 �  Dos tarjetas funcionan bien cuando se usan separadamente.

 �  Cuando ambas tarjetas se insertan, s�lo funciona una.

 Esto usualmente indica un conflicto de recursos con un dispositivo del
 sistema que Linux no conoce. Los dispositivos PCMCIA son configurados
 din�micamente, as�, por ejemplo, las interrupciones son reservadas
 conforme se vayan necesitando, en lugar de ser asignadas
 espec�ficamente 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 est�n usados por
 la tarjeta que no funciona. Excl�yalos de /etc/pcmcia/config.opts, y
 reinicie el demonio cardmgr para recargar la base de datos de
 recursos.


 3.9.  No se completa la configuraci�n de dispositivos


 S�ntomas:


 �  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 configuraci�n por
 alguna raz�n. La m�s com�n es que un paso en el script de
 configuraci�n se ha bloqueado. Un buen ejemplo podr�a ser el script de
 red bloque�ndose si una tarjeta de red se inserta sin tener presente
 una conexi�n a la red.

 Para verificar el problema, puede ejecutar manualmente un script de
 configuraci�n para ver d�nde se est� bloqueando. Los scripts est�n en
 el directorio /etc/pcmcia. Toman dos par�metros: un nombre de
 dispositivo, y una acci�n. El demonio cardmgr graba los comandos de
 configuraci�n 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 caracter�sticas



 4.1.  Herramientas para configurar y monitorizar dispositivos PCMCIA


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



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


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


 4.1.1.  El demonio de configuraci�n cardmgr


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

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

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



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




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

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


 4.1.2.  Las utilidades cardctl  y cardinfo


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








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




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



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





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

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


 4.1.3.  Inserci�n y extracci�n de tarjetas


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


 4.1.4.  Servicios de Tarjetas y Administraci�n Avanzada de Energ�a


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

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

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

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


 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 desactivaci�n ser�
 incompleto, y puede que algunos m�dulos del kernel no sean
 descargados. Para prevenir esto, use cardctl eject para desactivar
 todos los sockets antes de invocar rc.pcmcia. El estado de salida del
 comando cardctl indicar� si alguno de los sockets no pudo ser
 desactivado.


 4.2.  Un vistazo a los scripts de configuraci�n de PCMCIA


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

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

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

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


 4.3.  Adaptadores de red PCMCIA


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

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

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










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




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



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





 4.3.1.  Par�metros de dispositivos de red


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



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


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


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


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


    IPADDR
       La direcci�n IP para esta interface.


    NETMASK, BROADCAST, NETWORK
       Par�metros b�sicos de red: revise el COMO de red para m�s
       informaci�n.


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


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


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


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


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


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


 Por ejemplo:



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




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


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

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



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




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



             ifconfig eth0 down up





 4.3.2.  Comentarios acerca de tarjetas espec�ficas



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

 �  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 b�squeda� 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
    opci�n mem_speed=# al m�dulo pcnet_cs. Un ejemplo de c�mo 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 opci�n io_speed=# cuando se cargue el m�dulo pcmcia_core.  Edite
    CORE_OPTS en el script de inicio para activar esta opci�n.

 �  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 est�n
    conectadas cuando son inicializadas. Conecte siempre esas tarjetas
    a la red antes de activarlas. Si ifconfig informa que la direcci�n
    de harware como todo 0, esto debe ser debido a un problema de
    configuraci�n 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 soluci�n 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 funci�n, que est� disponible en
     ftp://hyper.stanford.edu/pub/pcmcia/extras/dlport.c.

 �  Para adaptadores de red inal�mbricos WaveLAN, Jean Tourrilhes,
    [email protected])  tiene disponible el Wireless HOWTO (C�mo
    inal�mbrico) en
    http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/


 4.3.3.  Diagn�stico de problemas con adaptadores de red



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

 �  �Est� configurada la tarjeta apropiadamente? Si est� usando una
    tarjeta soportada, y fue reconocida por cardmgr, pero todav�a no
    funciona, pudo ser un conflicto de interrupci�n o puerto con otro
    dispositivo. Determine qu� recursos est� utilizando la tarjeta (en
    el registro del sistema), e intente de nuevo excluy�ndolos 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 par�metros de sincronizaci�n de su controlador
    del socket. Revise la secci�n ``Opciones de Inicio'' para m�s
    informaci�n.

 �  Si obtiene mensajes de network unreachable cuando intenta acceder a
    la red, la informaci�n especificada en /etc/pcmcia/network.opts es
    incorrecta. Este mensaje es una indicaci�n absolutamente a prueba
    de tontos de que hay un error de rutado.  Por otra parte, las
    tarjetas mal configuradas normalmente fallar�n 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 m�quinas en otras subredes.
    Debe ser posible hacer ping a las m�quinas por su nombre si lleva a
    cabo dichas pruebas con �xito.

 �  Aseg�rese 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. Aseg�rese que su cable, conector �T�,
    terminador, etc. est�n funcionando.


 4.4.  Dispositivos serie PCMCIA y m�dems


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

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

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

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



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

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



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





 4.4.1.  Par�metros de dispositivos serie


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



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


    SERIAL_OPTS
       Especifica las opciones que se pasan al comando setserial.


    INITTAB
       Si se especifica, se usar� para a�adir una entrada inittab para
       el dispositivo.


 Por ejemplo:



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





 4.4.2.  Diagn�stico de problemas con dispositivos serie



 �  �Se reconoce su tarjeta como un m�dem? Revise el registro del
    sistema y aseg�rese que cardmgr identifica la tarjeta correctamente
    e inicia el controlador serial_cs. Si no, necesitar� a�adir una
    nueva entrada en el fichero /etc/pcmcia/config para que pueda ser
    identificado apropiadamente. Consulte la secci�n ``Configuraci�n de
    tarjetas no reconocidas'' para m�s detalles.

 �  �Es el m�dem 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 mayor�a de m�dems
    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 m�dem.

 �  �Hay un conflicto de interrupciones? Si el registro del sistema se
    parece normal, pero el m�dem no funciona, pruebe a cambiar la irq a
    0 usando setserial y comprobar si el m�dem funciona. Esto causa que
    el controlador serie use un modo de b�squeda m�s bajo en lugar de
    usar interrupciones. Si esto parece solucionar el problema, es
    probable que otro dispositivo del sistema est� usando la
    interrupci�n seleccionada por serial_cs. Deber� a�adir una l�nea a
    /etc/pcmcia/config.opts para excluir esta interrupci�n.

 �  Si el m�dem parece funcionar muy, muy lento, esto es casi un
    indicador seguro de un conflicto de interrupciones. Aseg�rese 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
    m�s probable que tenga que ver con SLIP, y no con PCMCIA.

 �  Si obtiene mensajes del kernel indicando que el m�dulo serial_cs no
    puede cargarse, significa que su kernel no tiene soporte para
    dispositivo serie. Si ha compilado el controlador serie como
    m�dulo, debe modificar /etc/pcmcia/config para indicar que el
    m�dulo 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 trav�s de los archivos especiales de
 dispositivo /dev/lp*. La configuraci�n de un dispositivo de impresora
 puede examinarse y modificarse con el comando tunelp.

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

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





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




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



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





 4.5.1.  Par�metros de dispositivos paralelos


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



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


    LP_OPTS
       Especifica las opciones a pasar al comando tunelp.


 Por ejemplo:



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





 4.5.2.  Diagn�stico 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 b�squeda. Si parece solucionar el problema,
    es probable que otro dispositivo en su sistema est� utilizando la
    interrupci�n seleccionada por parport_cs. Deber� a�adir una l�nea a
    /etc/pcmcia/config.opts para excluir esta interrupci�n.

 �  Si su kernel genera mensajes indicando que el m�dulo parport_cs no
    puede cargarse, significa que el kernel no tiene soporte para
    dispositivos paralelos. Si tiene compilado el controlador paralelo
    como m�dulo, necesita modificar /etc/pcmcia/config para indicar que
    los m�dulos 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 c�digo
 espec�fico PCMCIA (en qlogic_cs.c, toaster_cs.c, o fdomain_cs.c) con
 el controlador SCSI normal de Linux. Debido a las limitaciones en el
 modelo del controlador SCSI de Linux, s�lo se soporta una tarjeta
 extra�ble por controlador.

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

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

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

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

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

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




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

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

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


 4.6.1.  Par�metros de dispositivos SCSI


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



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


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


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


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

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



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






 4.6.2.  Comentarios acerca de tarjetas espec�ficas



 �  La tarjeta Adaptec APA-1480 CardBus necesita una ventana de puerto
    de E/S grande (256 puertos contiguos alineados en un l�mite 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 ning�n
    controlador de Linux existente.

 �  He sido informado de la mala interacci�n 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.  Diagn�stico de problemas con adaptadores SCSI



 �  Con el controlador aha152x_cs (usado por Adaptec, New Media, y
    algunos m�s), parece que el soporte SCSI de conexi�n/reconexi�n
    constituye una fuente de problemas frecuentes con dispositivos de
    cinta. Para desactivar esta �caracter�stica�, a�ada 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 m�s grande, controlado con
    el par�metro reset_delay del m�dulo. 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 m�ltiples. Si ve que la detecci�n 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 opci�n 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 m�dulos 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
    gen�ricos). Si falta un controlador de alto nivel, los dispositivos
    de ese tipo se ignorar�n.



 4.7.  Tarjetas de memoria PCMCIA


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

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

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

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


 4.7.1.  Par�metros de dispositivos de memoria




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


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


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


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


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












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






 4.7.2.  Uso de tarjetas de memoria flash


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

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



             ftl_format -i /dev/mem0c0c




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



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




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

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

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


 4.8.  Tarjetas PCMCIA para unidades ATA/IDE


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

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


 4.8.1.  Par�metros para discos ATA/IDE


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



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


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


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


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


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


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






 4.8.2.  Diagn�stico de problemas con adaptadores ATA/IDE



 �  Algunas unidades IDE violan la especificaci�n PCMCIA al requerir un
    tiempo mayor para iniciar que el m�ximo permitido para la
    configuraci�n de la tarjeta. Desde la versi�n 3.0.6, el controlador
    ide_cs autom�ticamente intentar� sondear el dispositivo para darle
    tiempo de iniciarlos. Con los controladores antiguos, necesita
    cargar el m�dulo 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 est�ndar, sin embargo es bueno estar enterado por si
    compila un kernel personalizado.


 4.9.  Tarjetas multifunci�n


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

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

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



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




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



 5.  Temas avanzados



 5.1.  Apartado de recursos para dispositivos PCMCIA


 En teor�a, no debe importar qu� interrupci�n se reserva para cada
 dispositivo, mientras dos dispositivos no sean configurados para usar
 la misma interrupci�n.

 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.

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

 La interrupci�n que se utiliza para monitorizar el estado de la
 tarjeta se determina por el m�dulo 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 interrupci�n, use la opci�n 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 par�metro 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 s�lo la irq
 8 o la 12. Sin importar las configuraciones de irq_list, los Servicios
 de Tarjetas nunca reservar�n una interrupci�n que ya est� siendo usada
 por otro dispositivo, o una interrupci�n que est� excluida en el
 archivo de configuraci�n.


 5.2.  trabajo?  C�mo puedo separar configuraciones de los dispositivos
 para casa y el


 Esto es bastante f�cil con el soporte de �esquemas�. Usando dos
 esquemas de configuraci�n, llamados casa y trabajo. He aqu� un ejemplo
 del script network.opts con configuraciones espec�ficas 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 direcci�n de dispositivo siempre es la
 configuraci�n del esquema. En este ejemplo, la segunda cl�usula case
 aplicar� para ambos esquemas. As�, si un esquema no est� establecido
 por cualquier raz�n, se tomar� por omisi�n la configuraci�n 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 expl�citamente dependiente de la configuraci�n
 del esquema).

 Para mostrar la configuraci�n del esquema, ejecute:



             cardctl scheme


 Por omisi�n, la configuraci�n del esquema es persistente a trav�s 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 opci�n de inicio
 SCHEME; consulte la secci�n `` Opciones de Inicio'' para m�s detalles.
 Tambi�n 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
 opci�n 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 configuraci�n 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 ra�z en un dispositivo PCMCIA es algo
 dif�cil porque el sistema PCMCIA de Linux no est� dise�ado para ser
 enlazado dentro del kernel. Sus componentes principales, los m�dulos
 cargables del kernel y el demonio cardmgr dependen de un sistema que
 ya est� ejecut�ndose. La funcionalidad initrd del kernel sortea esta
 limitaci�n permitiendo a Linux iniciar utilizando un disco ram
 temporal como una imagen ra�z m�nima, cargar los controladores, y
 remontar entonces un sistema de archivos ra�z diferente. La ra�z
 temporal puede configurar dispositivos PCMCIA y luego remontar un
 dispositivo PCMCIA como ra�z.

 La imagen initrd de residir en un dispositivo arrancable
 obligatoriamente;  lo que implica no puede tratarse de un dispositivo
 PCMCIA. Esta es una limitaci�n 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 ra�z). Los dispositivos
 �arrancables� se determinan por BIOS, y est�n limitados generalmente a
 discos flexibles internos y unidades de disco duro. La funcionalidad
 initrd permite disponer de m�s dispositivos origen, no de m�s
 dispositivos �arrancables�.

 Algunas distribuciones de Linux permitir�n la instalaci�n 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
 instalaci�n de Linux que soporten el configurar una imagen initrd
 apropiada para iniciar Linux con un sistema de archivos ra�z PCMCIA.
 Configurar un sistema con ra�z PCMCIA de este modo requiere que se use
 otro sistema Linux para crear la imagen initrd. Si no tiene otro
 sistema Linux disponible, una opci�n podr�a ser instalar temporalmente
 una configuraci�n m�nima en una unidad no PCMCIA, crear una imagen
 initrd, y luego reinstalar en el dispositivo PCMCIA destino.

 El Linux Bootdisk-HOWTO contiene informaci�n general acerca de la
 configuraci�n de discos de inicio pero nada espec�fico de initrd.  El
 documento principal de initrd se incluye con las distribuciones
 recientes del c�digo fuente del kernel, en
 linux/Documentation/initrd.txt. Antes de empezar, deber�a leer este
 documento. Es de utilidad estar familiarizado con lilo. El uso de
 initrd tambi�n requiere que tenga un kernel compilado con
 CONFIG_BLK_DEV_RAM y CONFIG_BLK_DEV_INITRD activados.

 Esta es una t�cnica de configuraci�n avanzada, y requiere un alto
 nivel de familiaridad con Linux y el sistema PCMCIA. Aseg�rese de leer
 toda la documentaci�n relevante antes de empezar. Las siguientes
 recetas deber�an funcionar, pero las derivaciones de los ejemplos le
 pondr�n r�pidamente en un territorio desconocido y �no soportado�; y
 estar� solo.

 Este m�todo requiere obligatoriamente que se use una versi�n del
 controlador PCMCIA 2.9.5 o posterior. Los paquetes PCMCIA antiguos o
 los componentes individuales no funcionar�n en el contexto initrd. No
 mezcle componentes de diferentes versiones.


 5.3.1.  El script pcinitrd


 El script pcinitrd crea una imagen b�sica para iniciar con una
 partici�n ra�z PCMCIA. La imagen incluye una jerarqu�a de directorios
 m�nima, algunos archivos de dispositivos, unos cuantos binarios,
 bibliotecas compartidas, y un conjunto de m�dulos controladores
 PCMCIA.  Cuando se invoca pcinitrd, especifique los m�dulos
 controladores que busca que se incluyan en la imagen. Los componentes
 principales de PCMCIA, pcmcia_core y ds, se incluyen autom�ticamente.

 Como ejemplo, digamos que su port�til usa un controlador compatible
 con i82365, y quiere iniciar Linux con el sistema de archivos ra�z en
 un disco duro conectado a un adaptador Adaptec SlimSCSI. Podr�a crear
 una imagen initrd apropiada con:



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




 Para personalizar la secuencia de inicio de initrd, podr�a 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 configuraci�n se
 instalar�n bajo /etc en la imagen, y tambi�n puede personalizarse.
 Consulte la p�gina del manual de pcinitrd para mayor informaci�n.





 5.3.2.  Creaci�n de un disquete de inicio initrd


 Despu�s 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 ra�z 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 ra�z el especificado. La raz�n 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 ra�z alternativo.


 5.3.3.  Instalaci�n de una imagen initrd  en una unidad no-Linux


 Un uso com�n 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 partici�n no-
 Linux, y lilo o LOADLIN pueden configurarse para iniciar Linux desde
 esas im�genes.

 Asumiendo que tiene un kernel que se ha configurado para el
 dispositivo ra�z apropiado, y una imagen initrd creada en otro
 sistema, la forma m�s f�cil de iniciar Linux es utilizando LOADLIN,
 como:

             LOADLIN <kernel> initrd=<imagen-initrd>




 Una vez que pueda iniciar Linux en su m�quina destino, puede instalar
 lilo para permitir que Linux se inicie directamente. Por ejemplo,
 digamos que /dev/hda1 es la partici�n 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 partici�n ra�z de Linux
 deseada, en un disco duro SCSI montado v�a 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 l�nea boot= dice que se instale el cargador de inicio en el MBR
 (master boot record) del dispositivo especificado. La l�nea root=
 identifica el sistema de archivos ra�z deseado a usar despu�s de
 cargar la imagen initrd, que puede resultar innecesario si la imagen
 del kernel ya se encuentra configurada de esta forma. La secci�n
 other= se usa para describir el otro sistema operativo instalado en
 /dev/hda1.

 Para instalar lilo en este caso, teclee:



             lilo -C lilo.conf




 N�tese 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 creaci�n de archivos de dispositivos para
 las opciones boot= y root=.



 6.  Problemas con tarjetas no soportadas



 6.1.  Configuraci�n de tarjetas no reconocidas


 Asumiendo que su tarjeta est� soportada por alg�n controlador
 existente, todo lo que se necesita hacer es a�adir una entrada a
 /etc/pcmcia/config para decirle a cardmgr c�mo identificar la tarjeta,
 y qu� controlador(es) necesitan ser asociados a esta tarjeta.
 Consulte la p�gina del manual de pcmcia para m�s informaci�n acerca
 del formato del archivo de configuraci�n. Si inserta una tarjeta
 desconocida, cardmgr normalmente almacenar� parte de informaci�n de la
 identificaci�n en el registro del sistema, lo cual puede usarse para
 elaborar la entrada de configuraci�n. Esta informaci�n puede mostrarse
 tambi�n con el comando cardctl ident.

 He aqu� un ejemplo de c�mo 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 podr�a ser:



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




 o usar los c�digos de ID m�s 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 n�meros de versi�n. Cuando haga nuevas entradas
 en la configuraci�n, hay que ser cuidadosos para copiar las cadenas
 exactamente, preservando may�sculas y min�sculas, y espacios en
 blanco.  Aseg�rese tambi�n de que la entrada en la configuraci�n tiene
 el m�smo n�mero de cadenas que aparecen en el archivo de registro.

 Tenga en cuenta que puede especificar cualquier controlador para una
 tarjeta, pero si s�lo est� dando palos de ciego, no hay mucha raz�n
 para esperar que esto resulte productivo. Puede tener suerte y
 encontrar que su tarjeta est� soportada por un controlador existente.
 Sin embargo, el resultado m�s probable es que el controlador no
 funcione, y puede tener efectos laterales desafortunados como el
 congelamiento de su sistema. A diferencia de la mayor�a 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.

 Despu�s de editar /etc/pcmcia/config, env�e una se�al a cardmgr para
 recargar el archivo con:



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




 Si configura una entrada para una tarjeta nueva, por favor, env�eme
 una copia para que pueda incluirla en el archivo de configuraci�n
 est�ndar.


 6.2.  Soporte para una tarjeta ethernet compatible con NE2000


 Antes de empezar: este procedimiento s�lo funcionar� para tarjetas
 ethernet simples. Las tarjetas multifunci�n (por ejemplo, las tarjetas
 �combo� ethernet/m�dem) tienen una capa extra de complejidad en
 relaci�n a c�mo est�n integradas las dos funciones, y generalmente no
 pueden soportarse sin obtener algo de informaci�n de la configuraci�n
 provista por el fabricante de la tarjeta. Usar el procedimiento
 siguiente con una tarjeta multifunci�n no resultar� productivo en
 absoluto.

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

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

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



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




 y busque el volcado de informaci�n de su tarjeta. S�lo los bytes pares
 est�n definidos, as� que ignore los bytes impares del volcado. Anote
 el desplazamiento hexadecimal del primer byte de la direcci�n. 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 direcci�n de hardware. El campo final contiene
 algunos indicadores de caracter�sticas especiales de la tarjeta; para
 empezar, pruebe estableci�ndola a 0.

 Despu�s de editar pcnet_cs.c, compile e instale el nuevo m�dulo.
 Edite nuevamente /etc/pcmcia/config/, y cambie la relaci�n de
 memory_cs con pcnet_cs. Siga las instrucciones para recargar el
 archivo de configuraci�n, y habr� terminado. Por favor m�ndeme copias
 de sus nuevas entradas de configuraci�n a hw_info.

 Si no puede encontrar la direcci�n hardware de su tarjeta en el
 vaciado hexadecimal, como un �ltimo recurso, puede �forzar� la
 direcci�n cuando se inicializa el m�dulo pcnet_cs. Edite
 /etc/pcmcia/config.opts y a�ada una opci�n hw_addr, como esta:



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




 Por supuesto, sustituya su propia direcci�n de hardware de la tarjeta
 en el punto apropiado. Tenga en cuenta que si ha tenido que hacer
 esto, es muy dif�cil 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 m�todos.


 6.3.  Tarjetas PCMCIA para unidades de disquete


 La interfaz para disquete PCMCIA que se usa en los Compaq Aero y otros
 equipos todav�a 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 ex�ctamente c�mo 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, notar�n 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 discusi�n 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 ten�a como pol�tica de la compa��a no divulgar informaci�n
 t�cnica acerca de sus tarjetas. Sin embargo, han modificado sus
 reglas, y ahora, distribuyen informaci�n de los controladores...



 7.  Trucos para depurar e informaci�n de programaci�n



 7.1.  Env�o 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 podr�n ver los problemas actuales (y reparaciones o trabajos
 relacionados, si est�n 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 versi�n del kernel de Linux, y la versi�n 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 m�dulos PCMCIA y el demonio cardmgr env�an 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 env�e
 una notificaci�n 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 notificaci�n de bug, por favor aseg�rese 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
 [email protected]. Sin embargo, prefiero que sean introducidos
 en mi servidor web, as� pueden ser vistos por otros.


 7.2.  Interpretaci�n de los informes generados por los traps  del ker�
 nel


 Si su problema incluye un fallo del kernel, el vaciado del registro
 del fallo s�lo es �til si puede traducir la direcci�n del error, EIP,
 o algo semejante. Las versiones recientes de klogd intentan traducir
 las direcciones de fallos bas�ndose en el mapa actual de s�mbolos del
 kernel, pero puede que no funcione si el error se produce en un
 m�dulo, o si el problema es lo bastante severo como para que que klogd
 no pueda terminar de escribir la informaci�n del fallo en el registro
 del sistema.

 Si se localiza en el kernel principal, la direcci�n 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 m�dulo, el comando nm
 proporciona la misma informaci�n; sin embargo, la direcci�n del fallo
 necesita ajustarse bas�ndose en la direcci�n de carga del m�dulo.
 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 direcci�n de fallo es 0xc2026081. Si buscamos en System.map, vemos
 que esto est� m�s all� de los l�mites del kernel, por ejemplo, es un
 m�dulo del kernel. Para determinar qu� m�dulo, 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 m�dulo 3c574_cs con un desplazamiento de
 0x0081 desde el inicio del m�dulo. Todav�a no podemos ver m�s all� de
 este desplazamiento en 3c574_cs.o: cuando el kernel carga un m�dulo,
 inserta un encabezado en la direcci�n de carga del mismo, as� el
 inicio real se desplaza desde la direcci�n mostrada en ksyms.  El
 tama�o del encabezado var�a con la versi�n del kernel:  para encontrar
 el tama�o en su kernel, busque un m�dulo que exporte s�mbolos (como
 pcmcia_core), y compare la direcci�n del s�mbolo con la salida de nm
 para ese mismo s�mbolo. 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
 tama�o 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 m�dulo 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 despu�s de haber tenido lugar el fallo.
 En otros casos, puede que tenga que deducir indirectamente las
 direcciones de carga del m�dulo. La misma secuencia de eventos cargar�
 normalmente los m�dulos 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 m�dulos
 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
 tambi�n 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
    direcci�n de error principal.

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

 �  Si mata a klogd muchos de los mensajes del kernel har�n 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 env�en a la
    consola, para kernels 2.1.x, si existe /proc/sys/kernel/printk,
    hacer:



             echo 8 > /proc/sys/kernel/printk





 �  La combinaci�n 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
    direcci�n 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 est�n documentadas en Documentation/sysrq.txt dentro del �rbol
    de los fuentes del kernel.


 7.3.  Primeros auxilios al depurar a bajo nivel


 Los m�dulos PCMCIA contienen bastante c�digo de depuraci�n compilado
 de forma condicional. La mayor parte de este c�digo est� bajo el
 control de las definiciones del preprocesador de PCMCIA_DEBUG. Si no
 est� definido, el c�digo de depuraci�n no se compilar�. Si se
 establece a 0, se compilar� pero no estar� activo. Los n�meros mayores
 especifican el incremento del nivel de detalle del registro. Cada
 m�dulo compilado con PCMCIA_DEBUG definido tendr� un par�metro entero,
 pc_debug, que controla el nivel de detalle de su salida. Esto puede
 ajustarse cuando se carga el m�dulo, as� la salida puede controlarse
 en base a cada m�dulo sin necesidad de recompilar.

 Su configuraci�n por omisi�n para syslogd puede descartar los mensajes
 de depuraci�n del kernel. Para asegurarse de que se est�n registrando,
 edite /etc/syslog.conf y compruebe que los mensajes kern.debug se
 registren en alg�n lugar. Consulte man syslog.conf para m�s detalles.


 Hay algunas herramientas de depuraci�n en el subdirectorio debug_tools
 dentro de la distribuci�n de PCMCIA. Las utilidades dump_tcic y
 dump_i365 generan volcados completos de los controladores PCMCIA, y
 decodifican mucha de la informaci�n 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 Informaci�n de Tarjeta), y decodifica algunos bits importantes.
 dump_cisreg muestra los registros de configuraci�n local de una
 tarjeta.

 El controlador de tarjetas de memoria memory_cs a veces tambi�n 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
 com�n 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 p�ginas del manual para m�s informaci�n.


 7.4.  /proc/bus/pccard


 A partir de los kernels 2.1.103, el paquete PCMCIA crea un �rbol de
 informaci�n 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 tambi�n su propio
 subdirectorio de entradas de estado. La entrada info identifica el
 controlador del host y describe sus caracter�sticas. 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 configuraci�n PCI del puente, y la
 entrada cardbus es el vaciado de los registros de configuraci�n de
 CardBus.


 7.5.  Programaci�n de controladores de servicios PCMCIA para nuevas
 tarjetas


 El Linux PCMCIA Programmer's Guide constituye la mejor documentaci�n
 acerca de la interfaz de los controladores. La �ltima versi�n estar�
 siempre disponible en hyper.stanford.edu en /pub/pcmcia/doc, o v�a 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 m�s grande ser�
 modificar un controlador existente que pueda manejar la inserci�n y
 extracci�n de dispositivos despu�s del momento de iniciar. De los
 controladores actuales, el controlador de tarjeta de memoria es el
 �nico controlador aut�nomo, 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 informaci�n t�cnica por parte del fabricante.
 Puede ser dif�cil el encontrar a qui�n preguntar, o a quien explicar
 que informaci�n se necesita. Sin embargo, con pocas excepciones, es
 muy dif�cil, si no imposible, el implementar un controlador para una
 tarjeta sin informaci�n t�cnica por parte del fabricante.

 He escrito un controlador modelo con muchos comentarios que explican
 bastante c�mo el controlador se comunica con los Servicios de
 Tarjetas; lo encontrar� en la distribuci�n 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
 m�s 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, bas�ndome en la demanda de
 los usuarios y tambi�n 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 distribuci�n.

 Los archivos controladores deben acomodarse en el mismo esquema del
 directorio que utiliza la distribuci�n fuente de PCMCIA, as� el
 controlador puede ser desempaquetado en la parte m�s alta del �rbol de
 los fuentes de PCMCIA. Debe incluir los archivos fuentes (en
 ./modules/), una p�gina del manual (en ./man/), y los archivos de
 configuraci�n (en ./etc/ ). El directorio m�s alto debe incluir
 tambi�n un archivo README.

 El directorio de m�s 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
 extensi�n .mk, ser� invocado autom�ticamente por el Makefile de m�s
 alto nivel para los destinos all e install. He aqu� un ejemplo de c�mo
 debe elaborarse un Makefile:



             # Un simple Makefile para un controlador de contribuci�n
             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 instalaci�n que se definen en la
 versi�n 2.9.10 y versiones posteriores del paquete PCMCIA. Este
 makefile tambi�n incluye un destino dist para conveniencia del autor
 del controlador.  Probablemente desee a�adir un n�mero de versi�n al
 final del nombre del paquete (por ejemplo, sample_cs-1.5.tar.gz). Una
 distribuci�n 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 contribuci�n 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
 tambi�n de la maquinaria para comprobar la configuraci�n del sistema
 del usuario, y chequeo autom�tico de dependencias, tal y como un
 controlador �normal�.

 Aceptar� controladores preparados de acuerdo a esta especificaci�n y
 los colocar� en el directorio /etc/pcmcia/contrib en mi servidor FTP,
 hyper.stanford.edu. El archivo README en este directorio describir�
 c�mo desempaquetar un controlador de contribuci�n.

 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 distribuci�n tiene herramientas para configuraci�n del sistema
 que quiera que sean compatibles PCMCIA, por favor, use los archivos
 *.opts en /etc/pcmcia para su �integraci�n�. Dichos archivos no ser�n
 modificados si un usuario compila e instala una nueva versi�n del
 paquete PCMCIA. Si modifica los scripts principales de configuraci�n,
 una instalaci�n fresca sobreescribir� silenciosamente sus scripts
 personalizados y romper� la conexi�n con sus herramientas de
 configuraci�n. Contacte conmigo si no est� seguro de c�mo escribir un
 script de opciones apropiado, o si necesita caracter�sticas
 adicionales.

 Resulta muy �til para los usuarios (y para mi) que documente c�mo
 deriva su distribuci�n 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 configuraci�n. Si me manda la informaci�n
 apropiada, la incluir� en la secci�n ``Notas acerca de distribuciones
 de Linux espec�ficas''.

 Cuando construya una distribuci�n PCMCIA, considere el incluir los
 controladores aportados, que no son parte del paquete PCMCIA
 principal.  Por razones de mantenimiento, estoy tratando de limitar el
 tama�o del paquete principal, a�adiendo solamente controladores nuevos
 si considero que son de inter�s general. Los dem�s controladores se
 distribuir�n por separado, como se describe en la secci�n anterior. La
 divisi�n entre controladores generales y separados es algo arbitraria
 y en parte hist�rica, y no deber�a implicar diferencia alguna en
 cuanto a calidad.


 8.  Anexo: El INSFLUG


 El INSFLUG forma parte del grupo internacional Linux Documentation
 Project, encarg�ndose de las traducciones al castellano de los Howtos,
 as� como de la producci�n de documentos originales en aquellos casos
 en los que no existe an�logo en ingl�s, centr�ndose, preferentemente,
 en documentos breves, como los COMOs y PUFs (Preguntas de Uso
 Frecuente, las FAQs. :) ), etc.

 Dir�jase a la sede del Insflug para m�s informaci�n al respecto.

 En �lla encontrar� siempre las �ltimas versiones de las traducciones
 �oficiales�:  www.insflug.org. Aseg�rese de comprobar cu�l es la
 �ltima versi�n disponible en el Insflug antes de bajar un documento de
 un servidor r�plica.

 Adem�s, cuenta con un sistema interactivo de gesti�n de fe de erratas
 y sugerencias en l�nea, motor de b�squeda espec�fico, y m�s servicios
 en los que estamos trabajando incesantemente.

 Se proporciona tambi�n una lista de los servidores r�plica (mirror)
 del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
 recursos en castellano.

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

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

 �Cartel� Insflug, [email protected].