Documente Academic
Documente Profesional
Documente Cultură
David Hinds, dhinds@hyper.stanford.edu Traducido por David Lim n Romero, dlr@cuates.pue.upaep.mx o Original: v2.40, 10 Septiembre 1999
Este documento describe como instalar y usar los servicios de las tarjetas PCMCIA con Linux. Las ultimas versiones de este documento puede encontrarlas siem pre en ftp://hyper.stanford.edu/pub/pcmcia/doc. La version en HTML esta en http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html
Indice General
1 Informaci n general y requerimientos de hardware o 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 Introducci n o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 4 4 5 5 6 6 6 6 6 8 9 10 11 11 12 12 12 12 13 14 15 15
Cu l es la ultima versi n, y d nde puedo obtenerla? . . . . . . . . . . . . . . . . . . . . . . . . . . a o o Qu sistemas est n soportados? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e a Qu tarjetas est n soportadas? e a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cu ndo estar soportada mi tarjeta favorita (no soportada)? . . . . . . . . . . . . . . . . . . . . . . a a Listas de correo y otras fuentes de informaci n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Por qu no distribuyen binarios? e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compilaci n e instalaci n o o 2.1 2.2 2.3 2.4 2.5 Prerequisitos y conguraci n del kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Instalaci n o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Opciones de inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conguraci n de recursos del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Notas acerca de distribuciones de Linux especcas . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 2.5.2 2.5.3 2.5.4 Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Red Hat, Caldera, Mandrake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slackware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SuSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resoluci n de problemas de instalaci n y conguraci n o o o 3.1 3.2 3.3 3.4 No se cargan los m dulos b sicos de PCMCIA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o a Algunos m dulos controladores no cargan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o fallos en la b squeda de interrupciones u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INDICE GENERAL
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 17 17 18 18 19 19 19 20 20 21 21 21 22 23 24 25 26 27 27 28 28 29 29 30 31 31 32 32 33 33 34 34 35
Fallo al detectar cuando se inserta o se extrae la tarjeta . . . . . . . . . . . . . . . . . . . . . . . . . Faltan recursos del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conicto de recursos entre dos tarjetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uso y caractersticas 4.1 Herramientas para congurar y monitorizar dispositivos PCMCIA . . . . . . . . . . . . . . . . . . . 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.2 4.3 El demonio de conguraci n cardmgr o . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un vistazo a los scripts de conguraci n de PCMCIA o Adaptadores de red PCMCIA 4.3.1 4.3.2 4.3.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Par metros de dispositivos serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a Diagn stico de problemas con dispositivos serie . . . . . . . . . . . . . . . . . . . . . . . . o
4.5
Dispositivos PCMCIA de puerto paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 4.5.2 Par metros de dispositivos paralelos a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6
Adaptadores SCSI PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.1 4.6.2 4.6.3 Par metros de dispositivos SCSI a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7
Tarjetas de memoria PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7.1 4.7.2 Par metros de dispositivos de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a Uso de tarjetas de memoria ash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8
Tarjetas PCMCIA para unidades ATA/IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8.1 4.8.2 Par metros para discos ATA/IDE a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9
Tarjetas multifunci n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o
Temas avanzados 5.1 5.2 5.3 Apartado de recursos para dispositivos PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . C mo puedo separar conguraciones de los dispositivos para casa y el trabajo? . . . . . . . . . . . . o Arranque desde un dispositivo PCMCIA 5.3.1 5.3.2 5.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35 35 36 37 37 38 39 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 40 41 41 42 42 42 44 44 44 45 46 46
El script pcinitrd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creaci n de un disquete de inicio initrd . . . . . . . . . . . . . . . . . . . . . . . . . . . o Instalaci n de una imagen initrd en una unidad no-Linux . . . . . . . . . . . . . . . . . . o
Problemas con tarjetas no soportadas 6.1 6.2 6.3 6.4 Conguraci n de tarjetas no reconocidas o
Soporte para una tarjeta ethernet compatible con NE2000 Tarjetas PCMCIA para unidades de disquete Qu hay de las tarjetas Xircom? e
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trucos para depurar e informaci n de programaci n o o 7.1 7.2 7.3 7.4 7.5 7.6 7.7 Envo de informes de bugs que son de utilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interpretaci n de los informes generados por los traps del kernel . . . . . . . . . . . . . . . . . . . . o Primeros auxilios al depurar a bajo nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /proc/bus/pccard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programaci n de controladores de servicios PCMCIA para nuevas tarjetas . . . . . . . . . . . . . . . o Sugerencias para los autores de controladores PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anexo: El INSFLUG
1.1 Introducci n o
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 o o o de Servicios de Tarjetas, un conjunto de controladores de clientes para tarjetas especcas, 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 o o seg n sea necesario. Soporta extracci n en caliente de la mayora de tarjetas, por lo que pueden ser insertadas y u o extradas de forma segura en cualquier momento. Este software est en continuo desarrollo. Probablemente contenga bugs, y debe ser usado con precauci n. Har lo a o e que est en mi mano para resolver los problemas que me son comunicados, pero si no me los dice, nunca lo sabr . Si e e usa este c digo, espero que me enve sus experiencias, buenas o malas! o Si tiene sugerencias de c mo puede o (dhinds@hyper.stanford.edu). mejorarse este documento, por favor h gamelo a saber
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 a a e general. El soporte para tarjetas CardBus de 32 bits es todava experimental. Los manejadores previos a la versi n 3.0 s lo o o soportan tarjetas de 16 bits en sockets CardBus. Debido al paso tan r pido en el cambio de la tecnologa para el a hardware de port tiles, aparecen nuevos controladores frecuentemente, y puede producirse cierto estancamiento entre a 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 o o que han liberado no ha sido la realmente adecuada. A pesar de los informes de conictos, Toshiba no ha hecho alg n u esfuerzo efectivo para remediar esta situaci n. Hay problemas serios en el soporte de Linux para los chipsets ToPIC, o que no pueden ser resueltos hasta que est disponible una documentaci n mejor, o la ayuda adecuada por parte de e o Toshiba. No recomiendo el uso de port tiles Toshiba por el momento. Para el uso de tarjetas de 16 bits, recomiendo a establecer el modo de puente a PCIC en la conguraci n de la BIOS; para tarjetas CardBus, la decisi n es suya. o o El controlador Motorola 6AHC05GA usado en port tiles Hyundai, no est soportado. El controlador en la HP Omnia a book 600 tampoco.
2. Compilaci n e instalaci n o o
Compilaci n e instalaci n o o
2. Compilaci n e instalaci n o o
de forma que es incompatible con los incluidos en su distribuci n de Linux. A pesar de que compilar el paquete no es o t cnicamente difcil, requiere algo de familiaridad general con Linux. e Las siguientes cosas deben estar instaladas en su sistema antes de comenzar:
El arbol de fuentes del kernel, serie 2.0.*, 2.1.*, o 2.2.* Un conjunto apropiado de utilidades de m dulos. o 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 o o m dulos de los controladores contienen algunas referencias a los archivos fuentes del kernel. Mientras que Vd. busca o 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 a 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. o o 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 o y vericar que su sistema est actualizado, especialmente si tiene actualizado el kernel. Si est usando un kernel en a a desarrollo, aseg rese de estar usando la combinaci n correcta de bibliotecas compartidas y herramientas de m dulos. u o o Cuando congure 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 a o controladores compilados dentro de su kernel s lo desperdiciar espacio. o a Si quiere usar SLIP, PPP o PLIP, necesitar ya sea congurar el kernel con ese soporte activado, o usar la versi n de a o los m dulos cargables de esos controladores. Hay una desafortunada deciencia en el proceso de conguraci n de o o los kernels 1.2.X, en el que no es posible establecer opciones de conguraci n (como compresi n SLIP) para un o o m dulo cargable, as que es probablemente mejor enlazar SLIP dentro del kernel si es que lo necesita. o Para usar un adaptador token ring PCMCIA, el kernel debe estar congurado con la opci n Token Ring driver o support (CONFIG TR) activada, aunque debe dejar CONFIG IBMTR desactivado. Si requiere usar un adaptador IDE PCMCIA, su kernel debe estar congurado con la opci n CONo FIG BLK DEV IDE PCMCIA activada, para los kernels desde 2.0.* hasta 2.1.*. Los kernels antiguos no soportan dispositivos IDE extrables; los nuevos no requieren una conguraci n especial. o Si va a usar un adaptador SCSI PCMCIA, debe habilitar CONFIG SCSI cuando congure el kernel. Debe activar tambi n cualquier controlador de alto nivel (disco SCSI, cinta, cdrom, gen rico) que espere usar. Debe desactivar e e todos los controladores de bajo nivel para adaptadores en particular, porque s lo le quitar n espacio. o a Si busca modularizar un controlador que se necesita para un dispositivo PCMCIA, debe modicar /etc/pcmcia/config para especicar qu m dulos necesitan ser cargados para qu tipos de tarjetas. Por ejeme o e plo, si el controlador serie est modularizado, entonces la denici n del dispositivo serie debera ser: a o
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. a Est basada en un toolkit de libre distribuci n, la biblioteca XForms. Esta librera est disponible como un paquete a o a separado de la mayora de distribuciones de Linux. Si desea compilar cardinfo, deber instalar XForms y todas a las cabeceras y bibliotecas de desarrollo habituales para X antes de congurar el paquete PCMCIA.
2. Compilaci n e instalaci n o o
2.2 Instalaci n o
He aqu una sinopsis del proceso de instalaci n: o
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. Congure 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 includo en la distribuci n principal o e o de PCMCIA, descomprima cada uno de ellos en el directorio raz del arbol PCMCIA. Luego siga las instrucciones normales de compilaci n. Los controladores extras se compilar n e instalar n autom ticamente. o a a a Cuando ejecute make config, se le preguntar n algunas opciones de conguraci n y se comprobar su sistema a o a para vericar que se satisfagan todos los prerequisitos para instalar soporte PCMCIA. En la mayora de los casos, s lo o tendr que aceptar todas las opciones de conguraci n que vienen por omisi n. Aseg rese de comprobar cuidadosaa o o u mente la salida de este comando en caso de que hubiera problemas. Est n disponibles las siguientes opciones: a Hay un directorio de instalaci n alternativo? o Si est compilando el paquete para instalarlo en otro equipo, especique un directorio destino alternativo cuando a se le pregunte. Debe ser una ruta absoluta. Todos los archivos ser n instalados relativos a este directorio. a Entonces estar listo para aplicar tar a este directorio y copiarlo a su equipo destino, y desempaquetarlo a relativo a su directorio raz para instalar todo en los lugares apropiados. Necesita indicadores de compilaci n para depurar? o Vea la secci n 7.3 (Primeros auxilios al depurar a bajo nivel) para mayor informaci n acerca de esta opci n. o o o 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 modicar conguraciones de tarjetas. La forma trusting permite a los usuarios ordinarios ejecutar comandos para suspender y reactivar tarjetas, resetear tarjetas, y cambiar el esquema de conguraci n actual. La forma congurada por omisi n es safe. o o 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 a o puentes CardBus si s lo planea usar tarjetas PC de 16-bits. o 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 sisteo o ma para obtener informaci n de los recursos que est n incluidos en la placa madre (puertos serie y paralelos, o a sonido, etc), para ayudar a prevenir conictos de recursos. Si se habilita, se crear n algunos archivos extra de a 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 congurar opciones especcas del kernel? o Hay algunas opciones de conguraci n del kernel que afectan a las herramientas PCMCIA. El script de cono guraci n puede deducirlo desde el kernel actual (el caso por omisi n y m s com n). Alternativamente, si est o o a u a compilando para instalar en otro equipo, puede leer la conguraci n del arbol de los fuentes del kernel, o cada o opci n se puede establecer interactivamente. o
2. Compilaci n e instalaci n o o
El script de conguraci n se puede ejecutar de forma no-interactiva, para compilar autom ticamente o para reconguo a rar r pidamente despu s de una actualizaci n del kernel. Algunas opciones adicionales no utilizadas con frecuencia a e o s lo pueden ser establecidas desde la lnea de comandos. Ejecutando: Configure --help se listar n todas las o a opciones disponibles. Al ejecutar make all seguido de make install compilar y luego instalar los m dulos del kernel y los a a o programas de utilidades. Los m dulos del kernel ser n instalados en /lib/modules/`versionb/pcmcia. o a Los programas cardctl y cardmgr ser n instalados en /sbin. Si cardinfo se compila, ser instalado en a a /usr/bin/X11. Los archivos de conguraci n ser n instalados en el directorio /etc/pcmcia. Si est instalando sobre una versi n o a a o antigua, sus scripts de conguraci n anteriores se respaldar n antes de ser reemplazados. Los scripts guardados o a tendr n la extensi n de tipo *.O. a o Si no sabe qu tipo de controlador usa su sistema, puede utilizar la utilidad probe en el subdirectorio cardmgr/ e 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 a a un sistema Halikan NBD 486, tiene un controlador TCIC-2 en una localizaci n inusual: necesitar editar rc.pcmcia o a para cargar el m dulo tcic, y tambi n especicar el par metro PCIC OPTS a tcic base=0x02c0. o e a 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 o a controlador conocido. Si esto pasa, edite rc.pcmcia y especica PCIC a i82365, y PCIC OPTS a wakeup=1.
2. Compilaci n e instalaci n o o
10
Esto especica las opciones que se pasar n al demonio cardmgr. Revise man cardmgr para m s informaa a ci n. o SCHEME Si est activado, el esquema de conguraci n de PC Card ser inicializado a este modo en el momento de a o a arrancar. Revise la secci n 4.2 (Un vistazo a los scripts de conguraci n de PCMCIA) para ver la discusi n de o o o esquemas. Los controladores de sockets de bajo nivel, tcic e i82365, tienen varios par metros de sincronizaci n de bus que a o pueden necesitar ser ajustados para sistemas con velocidades de bus no muy usuales. Los sntomas de los problemas de sincronizaci n incluyen problemas al reconocer las tarjetas, congelamiento bajo carga pesada, tasas de error altas, o o rendimiento pobre de dispositivos. S lo ciertos puentes tienen par metros de sincronizaci n ajustables, revise la o a o p gina correspondiente del manual para ver qu opciones existen para su controlador. He aqu un peque o resumen: a e n
Los controladores Cirrus tienen muchos parametros de sincronizaci n. Lo mas importante parece ser el indio
cador cmd time, la cual determina la longitud de los ciclos de bus PCMCIA. En los sistemas r pidos 486 a (DX4-100, por ejemplo) parece ser benecioso el incrementar esto de 6 (por omisi n) a 12 o 16. o
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 reusa para acceder a la Estructura de Informaci n de Tarjeta (Card Information Structure) (CIS) de una tarjeta. o En algunos sistemas con pulsos de bus r pidos, incrementar este par metro (por ejemplo, reducir la velocidad a a de los accesos a tarjeta) puede resultar benecioso para quien tenga problemas al reconocerlas.
lativa del bus PCMCIA y los ciclos de bus del equipo. Activar este indicador a ade estados de espera extra a n algunas operaciones. Sin embargo, todava no he sabido de ning n port til que necesite esto. u a
El m dulo pcmcia core tiene el parametro cis speed para cambiar la velocidad de la memoria, la cual se o Esto no es cuesti n de sincronizaci n, pero si Vd. tiene mas de un controlador ISA-a-PCMCIA en su sistema o o
o tiene bahas extra en una estaci n, el m dulo i82365 debe ser cargado con el par metro extra sockets o o a establecido a 1. Esto no deber ser necesario para detecci n de puentes PCI-a-PCMCIA y PCI-a-CardBus. a o He aqu algunas conguraciones de sincronizaci n para algunos sistemas especcos: o
En un ARM Pentium-90 o en un Midwest Micro Soundbook Plus, use freq bypass=1 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 Conguraci n de recursos del sistema o
cmd time=8.
Los servicios de tarjetas deben evitar autom ticamente el ocupar puertos e interrupciones que ya est n en uso por a e otros dispositivos est ndar. Intentar as mismo detectar conictos con dispositivos desconocidos, pero esto no a a es del todo able, y en algunos casos puede que necesite excluir explcitamente recursos para un dispositivo en /etc/pcmcia/config.opts. He aqu algunas conguraciones de recursos para tipos especcos de port tiles. Revselas con cuidado: pueden a darle informaci n necesaria para resolver problemas, pero algunas est n (inevitablemente) obsoletas y ciertamente o a contienen errores. Las correcciones y adiciones ser n bienvenidas. a
2. Compilaci n e instalaci n o o
11
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 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 especcas
Esta secci n est incompleta. Todas las correcciones y adiciones ser n bienvenidas. o a a 2.5.1 Debian
Debian usa el conjunto de scripts de arranque de tipo System V. El script de inicio PCMCIA est instalado en a /etc/init.d/pcmcia, y las opciones de inicio se especican en /etc/pcmcia.conf. La conguraci n o de syslog de Debian colocar los mensajes del kernel en /var/log/messages y los mensajes del demonio a 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 conguraci n; y el paquete pcmcia-modules que contiene los a o m dulos controladores del kernel. o
12
2.5.2
Estas distribuciones usan la organizaci n de scripts System V. El script de inicio de PCMCIA est instalado en o a /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 o PCMCIA desactivado. Para habilitar PCMCIA, la variable PCMCIA debe establecerse en yes. La conguraci n por o omisi n del syslogd de Red Hat grabar todos los mensajes interesantes en /var/log/messages. o a 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 o de red, con un conjunto de par metros de red, pero no tiene la exibilidad completa del script regular de red PCMCIA. a Compilar e instalar una distribuci n fuente de PCMCIA nueva, sobreescribir el script de red, rompiendo el enlace o a con el panel de control. Si preere el script de Red Hat, puede evitarlo bien usando unicamente 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 modicaciones dentro de su SRPM del kernel, o 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 a /etc/rc.d/rc.pcmcia, y las opciones de inicio se especican 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 a /etc/rc.config. El script de inicio de SuSE est algo limitado y no permite que las variables de inicio de a PCMCIA sean invalidados desde el prompt de inicio de lilo.
Esta secci n describe algunos de los errores m s comunes del subsistema PCMCIA. Compare sus sntomas con los o a ejemplos. Esta secci n s lo describe fallos generales que no son especcas de un controlador o tipo de tarjeta en o o particular. Antes de diagnosticar un problema, debe saber d nde se almacena el registro del sistema (revise la secci n 2.5 (Notas o o acerca de distribuciones de Linux especcas)). Debe estar familiarizado con las herramientas b sicas de diagn stico a o como dmesg y lsmod. Preste especial atenci n al hecho de que muchos componentes de los controladores (incluo yendo todos los m dulos del kernel) tienen sus propias p ginas individuales en el manual. o a
13
Intente denir su problema lo m s ampliamente posible. Si tiene varias tarjetas, pruebe cada tarjeta de forma aislada, a y en diferentes combinaciones. Intente arranques de Linux en fro y arranques en caliente de Windows. Compare el arrancar con tarjetas insertadas, o insertar las tarjetas despu s de iniciar. Si normalmente usa su port til ensamblado e a con una dockstation, pr ebelo aparte. Algunas veces, dos bahas se comportar n de forma diferente. u a 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 identicar el problema bas ndose en los sntomas, los discos de instalaci n a o son difciles de modicar, especialmente sin tener acceso a un sistema Linux ya funcionando. La personalizaci n e o instalaci n de los discos de instalaci n es completamente dependiente de la distribuci n de Linux que elija, y m s o o o a all del enfoque de este documento. En general, el mejor curso de acci n es instalar Linux usando otros medios, a o obteniendo los controladores m s recientes, y depurando el problema entonces, si es que persiste. a
Aparecen errores acerca de que la versi n del kernel diere cuando se ejecuta el script de inicio de PCMCIA. o Despues de iniciar, lsmod no muestra alg n m dulo PCMCIA. u o 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 o o o carga un m dulo. El tipo de chequeo depende de la opci n del kernel CONFIG MODVERSIONS. Si es falso, entonces o o el n mero de versi n del kernel se compila dentro de cada m dulo y el programa insmod comprueba esto para u o o compararlo con el kernel actual. Si CONFIG MODVERSIONS es verdadero, entonces cada smbolo exportado por el kernel tiene un checksum . Esos c digos se comparan con los c digos correspondientes compilados dentro de un o o m dulo. o La idea de esto fue crear m dulos menos dependientes de la versi n, porque los checksums s lo pueden cambiar si la o o o interface del kernel cambia, y podra generalmente permanecer a lo largo de actualizaciones menores del kernel. En esencia, los checksums se han desactivado para ser mas restrictivos, porque muchas interfaces del kernel dependen de las opciones pasadas al momento de compilarse. Tambi n, los checksums han resultado ser jueces excesivamente e 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 o a o a muchas opciones de conguraci n del mismo. Generalmente, un grupo de m dulos compilados para un kernel o o 2.0.31 no cargar con otros kernels 2.0.31 a menos que se tome un cuidado especial asegur ndose que los dos a a fueron compilados con conguraciones similares. Esto resulta ser un asunto difcil para la distribuci n de m dulos o o precompilados del kernel. Tiene Vd. varias opciones:
Si obtuvo controladores precompilados como parte de una distribuci n de Linux, verique que este usando el o Si ha recongurado o actualizado su kernel, probablemente necesitara compilar e instalar el paquete PCMCIA En algunos casos, las incompatibilidades en otros componentes del sistema pueden prevenir la carga correcta de
mismo kernel que vena con su distribuci n, sin modicaciones. Si pretende usar los m dulos precompilados o o que venan con su distribuci n, deber permanecer con el mismo kernel que trajera esta. o a desde cero. Esto se hace f cilmente si ya tiene instalada la estructura fuente del kernel. Revise la secci n 2 a o (Compilaci n e instalaci n) para instrucciones m s detalladas. o o a
los m dulos del kernel. Si ha actualizado su propio kernel, ponga atenci n a la secci n 2.1 (Requisitos) acerca o o o de utilidades para m dulos y binutils que se listan en el archivo Documentation/Changes del arbol o de directorios de los fuentes del kernel.
14
Los m dulos base (pcmcia core, ds, i82365) cargan correctamente. o 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 o la conguraci n del kernel. Por ejemplo, los controladores de tarjetas SCSI requieren que el kernel sea compilado con o soporte SCSI, y los controladores de red requieren un kernel de red. Si a un kernel le falta una caracterstica necesaria, insmod puede avisar acerca de smbolos indenidos y rechazar la carga de un m dulo en particular. Note que los o mensajes de error de insmod no distinguen entre errores por diferencias de versiones y errores por falta de smbolos. Especcamente:
El controlador serie serial cs requiere que el soporte en el kernel este activado con CONFIG SERIAL. Este
controlador se debe compilar como m dulo. o
El soporte para tarjetas serie multipuerto o tarjetas multifunci n que incluyen dispositivos serie o m dems, o o
requieren que se active CONFIG SERIAL SHARE IRQ.
Los clientes SCSI requieren que CONFIG SCSI este activada, junto con las opciones apropiadas para los concompilar como m dulo. o
troladores de alto nivel (CONFIG BLK DEV SD, CONFIG BLK DEV SR etc. para kernels 2.1) que pueden ser compilados como m dulos. o
Los controladores de red requieren que se habilite CONFIG INET El soporte para red del kernel no se puede El cliente token-ring requiere que el kernel se compile con la opci n CONFIG TR activada. o
Hay dos formas de proceder:
Recompile el kernel con las caractersticas necesarias activadas. Si las caractersticas han sido compiladas como m dulos, entonces modique /etc/pcmcia/config para o
precargar esos m dulos. o El archivo /etc/pcmcia/config puede especicar qu m dulos adicionales necesitan cargarse para un cliente en e o 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 especican relativas al nivel m s alto del directorio de m dulos para la versi n actual o a o o del kernel; si no se especica la ruta relativa, entonces la ruta por omisi n ser hacia el subdirectorio pcmcia. o a
15
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 exito, justo antes de que se congele, pero no muestra resultados de las pruebas de interrupciones. Despu s de identicar el tipo de controlador, el controlador del socket sondea las interrupciones libres. Este sone deo o tanteo consiste en programar el controlador para cada interrupci n aparentemente libre, generando una o interrupci n soft (suave), para ver si la interrupci n puede ser detectada correctamente. En algunos casos, el sondear o o una interrupci n en particular puede interferir con otro dispositivo del sistema. o La raz n de este tanteo es identicar interrupciones que parezcan estar libres (es decir, aquellas que no est n o a reservadas por otro controlador de dispositivo), ya sea porque no est conectado fsicamente a la controladora, o que e est conectado a otro dispositivo que no tiene un controlador. e En el registro del sistema, un sondeo realizado con exito 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
El sondeo de interrupciones puede estar restringida a una lista de interrupciones utilizando el parametro
El sondeo de interrupciones puede desactivarse completamente al cargar el controlador del socket con la opci n o
do scan=0. En este caso, se usar una interrupci n por omisi n, la cual evita interrupciones ya utilizadas por a o o otros dispositivos. En cualquier caso, las opciones de tanteo pueden especicarse en el script de inicio de PCMCIA utilizando la denici n o PCIC OPTS, por ejemplo:
PCIC_OPTS="irq_list=5,9,10"
irq list para los controladores. Por ejemplo, irq list=5,9,10 limitar la b squeda a tres interrupa u ciones. Todos los dispositivos PCMCIA estar n restringidos a usar esas interrupciones (asumiendo que pasen el a tanteo). Puede ser que necesite determinar qu interrupciones son tanteables de forma segura a base de ensayo e y error.
Como podr notar, /proc/interrupts es absolutamente in til cuando se van a diagnosticar problemas en el a u sondeo de interrupciones. El tanteo es lo sucientemente sensible como para nunca intentar usar una interrupci n o que ya est en uso por otro controlador de Linux. Los controladores PCMCIA est n ya teniendo en cuenta toda la a a informaci n de /proc/interrupts. Dependiendo del dise o del sistema, un dispositivo inactivo puede todava o n ocupar una interrupci n y causar problemas si es probado por PCMCIA. o
El sistema se congela cuando cardmgr se inicia por primera vez, incluso cuando no hay tarjetas presentes.
16
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. o
En algunos casos, el tanteo de E/S sera positivo, pero avisa de un gran n mero de de exclusiones aleatorias. u
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 a controlador de Linux. El tanteo es de s lo lectura, pero en algunos casos extra os, leer desde un dispositivo puede o n interferir con una funci n importante del sistema, resultando en congelamiento . o La gua de usuario de su sistema debe traer un mapa de los dispositivos del sistema, mostrando sus rangos de E/S y de memoria. Esos pueden ser excluidos explcitamente en config.opts. Por otra parte, si el sondeo no resulta able en su sistema, puede ser desactivado estableciendo CORE OPTS a probe io=0. En este caso, deber ser muy cuidadoso al especicar solamente rangos de puertos genuinamente disponia bles en config.opts, en lugar de usar las conguraciones por omisi n. o
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. u
O alternativamente:
Todas las inserciones de tarjetas generan un pitido agudo seguido de un pitido grave. Todas las tarjetas son identicadas 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 o tarjeta. Esta exploraci n puede interferir potencialmente con otros dispositivos de memoria mapeados. As mismo, o los paquetes de controladores pre-3.0.0 realizan una exploraci n m s agresiva que los controladores m s recientes. o a a La ventana de memoria se dene en /etc/pcmcia/config.opts. La ventana por omisi n es grande, as que o puede ayudar a restringir la exploraci n a un rango m s reducido. Los rangos razonables para incluir son: 0xd0000o a 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. o Tenga en cuenta que las direcciones de memoria de DOS se especican normalmente en forma de segmentos , los cuales dejan el ultimo dgito hexadecimal (as una direcci n absoluta de 0xd0000 puede darse como 0xd000). o Aseg rese de a adir el dgito extra de cuando haga los cambios a config.opts. u n En casos no muy usuales, un fallo en el sondeo de memoria puede indicar un problema de conguraci n en la sincroo nizaci n con el controlador. Revise la secci n 2.3 (Opciones de inicio) para m s informaci n acerca de c mo combatir o o a o o los problemas comunes de sincronizaci n. o
cs:
warning:
17
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 congurar puentes CardBus para usar ventanas de memoria alta, porque es muy difcil que existan conictos con otros dispositivos. Tambi n, las tarjetas CardBus pueden requerir e grandes ventanas de memoria, las cuales puede ser difcil 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 a memoria (alta y baja) se denen en config.opts. El archivo config.opts por omisi n ahora incluye una o 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 denido. o n a En algunos casos, la ventana de memoria alta por omisi n no se utiliza. o En algunos modelos IBM Thinkpad, una ventana de 0x60000000-0x60ffffff funcionar en lugar de la ventana a por omisi n. o
Las tarjetas se detectan y conguran apropiadamente si estan 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 o o
registro del sistema, o emitiendo pitidos. En muchos casos, el controlador del socket (i82365 o tcic) probar autom ticamente y seleccionar la interrupci n a a a o apropiada para se alar cambios en el estado de la tarjeta. El tanteo autom tico de interrupciones no funciona con n a 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 a o controlador del socket puede usar una interrupci n que es usada por otro dispositivo. o Con los controladores i82365 y tcic la opci n list irq puede usarse para limitar las interrupciones que ser n o a 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 o e explcitamente la interrupci n que ser utilizada para monitorizar dichos cambios. o a Si no puede encontrar un n mero de interrupci n que funcione, hay tambi n un estado en modo de b squeda: ambos, u o e u i82365 y tcic aceptar n una opci n poll interval=100, para buscar cambios en el estado de la tarjeta una a o vez por segundo. Esta opci n puede usarse tambi n si su sistema tiene un rango corto de interrupciones disponibles o e para utilizarse con tarjetas PCMCIA. Especialmente para sistemas con m s de un controlador de host, hay un peque o a n punto para dedicar interrupciones para monitorizar cambios de estado de la tarjeta. Todas esas opciones deberan establecerse en la lnea PCIC OPTS= ya sea en /etc/rc.d/rc.pcmcia o en /etc/sysconfig/pcmcia, dependiendo de la conguraci n de su sistema. o
Cuando se inserta una tarjeta, es identicada correctamente, pero no puede ser congurada (secuencia de pitidos
agudos/graves).
18
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 3.3 e o (Fallos en la b squeda de interrupciones). u En algunos casos, el tanteo parece funcionar, pero unicamente 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 o las interrupciones manualmente puede ayudar. Si el sondeo de interrupciones no est funcionando adecuadamente, el controlador del socket puede reservar una ina terrupci n para monitorizar inserciones de tarjetas, incluso cuando las interrupciones sean demasiado escasas para o esto, constituye una buena idea. En este caso, puede Vd. cambiar el controlador a modo de b squeda establecienu do 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. o a La reserva de puertos de E/S no es muy com n, pero algunas veces tiene lugar con tarjetas que requieren regiones u de espacio de E/S grandes, contiguas y alineadas, o que s lo reconocen pocas posiciones especcas de puertos. Los o rangos de puertos de E/S por omisi n en /etc/pcmcia/config.opts normalmente son sucientes, pero pueden o ser extendidos. En casos extra os, la reserva puede indicar que fall el sondeo de puertos de E/S; revise la secci n 3.4 n o o (fallos en la b squeda de puertos de E/S). u La reserva de memoria no es com n tampoco con las conguraciones de la ventana de memoria que vienen por omisi n u o en config.opts. Las tarjetas CardBus pueden requerir regiones de memoria m s grandes que las tarjetas tpicas a 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 o o de utilidad especicar ventanas de memoria amplias en la memoria alta, tales como 0xa0000000-0xa0ffffff.
Dos tarjetas funcionan bien cuando se usan separadamente. Cuando ambas tarjetas se insertan, s lo funciona una. o
Esto usualmente indica un conicto de recursos con un dispositivo del sistema que Linux no conoce. Los dispositivos PCMCIA son congurados din micamente, as, por ejemplo, las interrupciones son reservadas conforme se vayan a necesitando, en lugar de ser asignadas especcamente 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 congurados. En este caso, a la tarjeta congurada en ultimo lugar se le est asignando un recurso que en efecto, no est libre. a a Revise el registro del sistema para ver qu recursos est n usados por la tarjeta que no funciona. Excl yalos de e a u /etc/pcmcia/config.opts, y reinicie el demonio cardmgr para recargar la base de datos de recursos.
4. Uso y caractersticas
19
Uso y caractersticas
El registro del sistema deber tambi n incluir la salida del controlador del socket, describiendo el(los) controlador(es) a e del host encontrado(s) y el n mero de sockets detectados. u 4.1.1 El demonio de conguraci n cardmgr o
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 e n de los pitidos indican el exito o fracaso de un paso de la conguraci n en particular. Dos pitidos agudos indican que la o tarjeta fue identicada y congurada correctamente. Un pitido agudo seguido de un pitido grave indica que la tarjeta fue identicada, pero no pudo ser congurada por alguna raz n. Un pitido grave indica que la tarjeta no pudo ser o identicada. cardmgr registra informaci n del dispositivo para cada socket en /var/run/stab o He aqu el contenido de un ejemplo de /var/run/stab:
Socket 0: Adaptec APA-1460 SlimSCSI 0 scsi aha152x_cs 0 0 scsi aha152x_cs 1 Socket 1: Serial or Modem Card 1 serial serial_cs 0
8 11 5
0 0 65
Para las lneas que describen dispositivos, el primer campo es el socket, el segundo es la clase del dispositivo, el tercero es nombre del controlador, el cuarto se usa para numerar m ltiples dispositivos asociados con el mismo controlador, u
4. Uso y caractersticas
20
el quinto es el nombre del dispositivo, y los dos campos nales son los n meros mayor y menor para este dispositivo u (si es aplicable). El demonio cardmgr congura 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 identicar esas o tarjetas, y cual(es) controlador(es) pertenecen a cada tarjeta. El formato de este archivo se describe en la p gina del a 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 congurado. o a Tambi n puede ser usado para alterar el estado de conguraci n de una tarjeta. He aqu un ejemplo de la salida del e o 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
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 recongurar 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 congurando o desactivando los dispositivos. Si est Vd. corriendo X, cardinfo produce de forma gr ca el estado actual de todos los sockets PCMCIA, similar a a en contenido a cardctl config. Tambi n proporciona una interfaz gr ca para la mayora de las otras funciones e a de cardctl. 4.1.3 Inserci n y extracci n de tarjetas o o
En teora, puede insertar y extraer tarjetas PCMCIA en cualquier momento. Sin embargo, es una buena idea no expulsar una tarjeta que est siendo utilizada por alg n programa de aplicaci n. Los kernels anteriores al 1.1.77 a u o solan congelarse cuando las tarjetas serie/m dem eran expulsadas, aunque esto parece estar ya solucionado. o
4. Uso y caractersticas
21
4.1.4
Los servicios de tarjetas pueden ser compilados con soporte para APM (Advanced Power Management) (En castellano: Administraci n Avanzada de Energa), si congur su kernel con soporte APM. APM est aco o a tualmente a cargo de Stephen Rothwell, Stephen.Rothwell@canb.auug.org.au. El demonio apmd es mantenido por Avery Pennarun, apenwarr@worldvisions.ca), con m s informaci n disponible en a o http://www.worldvisions.ca/apenwarr/apmd/. Los m dulos PCMCIA ser n congurados auo a tom ticamente para APM si es detectada una versi n compatible en el sistema. a o Est APM congurado o no, puede usar cardctl suspend antes de suspender su port til, y cardctl resume e a despu s de despertarlo , para apagar y reactivar sus tarjetas PCMCIA. No funcionar con un m dem que est en e a o e uso, porque el controlador serie no puede guardar y restablecer los par metros operativos del m dem. a o 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
Este script tomar algunos segundos para ejecutarse, para darle tiempo a todos los controladores a desactivarse correca tamente. Si un dispositivo est en uso actualmente, el proceso de desactivaci n ser incompleto, y puede que algunos a o a m dulos del kernel no sean descargados. Para prevenir esto, use cardctl eject para desactivar todos los sockets o antes de invocar rc.pcmcia. El estado de salida del comando cardctl indicar si alguno de los sockets no pudo a ser desactivado.
4. Uso y caractersticas
22
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 conguraci n de red. El esquema actual se selecciona usando el a o comando cardctl scheme. Si no se dene un esquema, por omisi n se establece el esquema default. o Como regla general, cuando se congura Linux para un equipo port til, los dispositivos PCMCIA deben ser congua rados desde los scripts para dispositivos PCMCIA. No intente congurar un dispositivo PCMCIA de la misma forma en que congurara un dispositivo conectado de forma permanente. No obstante, algunas distribuciones de Linux suministran paquetes PCMCIA que est n relacionadas con las herramientas de conguraci n de dispositivos propios a o de la misma distribuci n. En ese caso, alguna de las siguientes secciones puede o no aplicar; idealmente, esto sera o documentado por los encargados de la distribuci n. o
4. Uso y caractersticas
23
4.3.1
Los siguientes par metros se pueden denir en network.opts: a IF PORT Especica 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 o o o 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 o o o a 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 o o o a servidor DHCP, con dhcpcd. IPADDR La direcci n IP para esta interface. o NETMASK, BROADCAST, NETWORK Par metros b sicos de red: revise el COMO de red para m s informaci n. a a a o GATEWAY La direcci n IP de una m quina pasarela para la subred de este host. Los paquetes con destinos hacia afuera de o a esta subred ser n destinados a dicha pasarela. a 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 u u n son mutuamente exclusivos: revise man resolver para m s informaci n. a o DNS 1,DNS 2,DNS 3 Nombres de host o direcciones IP para servidores de nombres para esta interface, para ser a adidos a n /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. u Por ejemplo:
4. Uso y caractersticas
24
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 a n /etc/fstab, incluyendo noauto en las opciones de montaje. En network.opts, liste los puntos de montaje de los sistemas de archivos en la variable MOUNTS. Es especialmente importante usar ya sea cardctl o cardinfo para apagar una tarjeta de red cuando NFS se encuentre activo. No es posible desmontar limpiamente los sistemas de archivos NFS si una tarjeta de red es smplemente expulsada sin precauci n. o En adici n a los par metros usuales de conguraci n de red, el script network.opts puede especicar acciones o a o extra a tomar despu s de que una interface es congurada, o antes de que se apague la interface. Si network.opts e dene una funci n de shell llamada start fn, ser invocada por el script de red despu s de que la interface sea o a e congurada, y el nombre de interface se pasar a la funci n como su primer (y unico) argumento. Similarmente, si es a o denido, stop fn se invocar antes de apagar una interfaz. a El tipo de transceptor se puede seleccionar usando la conguraci n IF PORT. Esto puede ser, ya sea un valor num rico o e como en las versiones anteriores de PCMCIA, o una palabra clave que identique el tipo de transceptor. Todos los controladores de red est n congurados por omisi n para autodetectar la interface si es posible, o bien, utilizar a o 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 a cualquier momento. Las primeras versiones del controlador 3x589 tenan un algoritmo de autodetecci n de transcep o tores algo lento y no muy amistoso. Para esas versiones, el cable de red apropiado debe ser conectado a la tarjeta cuando la tarjeta es congurada, o se puede forzar la autodetecci n con: o
ifconfig eth0 down up
4.3.2
Con las tarjetas IBM CCAE y Socket EA, el tipo de transceptor (10base2, 10baseT, AUI), necesita congurarse
cuando el dispositivo de red est congurado. Aseg rese de que el tipo de transceptor que aparece en el registro a u del sistema concuerda con su conexi n. o
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 denir la primera b squeda de la tarjeta. u
4. Uso y caractersticas
25
La Farallon EtherWave actualmente esta basada en la 3Com 3c589, con un transceptor especial.
Aunque la EtherWave usa conexiones al estilo 10baseT, su transceptor requiere que la 3c589 sea congurada en modo 10base2.
Si tiene problemas con un adaptador IBM CCAE, NE4100, Thomas Conrad, o Kingston, pruebe a incrementar Para el adaptador New Media Ethernet, en algunos sistemas, puede ser necesario incrementar el tiempo de acceso
con kernels multicast, pero ignorar los paquetes multicast. El modo promiscuo debe funcionar apropiadamente. a
el tiempo de acceso con la opci n mem speed=# al m dulo pcnet cs. Un ejemplo de c mo hacer esto se o o o muestra en el archivo config.opts. Pruebe con velocidades por encima de 1000 (en nanosegundos).
al puerto de E/S con la opci n io speed=# cuando se cargue el m dulo pcmcia core. Edite CORE OPTS o o en el script de inicio para activar esta opci n. o
El soporte multicast en el controlador New Media Ethernet esta incompleto. El ultimo controlador funcionara
El controlador usado por los controladores token ring IBM y 3Com parecen comportarse bastante mal si las
Algunas tarjetas Linksys, D-Link, e IC-Card 10baseT/10base2 tienen una forma unica de seleccionar el tipo
tarjetas no est n conectadas cuando son inicializadas. Conecte siempre esas tarjetas a la red antes de activarlas. a Si ifconfig informa que la direcci n de harware como todo 0, esto debe ser debido a un problema de o conguraci n de la ventana de memoria. o
de transceptor que no es manejado por los controladores de Linux. Una soluci n es arrancar DOS y utilizar o 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 o a ftp://hyper.stanford.edu/pub/pcmcia/extras/dlport.c.
Para adaptadores de red inalambricos WaveLAN, Jean Tourrilhes, jt@hpl.hp.com) tiene disponible el Wire4.3.3 Diagn stico de problemas con adaptadores de red o
Es reconocida su tarjeta como una tarjeta ethernet? Revise el registro del sistema y aseg rese de que cardmgr u Esta congurada la tarjeta apropiadamente?
identique la tarjeta correctamente e inicia uno de los controladores de red. Si no lo hace, su tarjeta puede ser utilizable todava si es compatible con una tarjeta soportada. Esto es posible hacerlo f cilmente si la tarjeta dice a ser NE2000 compatible. Si est usando una tarjeta soportada, y fue reconocida por a cardmgr, pero todava no funciona, pudo ser un conicto de interrupci n o puerto con otro dispositivo. De o termine qu recursos est utilizando la tarjeta (en el registro del sistema), e intente de nuevo excluy ndolos en e a e /etc/pcmcia/config.opts para forzar a la tarjeta a usar otros.
Si su tarjeta parece estar congurada 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 a o la secci n 2.3 (Opciones de Inicio) para m s informaci n. o a o
unreachable cuando intenta acceder a la red, la informaci n especicada o en /etc/pcmcia/network.opts es incorrecta. Este mensaje es una indicaci n absolutamente a prueba o de tontos de que hay un error de rutado. Por otra parte, las tarjetas mal conguradas normalmente fallar n a silenciosamente.
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 a a nombre si lleva a cabo dichas pruebas con exito.
4. Uso y caractersticas
26
Aseg rese que su problema sea PCMCIA. Puede ser muy util comprobar si la tarjeta funciona correcu tamente bajo DOS con los controladores del fabricante. Verique bien sus modicaciones al script /etc/pcmcia/network.opts. Aseg rese que su cable, conector T , terminador, etc. est n funciou e nando.
Si un m dem PCMCIA ya est congurado cuando Linux arranca, puede ser identicado incorrectamente como un o a 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 o a /dev/modem, en lugar de indicar que este m dulo debe recargarse. Edite la entrada del dispositivo serie, de modo o que se lea:
device "serial_cs" class "serial" module "misc/serial", "serial_cs"
4. Uso y caractersticas
27
4.4.1
Los siguientes par metros se pueden denir en serial.opts: a LINK Especica una ruta para un enlace simb lico a crear al dispositivo callout (para llamar hacia el exterior) (ejemo plo, /dev/cua* para kernels pre-2.2 o /dev/ttyS* para kernels 2.2.x). SERIAL OPTS Especica las opciones que se pasan al comando setserial. INITTAB Si se especica, se usar para a adir una entrada inittab para el dispositivo. a n Por ejemplo:
case "$ADDRESS" in *,*,*,*) LINK="/dev/modem" SERIAL_OPTS="" INITTAB="/sbin/getty"
4.4.2
Se reconoce su tarjeta como un m dem? Revise el registro del sistema y aseg rese que cardmgr identica o u
la tarjeta correctamente e inicia el controlador serial cs. Si no, necesitar a adir una nueva entrada en el a n chero /etc/pcmcia/config para que pueda ser identicado apropiadamente. Consulte la secci n 6.1 o (Conguraci n de tarjetas no reconocidas) para m s detalles. o a
Es el m dem congurado satisfactoriamente por serial cs? Nuevamente, revise el registro del sistema y o
busque los mensajes del controlador serial cs. Si ve mensajes como register serial() failed debe tener un conicto de puerto de E/S con otro dispositivo. Otra causa de conictos tiene lugar cuando el dispositivo es reconocido como una UART 8250; la mayora de m dems modernos deben identicarse como o UART 16550A. Si piensa que est viendo un conicto de puertos, edite /etc/pcmcia/config.opts y a excluya el rango de puertos que fue reservado para el m dem. o
Hay un conicto de interrupciones? Si el registro del sistema se parece normal, pero el m dem no funcioo
na, pruebe a cambiar la irq a 0 usando setserial y comprobar si el m dem funciona. Esto causa que el o controlador serie use un modo de b squeda m s bajo en lugar de usar interrupciones. Si esto parece soluu a cionar el problema, es probable que otro dispositivo del sistema est usando la interrupci n seleccionada por e o serial cs. Deber a adir una lnea a /etc/pcmcia/config.opts para excluir esta interrupci n. a n o
Si el m dem parece funcionar muy, muy lento, esto es casi un indicador seguro de un conicto de interrupciones. o
Aseg rese que su problema sea realmente PCMCIA. Puede ayudarle comprobar si la tarjeta funciona bajo DOS u 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 e con SLIP, su problema es m s probable que tenga que ver con SLIP, y no con PCMCIA. a
Si obtiene mensajes del kernel indicando que el m dulo serial cs no puede cargarse, signica que su kernel o
no tiene soporte para dispositivo serie. Si ha compilado el controlador serie como m dulo, debe modicar o /etc/pcmcia/config para indicar que el m dulo serie debe cargarse antes de serial cs. o
4. Uso y caractersticas
28
Si congura el kernel para cargar el controlador b sico de puerto paralelo como m dulo, debe editar a o /etc/pcmcia/config para indicar qu m dulos necesitan cargarse. Edite la entrada para el dispositivo parae o lelo de modo que se lea:
device "parport_cs" class "parport" module "misc/parport", "misc/parport_pc", "parport_cs"
4.5.1
Los siguientes par metros pueden especicarse en parport.opts: a LINK Especica la ruta del enlace simb lico a crear hacia el puerto de impresora. o LP OPTS Especica las opciones a pasar al comando tunelp. Por ejemplo:
case "$ADDRESS" in *,*,*,*) LINK="/dev/printer" LP_OPTS=""
4. Uso y caractersticas
29
4.5.2
Hay un conicto 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 u e interrupci n seleccionada por parport cs. Deber a adir una lnea a /etc/pcmcia/config.opts para o a n excluir esta interrupci n. o
Si su kernel genera mensajes indicando que el m dulo parport cs no puede cargarse, signica que el kernel o
no tiene soporte para dispositivos paralelos. Si tiene compilado el controlador paralelo como m dulo, necesita o modicar /etc/pcmcia/config para indicar que los m dulos parport y parport pc deben cargarse o antes que parport cs.
Especicara que se cargase el m dulo principal SCSI y el m dulo controlador de disco antes de cargar el m dulo o o o controlador PCMCIA normal. El script Configure de PCMCIA no detectar autom ticamente m dulos SCSI a a o
4. Uso y caractersticas
30
modularizados, as que necesitar usar la opci n de conguraci n manual para habilitar el soporte SCSI. a o o Encienda siempre los dispositivos SCSI antes de encender su port til, o antes de insertar la tarjeta adaptadora, para que a el bus SCSI est listo cuando el adaptador se congure. Tambi n hay que ser muy cuidadoso al expulsar un adaptador e e SCSI. Aseg rese que todos los dispositivos SCSI asociados sean desmontados y cerrados antes de expulsar la tarjeta. u La mejor forma de asegurar esto es usar cardctl o cardinfo para solicitar que se desactive la tarjeta antes de expulsarla fsicamente. Por ahora, todos los dispositivos SCSI deber n encenderse antes de conectar un adaptador a SCSI, y deber n permanecer conectados hasta que desconecte el adaptador y/o apague su port til. a a Hay una complicaci n potencial cuando se usan tarjetas que no se presentan con adaptadores de bus ISA ordinarios. El o bus SCSI transporta una se al termination power (corriente de terminaci n) que se necesita para que los terminadores n o 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 o a deben congurarse 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 congure la entrada para el dispositivo SCSI, h galo o a teniendo en cuenta si alguno de sus dispositivos requieren o pueden suministrar corriente de terminaci n o no. o 4.6.1 Par metros de dispositivos SCSI a
Los siguientes par metros pueden ser especicados en scsi.opts: a DO FSTAB Es una opci n booleana (y/n): Especica si se debe a adir una entrada /etc/fstab para este dispositivo. o n DO FSCK Es una opci n booleana (y/n): Especica si se debe comprobar este dispositivo antes de ser montado, con fsck o -Ta. DO MOUNT Es una opci n booleana (y/n): Especica si este dispositivo debe montarse autom ticamente al momento de o a 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 a fstab y/o para montar el dispositivo. Por ejemplo, un script para congurar 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" ;;
4. Uso y caractersticas
31
*,sd,*,0,3,0,2) # Opciones para la particin 2: o # 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
La tarjeta Adaptec APA-1480 CardBus necesita una ventana de puerto de E/S grande (256 puertos contiguos
alineados en un lmite de 256 puertos). Puede que sea necesario incluir las regiones de los puertos de E/S en /etc/pcmcia/config.opts para garantizar que cada ventana pueda encontrarse.
No esta soportado el adaptador Adaptec APA-460 SlimSCSI. Esta tarjeta se vendi originalmente bajo el nombre o
de Trantor, y cuando Adaptec se uni a Trantor, continuaron vendiendo la tarjeta Trantor con etiqueta Adaptec. o La APA-460 no es compatible con ning n controlador de Linux existente. u
He sido informado de la mala interacci n entre la tarjeta New Media Bus Toaster y un scanner UMAX Astra o
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. Diagn stico de problemas con adaptadores SCSI o 4.6.3
Con el controlador aha152x cs (usado por Adaptec, New Media, y algunos mas), parece que el soporte SCSI
de conexi n/reconexi n constituye una fuente de problemas frecuentes con dispositivos de cinta. Para desactivar o o esta caracterstica , a ada lo siguiente a /etc/pcmcia/config.opts: n
module "aha152x_cs" opts "reconnect=0"
Con el controlador aha152x cs, ciertos dispositivos parecen requerir un tiempo de espera de inicio mas grande, controlado con el par metro reset delay del m dulo. La unidad CDR Yamaha 4416S es uno de esos a o dispositivos. El resultado es que el dispositivo es identicado 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 u
que la detecci n de un dispositivo es realizada sin problemas, seguida de timeouts del bus SCSI cuando se o sondea el LUN 1 para ese dispositivo, debe desactivar la opci n CONFIG SCSI MULTI LUN del kernel. o tiene compilado el soporte SCSI modularmente (CONFIG SCSI es m), debe modicar /etc/pcmcia/config para cargar los m dulos SCSI antes de que se cargue el controlador * cs o apropiado.
Si
4. Uso y caractersticas
32
command due to timeout (abortando el comando debido a timeout), cuando se sondea el bus SCSI, es muy probable que tenga un conicto de interrupciones. SCSI devices found (no se han encontrado dispositivos SCSI), verique 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 e se ignorar n. a
4.7.1
DO FSTAB Es una opci n booleana (y/n): Especica si se debe a adir una entrada /etc/fstab para este dispositivo. o n DO FSCK Es una opci n booleana (y/n): Especica si se debe comprobar este dispositivo antes de ser montado, con fsck o -Ta. DO MOUNT Es una opci n booleana (y/n): Especica si este dispositivo debe montarse autom ticamente en el momento de o a 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 a 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 a a a est n insertadas: e
4. Uso y caractersticas
33
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
La direcci n de dispositivo que se pasa a ftl.opts consiste en tres o cuatro campos: el esquema, el n mero de o u socket, el n mero de regi n, y opcionalmente, el n mero de partici n. La mayora de tarjetas ash tienen s lo una u o u o o regi n de memoria ash, as que el n mero de regi n ser generalmente cero siempre. o u o a Para usar una tarjeta de memoria ash como un dispositivo de bloques del tipo de un disco ordinario, primero se crea una partici n FTL, o ash translation layer, en el dispositivo por medio del comando ftl format. Esta capa oculta o los detalles especcos de dispositivo de la programaci n de la memoria ash y hace que la tarjeta se vea como un o 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 foro mateada, la tarjeta puede tratarse como un dispositivo de bloques ordinario por medio del controlador ftl cs. Por ejemplo:
mke2fs /dev/ftl0c0 mount -t ext2 /dev/ftl0c0 /mnt
La nomenclatura de dispositivos FTL es difcil. Los n meros menores de los dispositivos tienen tres partes: el n mero u u 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 u o o o o tratada como un simple dispositivo de bloques sin tabla de partici n (como un disquete), o puede particionarse como o un disco duro. El dispositivo ftl0c0 es la tarjeta 0, regi n de memoria com n 0, la regi n entera. Los dispositivos o u o de ftl0c0p1 a ftl0c0p4 son primariamente las particiones de 1 a 4 si la regi n ha sido particionada. o Hay dos formatos mayores para tarjetas de memoria ash: el estilo FTL, y el sistema de archivos Microsoft Flash. El formato FTL es generalmente m s exible porque permite que pueda utilizarse cualquier sistema de archivos de a alto nivel en una tarjeta ash 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 ash Intel Series 100 usan el primer bloque ash de 128k para almacenar la informaci n de la congurao ci n de la tarjeta. Para prevenir el borrado accidental de esta informaci n, ftl format autom ticamente detectar o o a a esto y saltar al primer bloque cuando se cree una partici n FTL. a o
4. Uso y caractersticas
34
expulsarla, porque el controlador no fue programado a prueba de extracci n en caliente. o La direcci n de dispositivo que se pasa a ide.opts consiste de tres o cuatro campos: el esquema actual, el n mero o u de socket, el n mero de serie de la unidad, y un n mero opcional de partici n. El comando ide info puede usarse u u o para obtener el n mero de serie del dispositivo IDE. Tal y como sucede con los dispositivos SCSI, ide.opts se u 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. a o 4.8.1 Par metros para discos ATA/IDE a
Los siguientes par metros se pueden especicar en ide.opts: a DO FSTAB Es una opci n booleana (y/n): Especica si se debe a adir una entrada /etc/fstab para este dispositivo. o n DO FSCK Es una opci n booleana (y/n): Especica si se debe comprobar este dispositivo antes de ser montado, con fsck o -Ta. DO MOUNT Es una opci n booleana (y/n): Especica si este dispositivo debe montarse autom ticamente al momento de o a 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 a 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. o
case "$ADDRESS" in *,*,*,1) DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y" FSTYPE="msdos" OPTS="" MOUNTPT="/mnt" ;; *,*,*) PARTS="1" ;; esac
4.8.2
Algunas unidades IDE violan la especicaci n PCMCIA al requerir un tiempo mayor para iniciar que el maximo o
CORE_OPTS="unreset_delay=400"
permitido para la conguraci n de la tarjeta. Desde la versi n 3.0.6, el controlador ide cs autom ticamente o o a intentar sondear el dispositivo para darle tiempo de iniciarlos. Con los controladores antiguos, necesita cargar a el m dulo pcmcia core con: o
Para usar una unidad de CD-ROM ATA/IDE, el kernel debe compilarse con CONFIG BLK DEV IDECD activa-
do. Normalmente ser el caso para los kernels est ndar, sin embargo es bueno estar enterado por si compila un a a kernel personalizado.
5. Temas avanzados
35
El segundo setserial debe vericar que el puerto ha sido congurado para usar la interrupci n que previamente o utilizaba el controlador ethernet.
Temas avanzados
5. Temas avanzados
36
debe especicarse que el controlador serie debe utilizar s lo la irq 8 o la 12. Sin importar las conguraciones de o irq list, los Servicios de Tarjetas nunca reservar n una interrupci n que ya est siendo usada por otro dispositivo, a o e o una interrupci n que est excluida en el archivo de conguraci n. o e o
La primera parte de una direcci n de dispositivo siempre es la conguraci n del esquema. En este ejemplo, la segunda o o cl usula case aplicar para ambos esquemas. As, si un esquema no est establecido por cualquier raz n, se tomar a a a o a por omisi n la conguraci n casa. o o Ahora, para seleccionar entre dos conjuntos de conguraciones, 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 a otros dispositivos PCMCIA en ese momento (incluso si sus conguracion no es explcitamente dependiente de la conguraci n del esquema). o Para mostrar la conguraci n del esquema, ejecute: o
cardctl scheme
Por omisi n, la conguraci n del esquema es persistente a trav s de los inicios del equipo. Esto puede tener efectos o o e 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 2.3 ( Opciones de Inicio) para m s detalles. Tambi n es o o a e 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 o prompt de inicio se propagar al script de inicio PCMCIA. a Para ahorrarse tecleo, los esquemas pueden ser especicados en el archivo de conguraci n de lilo. Por ejemplo, o puede tener:
5. Temas avanzados
37
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. a
El script pcinitrd crea una imagen b sica para iniciar con una partici n raz PCMCIA. La imagen incluye una a o jerarqua de directorios mnima, algunos archivos de dispositivos, unos cuantos binarios, bibliotecas compartidas, y un
5. Temas avanzados
38
conjunto de m dulos controladores PCMCIA. Cuando se invoca pcinitrd, especique los m dulos controladores o o que busca que se incluyan en la imagen. Los componentes principales de PCMCIA, pcmcia core y ds, se incluyen autom ticamente. a Como ejemplo, digamos que su port til usa un controlador compatible con i82365, y quiere iniciar Linux con el a sistema de archivos raz en un disco duro conectado a un adaptador Adaptec SlimSCSI. Podra crear una imagen initrd apropiada con:
pcinitrd -v initrd pcmcia/i82365.o pcmcia/aha152x_cs.o
Para personalizar la secuencia de inicio de initrd, podra montar la imagen usando el dispositivo loopback con un comando como:
mount -o loop -t ext2 initrd /mnt
y luego editar el script linuxrc. Los archivos de conguraci n se instalar n bajo /etc en la imagen, y tambi n o a e puede personalizarse. Consulte la p gina del manual de pcinitrd para mayor informaci n. a o 5.3.2 Creaci n de un disquete de inicio initrd o
Despu s de crear una imagen con pcinitrd, puede crear un disquete de inicio copiando el kernel, la imagen initrd e comprimida, y algunos archivos de soporte para lilo a un disquete limpio. En el ejemplo siguiente, asumimos que el dispositivo raz PCMCIA deseado es /dev/sda1:
mke2fs /dev/fd0 mount /dev/fd0 /mnt mkdir /mnt/etc /mnt/boot /mnt/dev cp -a /dev/fd0 /dev/sda1 /mnt/dev cp [kernel-image] /mnt/vmlinuz cp /boot/boot.b /mnt/boot/boot.b gzip < [initrd-image] > /mnt/initrd
Cuando lilo es invocado con -r, realiza todas las acciones tomando como directorio raz el especicado. La raz n o para crear los archivos de dispositivo bajo /mnt/dev es que lilo no podr usar esos archivos en /dev cuando se a ejecute con este directorio raz alternativo.
39
5.3.3
Un uso com n de la funcionalidad initrd puede darse en sistemas donde el disco duro interno est dedicado a otro u a sistema operativo. El kernel de Linux y la imagen initrd pueden ponerse en una partici n no-Linux, y lilo o o LOADLIN pueden congurarse para iniciar Linux desde esas im genes. a Asumiendo que tiene un kernel que se ha congurado para el dispositivo raz apropiado, y una imagen initrd creada en otro sistema, la forma m s f cil de iniciar Linux es utilizando LOADLIN, como: a a
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 a directamente. Por ejemplo, digamos que /dev/hda1 es la partici n no-Linux destino y /mnt puede usarse como un o 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 raz de Linux deseada, en un disco duro SCSI montado va o un adaptador PCMCIA SCSI. Para instalar lilo, genere un archivo lilo.conf que contenga:
boot=/dev/hda map=/mnt/linux/map compact image=/mnt/linux/vmlinuz label=linux root=/dev/sda1 initrd=/mnt/linux/initrd read-only other=/dev/hda1 table=/dev/hda label=windows
La lnea boot= dice que se instale el cargador de inicio en el MBR (master boot record) del dispositivo especicado. La lnea root= identica el sistema de archivos raz deseado a usar despu s de cargar la imagen initrd, que puede e resultar innecesario si la imagen del kernel ya se encuentra congurada de esta forma. La secci n other= se usa para o 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 o porque el sistema de archivos destino puede no soportar la creaci n de archivos de dispositivos para las opciones o boot= y root=.
40
sitan ser asociados a esta tarjeta. Consulte la p gina del manual de pcmcia para m s informaci n acerca del formato a a o del archivo de conguraci n. Si inserta una tarjeta desconocida, cardmgr normalmente almacenar parte de inforo a maci n de la identicaci n en el registro del sistema, lo cual puede usarse para elaborar la entrada de conguraci n. o o o Esta informaci n puede mostrarse tambi n con el comando cardctl ident. o e He aqu un ejemplo de c mo avisa cardmgr de una tarjeta no soportada en /usr/adm/messages o
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)
Puede usar * para comparar cadenas que no necesiten concordar exactamente, como los n meros de versi n. Cuando u o haga nuevas entradas en la conguraci n, hay que ser cuidadosos para copiar las cadenas exactamente, preservando o may sculas y min sculas, y espacios en blanco. Aseg rese tambi n de que la entrada en la conguraci n tiene el u u u e o msmo n mero de cadenas que aparecen en el archivo de registro. u Tenga en cuenta que puede especicar cualquier controlador para una tarjeta, pero si s lo est dando palos de ciego, no o a hay mucha raz n para esperar que esto resulte productivo. Puede tener suerte y encontrar que su tarjeta est soportada o a por un controlador existente. Sin embargo, el resultado m s probable es que el controlador no funcione, y puede tener a efectos laterales desafortunados como el congelamiento de su sistema. A diferencia de la mayora de los controladores de dispositivos, los cuales comprueban la pressencia de la tarjeta apropiada, el sondeo para un dispositivo PCMCIA se hace con cardmgr, y el controlador por s mismo puede no vericar antes de intentar comunicarse con el dispositivo. Despu s de editar /etc/pcmcia/config, enve una se al a cardmgr para recargar el archivo con: e n
kill -HUP cat /var/run/cardmgr.pid
Si congura una entrada para una tarjeta nueva, por favor, enveme una copia para que pueda incluirla en el archivo de conguraci n est ndar. o a
41
Si su tarjeta no es reconocida, siga las instrucciones en la secci n 6.1 (Conguraci n de tarjetas no reconocidas) para o o crear una entrada en la conguraci n para su tarjeta, y relacionar la tarjeta con el controlador pcnet cs. Reinicie o cardmgr para utilizar el archivo de conguraci n actualizado. o Si el controlador pcnet cs dice que no puede determinar la direcci n ethernet del hardware de la tarjeta, edite su o nueva entrada en la conguraci n para relacionar la tarjeta con el controlador de memoria memory cs. Reinicie o cardmgr para utilizar el nuevo archivo de conguraci n actualizado. Necesitar conocer la direcci n ethernet del o a o hardware de la tarjeta. Esta direcci n es una serie de seis n meros hexadecimales de dos dgitos, impresos normalmeno u te en la misma tarjeta. Si no est n impresos en la tarjeta, puede usar un controlador de DOS para mostrar la direcci n. a o 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 denidos, as que ignore los byo o a tes impares del volcado. Anote el desplazamiento hexadecimal del primer byte de la direcci n. Ahora, edite o clients/pcnet cs.c y busque la estructura hw info. Necesitar crear una nueva entrada para la tarjeta. El a primer campo es el desplazamiento de memoria. Los siguientes tres campos son los primeros tres bytes de la direcci n o de hardware. El campo nal contiene algunos indicadores de caractersticas especiales de la tarjeta; para empezar, pruebe estableci ndola a 0. e Despu s de editar pcnet cs.c, compile e instale el nuevo m dulo. Edite nuevamente /etc/pcmcia/config/, e o y cambie la relaci n de memory cs con pcnet cs. Siga las instrucciones para recargar el archivo de conguraci n, o o y habr terminado. Por favor m ndeme copias de sus nuevas entradas de conguraci n a hw info. a a o Si no puede encontrar la direcci n hardware de su tarjeta en el vaciado hexadecimal, como un ultimo recurso, puede o forzar la direcci n cuando se inicializa el m dulo pcnet cs. Edite /etc/pcmcia/config.opts y a ada o o n una opci n hw addr, como esta: o
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 o ha tenido que hacer esto, es muy difcil que su tarjeta sea genuinamente compatible con NE2000. De hecho, no estoy seguro de la existencia de tarjetas que no sean manejadas por alguno de los dos primeros m todos. e
42
Durante mucho tiempo, las tarjetas Xircom no fueron soportadas porque Xircom tena como poltica de la compa a n no divulgar informaci n t cnica acerca de sus tarjetas. Sin embargo, han modicado sus reglas, y ahora, distribuyen o e informaci n de los controladores... o
El tipo de sistema, y la salida del comando probe. Que tarjetas PCMCIA esta usando. Su versi n del kernel de Linux, y la versi n del controlador PCMCIA. o o 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 envan mensajes de estado al registro del sistema, que estar o a normalmente en sitios como /var/log/messages o /usr/adm/messages. Este archivo debe ser el primer lugar a comprobar cuando se est rastreando un problema. Cuando enve una noticaci n de bug, incluya siempre el e o 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 noticaci n de bug, por favor aseg rese que no est usando una copia obsoleta del paquete o u e de controladores. Aunque resulte graticante leer informes sobre un bug que ya he reparado, no supone un uso particularmente constructivo de mi tiempo. Si no tiene acceso a web, puede enviarme los informes de bugs a dhinds@hyper.stanford.edu. Sin embargo, preero 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 kernel o
Si su problema incluye un fallo del kernel, el vaciado del registro del fallo s lo es util si puede traducir la direcci n del o o error, EIP, o algo semejante. Las versiones recientes de klogd intentan traducir las direcciones de fallos bas ndose a en el mapa actual de smbolos del kernel, pero puede que no funcione si el error se produce en un m dulo, o si el o problema es lo bastante severo como para que que klogd no pueda terminar de escribir la informaci n del fallo en el o 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 o estar instalado en /System.map o en /boot/System.map. Si est en un m dulo, el comando nm proporciona a o la misma informaci n; sin embargo, la direcci n del fallo necesita ajustarse bas ndose en la direcci n de carga del o o a o m dulo. Digamos que experimenta el siguiente fallo del kernel: o
Unable to handle kernel NULL pointer dereference current->tss.cr3 = 014c9000, %cr3 = 014c9000 *pde = 00000000 Oops: 0002 CPU: 0
43
La direcci n de fallo es 0xc2026081. Si buscamos en System.map, vemos que esto est m s all de los lmites del o a a a kernel, por ejemplo, es un m dulo del kernel. Para determinar qu m dulo, revise la salida de ksyms -m sort o e o
As, 0xc2026081 est en el m dulo 3c574 cs con un desplazamiento de 0x0081 desde el inicio del m dulo. a o o Todava no podemos ver m s all de este desplazamiento en 3c574 cs.o: cuando el kernel carga un m dulo, inserta a a o un encabezado en la direcci n de carga del mismo, as el inicio real se desplaza desde la direcci n mostrada en o o ksyms. El tama o del encabezado vara con la versi n del kernel: para encontrar el tama o en su kernel, busque un n o n m dulo que exporte smbolos (como pcmcia core), y compare la direcci n del smbolo con la salida de nm para o o ese mismo smbolo. En este ejemplo, register ss entry se carga con un desplazamiento de 0xc200d10c 0xc200d000 = 0x010c, mientras que nm pcmcia core.o muestra el desplazamiento como 0x00c0, as que el tama o del encabezado es 0x010c - 0x00c0 = 0x004c bytes. n 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, o observamos:
d t d d
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 o e 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 o a o 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 o insmod y ejecutar ksyms antes de insertarla. Para profundizar, consulte man insmod, man ksyms, y man klogd. En el arbol de los fuentes del kernel, Documentation/oops-tracing.txt tambi n es relevante. He aqu unas cuantas pistas para depurar el kernel: e Dependiendo del error, puede ser util traducir direcciones en el Trazado de llamadas, usando el mismo procedi-
Para diagnosticar un congelamiento silencioso, pruebe provocar el problema con X desactivado, porque los Si mata a klogd muchos de los mensajes del kernel haran eco directamente a la consola de texto, el cual puede Para hacer que todos los mensajes del kernel se enven a la consola,
/proc/sys/kernel/printk, hacer: ser util si el problema impide a klogd escribir en el registro del sistema. para kernels 2.1.x, si existe mensajes del kernel se envan a la consola en texto, y no ser n visibles bajo X. a
44
La combinaci n de teclas `RightAltb`ScrLkb imprime un vaciado del registro en la consola de texto. o Para los kernels 2.1.x congurados con CONFIG MAGIC SYSRQ activado, se pueden activar varias funciones
de emergencia por medio de las combinaciones especiales de las teclas `Altb`SysRqb, que est n documena tadas en Documentation/sysrq.txt dentro del arbol de los fuentes del kernel.
Esto puede funcionar en caso de que el sistema est o no completamente sin responder, y la direcci n EIP puede e o interpretarse como fallo del kernel.
7.4 /proc/bus/pccard
A partir de los kernels 2.1.103, el paquete PCMCIA crea un arbol de informaci n de estado bajo o /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 e entrada info identica el controlador del host y describe sus caractersticas. La entrada exca es un volcado del registro ExCA compatible con Intel i82365sl que se congura para ese socket. Para los puentes CardBus, la entrada pci es el volcado del espacio de la conguraci n PCI del puente, y la entrada cardbus es el vaciado de los registros o de conguraci n de CardBus. o
45
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 modicar un controlador a a existente que pueda manejar la inserci n y extracci n de dispositivos despu s del momento de iniciar. De los controlao o e dores actuales, el controlador de tarjeta de memoria es el unico controlador aut nomo, que no depende de otras partes o 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 o e parte del fabricante. Puede ser difcil el encontrar a qui n preguntar, o a quien explicar que informaci n se necesita. e o Sin embargo, con pocas excepciones, es muy difcil, si no imposible, el implementar un controlador para una tarjeta sin informaci n t cnica por parte del fabricante. o e He escrito un controlador modelo con muchos comentarios que explican bastante c mo el controlador se comunica o con los Servicios de Tarjetas; lo encontrar en la distribuci n fuente de PCMCIA en clients/dummy cs.c. a o
Este Makefile usa los destinos de instalaci n que se denen en la versi n 2.9.10 y versiones posteriores del pao o quete PCMCIA. Este makele tambi n incluye un destino dist para conveniencia del autor del controlador. Probablee mente desee a adir un n mero de versi n al nal del nombre del paquete (por ejemplo, sample cs-1.5.tar.gz). n u o Una distribuci n completa puede ser similar a: o
sample_cs.mk README.sample_cs
8. Anexo: El INSFLUG
46
De esta forma, cuando un controlador de contribuci n se desempaquete, se convierte en parte esencial del arbol o de los fuentes de PCMCIA. Puede hacer uso de los archivos de encabezados de PCMCIA, as como tambi n de la e maquinaria para comprobar la conguraci n del sistema del usuario, y chequeo autom tico de dependencias, tal y o a como un controlador normal . Aceptar controladores preparados de acuerdo a esta especicaci n y los colocar en el directorio e o e /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. a o o 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 a paquete principal. Tratar de noticar a los autores de los controladores externos de los cambios que se requiera e realizar a sus controladores.
Anexo: El INSFLUG
El INSFLUG forma parte del grupo internacional Linux Documentation Project, encarg ndose de las traducciones al a castellano de los Howtos, as como de la producci n de documentos originales en aquellos casos en los que no existe o an logo en ingl s, centr ndose, preferentemente, en documentos breves, como los COMOs y PUFs (Preguntas de Uso a e a Frecuente, las FAQs. :) ), etc. Dirjase a la sede del Insug para m s informaci n al respecto. a o En ella encontrar siempre las ultimas versiones de las traducciones ociales : www.insflug.org. Aseg rese a u de comprobar cu l es la ultima versi n disponible en el Insug antes de bajar un documento de un servidor r plica. a o e Adem s, cuenta con un sistema interactivo de gesti n de fe de erratas y sugerencias en lnea, motor de b squeda a o u especco, y m s servicios en los que estamos trabajando incesantemente. a
8. Anexo: El INSFLUG
47
Se proporciona tambi n una lista de los servidores r plica (mirror) del Insug m s cercanos a Vd., e informaci n e e a o relativa a otros recursos en castellano. En http://www.insflug.org/insflug/creditos.php3 cuenta con una detallada relaci n de las persoo nas que hacen posible tanto esto como las traducciones. Dirjase a http://www.insflug.org/colaboracion/index.php3 si desea unirse a nosotros!. Cartel Insug, cartel@insflug.org.