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