Logo de AulaDigital

PCMCIA Como 2

Linux PCMCIA COMO : Compilación e instalación Página siguiente Página anterior Índice general

2. Compilación e instalación

2.1 Prerequisitos y configuración del kernel

Antes de empezar, debería pensar si realmente necesita compilar el paquete por sí mismo. Todas las distribuciones comunes de Linux vienen con paquetes de controladores precompilados. Generalmente, sólo necesita instalar los controladores si necesita una característica nueva de los más actuales, o si ha actualizado y/o reconfigurado su kernel de forma que es incompatible con los incluidos en su distribución de Linux. A pesar de que compilar el paquete no es técnicamente difícil, requiere algo de familiaridad general con Linux.

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

  • El árbol de fuentes del kernel, serie 2.0.*, 2.1.*, o 2.2.*
  • Un conjunto apropiado de utilidades de módulos.
  • La interface de utilidades XForms para X11 (Opcional).

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

Los fuentes y parches «estables» actuales del kernel están disponibles en
ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0, o en
ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0 Los kernels en desarrollo los puede encontrar en los subdirectorios v2.1. las utilidades de módulos actuales puede encontrarlas en la misma ubicación.

En los fuentes del kernel de Linux, el archivo Documentation/Changes describe las versiones de todas las clases de otros componentes del sistema que son requeridas por esa versión del kernel. Probablemente quiera revisarlo y verificar que su sistema está actualizado, especialmente si tiene actualizado el kernel. Si está usando un kernel en desarrollo, asegúrese de estar usando la combinación correcta de bibliotecas compartidas y herramientas de módulos.

Cuando configure su kernel, si planea usar una tarjeta ethernet PCMCIA, debe activar el soporte para red, y desactivar los controladores normales de tarjetas de red de Linux, incluyendo pocket and portable adapters. Todos los controladores para tarjetas de red PCMCIA están compilados como módulos cargables. Cualquiera de los controladores compilados dentro de su kernel sólo desperdiciará espacio.

Si quiere usar SLIP, PPP o PLIP, necesitará ya sea configurar el kernel con ese soporte activado, o usar la versión de los módulos cargables de esos controladores. Hay una desafortunada deficiencia en el proceso de configuración de los kernels 1.2.X, en el que no es posible establecer opciones de configuración (como compresión SLIP) para un módulo cargable, así que es probablemente mejor enlazar SLIP dentro del kernel si es que lo necesita.

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

Si requiere usar un adaptador IDE PCMCIA, su kernel debe estar configurado con la opción CONFIG_BLK_DEV_IDE_PCMCIA activada, para los kernels desde 2.0.* hasta 2.1.*. Los kernels antiguos no soportan dispositivos IDE extraíbles; los nuevos no requieren una configuración especial.

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

Si busca modularizar un controlador que se necesita para un dispositivo PCMCIA, debe modificar /etc/pcmcia/config para especificar qué módulos necesitan ser cargados para qué tipos de tarjetas. Por ejemplo, si el controlador serie está modularizado, entonces la definición del dispositivo serie debería ser:

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

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

2.2 Instalación

He aquí una sinopsis del proceso de instalación:

  • Descomprima pcmcia-cs-3.0.?.tar.gz en /usr/src
  • Ejecute make config en el nuevo directorio pcmcia-cs-3.0.?
  • Ejecute make all, y luego make install.
  • Configure el script de inicio y los archivos de opciones en /etc/pcmcia para su sistema.

Si planea instalar cualquier controlador que sea una contribución y que no esté incluído en la distribución principal de PCMCIA, descomprima cada uno de ellos en el directorio raíz del árbol PCMCIA. Luego siga las instrucciones normales de compilación. Los controladores extras se compilarán e instalarán automáticamente.

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

¿Hay un directorio de instalación alternativo?

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

¿Necesita indicadores de compilación para depurar?

Vea la sección Primeros auxilios al depurar a bajo nivel para mayor información acerca de esta opción.

¿Necesita compilar versiones «trusting» de las utilidades de tarjetas?

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

¿Necesita incluir soporte para tarjetas de 32-bits (CardBus)?

Deberá seleccionar esta opción si desea usar tarjetas CardBus de 32-bits. No se requiere para tener soporte con puentes CardBus si sólo planea usar tarjetas PC de 16-bits.

¿Necesita incluir chequeo de recursos para BIOS PnP?

Esto compila código adicional en el módulo principal PCMCIA para comunicarse con el BIOS PnP de un sistema para obtener información de los recursos que están incluidos en la «placa madre» (puertos serie y paralelos, sonido, etc), para ayudar a prevenir conflictos de recursos. Si se habilita, se crearán algunos archivos extra de recursos bajo /proc/bus/pccard, y las herramientas lspnp y setpnp se pueden usar para visualizar y manipular los dispositivos PnP del BIOS.

¿Cómo configurar opciones específicas del kernel?

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

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

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

Los archivos de configuración serán instalados en el directorio /etc/pcmcia. Si está instalando sobre una versión antigua, sus scripts de configuración anteriores se respaldarán antes de ser reemplazados. Los scripts guardados tendrán la extensión de tipo *.O.

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

En raras ocasiones, el comando probe será incapaz de determinar su tipo de controlador automáticamente. Si tiene un sistema Halikan NBD 486, tiene un controlador TCIC-2 en una localización inusual: necesitará editar rc.pcmcia para cargar el módulo tcic, y también especificar el parámetro PCIC_OPTS a tcic_base=0x02c0.

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

2.3 Opciones de inicio

El script de inicio de PCMCIA reconoce varios grupos de opciones de inicio, establecidas por medio de variables de entorno. Se pueden separar múltiples opciones por medio de espacios y encerradas en comillas. La colocación de las opciones de inicio depende de la distribución de Linux que se esté usando. Pueden ser colocados directamente en el script de inicio, o pueden mantenerse en un archivo de opciones separado. Revise la sección Notas acerca de distribuciones de Linux específicas para más detalles. Se pueden establecer las siguientes variables:

PCMCIA

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

PCIC

Esto identifica el módulo controlador de PC Card Interface Controller. Hay dos opciones: tcic o i82365. Virtualmente todos los controladores actuales están en el grupo i82365. Esta es la única opción obligatoria a establecer.

PCIC_OPTS

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

CORE_OPTS

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

CARDMGR_OPTS

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

SCHEME

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

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

  • Los controladores Cirrus tienen muchos parámetros de sincronización. Lo más importante parece ser el indicador cmd_time, la cual determina la longitud de los ciclos de bus PCMCIA. En los sistemas rápidos 486 (DX4-100, por ejemplo) parece ser beneficioso el incrementar esto de 6 (por omisión) a 12 o 16.
  • El controlador Cirrus PD6729 PCI tiene el indicador fast_pci, la cual debe establecerse si la velocidad del bus PCI es mayor a 25 Mhz.
  • Para controladores Vadem VG-468 y Databook TCIC-2, el indicador async_clock cambia la velocidad relativa del bus PCMCIA y los ciclos de bus del equipo. Activar este indicador añade estados de espera extra a algunas operaciones. Sin embargo, todavía no he sabido de ningún portátil que necesite esto.
  • El módulo pcmcia_core tiene el parámetro cis_speed para cambiar la velocidad de la memoria, la cual se usa para acceder a la Estructura de Información de Tarjeta (Card Information Structure) (CIS) de una tarjeta. En algunos sistemas con pulsos de bus rápidos, incrementar este parámetro (por ejemplo, reducir la velocidad de los accesos a tarjeta) puede resultar beneficioso para quien tenga problemas al reconocerlas.
  • Esto no es cuestión de sincronización, pero si Vd. tiene más de un controlador ISA-a-PCMCIA en su sistema o tiene bahías extra en una estación, el módulo i82365 debe ser cargado con el parámetro extra_sockets establecido a 1. Esto no deberá ser necesario para detección de puentes PCI-a-PCMCIA y PCI-a-CardBus.

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

  • En un ARM Pentium-90 o en un Midwest Micro Soundbook Plus, use freq_bypass=1 cmd_time=8.
  • En un Midwest Micro Soundbook Elite, use cmd_time=12.
  • En un Gateway Liberty, pruebe con cmd_time=16.
  • En un Samsung SENS 810, use fast_pci=1.

2.4 Configuración de recursos del sistema

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

He aquí algunas configuraciones de recursos para tipos específicos de portátiles. Revíselas con cuidado: pueden darle información necesaria para resolver problemas, pero algunas están (inevitablemente) obsoletas y ciertamente contienen errores. Las correcciones y adiciones serán bienvenidas.

  • En un AMS SoundPro, excluya la irq 10.
  • En algunos modelos AMS TravelPro 5300, use el rango de memoria 0xc8000-0xcffff.
  • En un BMX 486DX2-66, excluya irq 5, irq 9.
  • En un Chicony NB5, use el rango de memoria 0xda000-0xdffff.
  • En un Compaq Presario 1020, excluya el puerto 0x2f8-0x2ff, irq 3, irq 5.
  • En un HP Omnibook 4000C, excluya el puerto 0x300-0x30f.
  • En un IBM ThinkPad 380, y posiblemente en las series 385 y 600, excluya el puerto 0x230-0x233, e irq 5.
  • En un IBM ThinkPad 600, excluya el puerto 0x2f8-0x2ff.
  • En un Micron Millenia Transport, excluya irq 5, irq 9.
  • En un NEC Versa M, excluya irq 9, y el puerto 0x2e0-2ff.
  • En un NEC Versa P/75, excluya irq 5, irq 9.
  • En un NEC Versa S, excluya irq 9, irq 12.
  • En las series NEC Versa 6000, excluya el puerto 0x2f8-0x33f, irq 9, irq 10
  • En un ProStar 9200, Altima Virage, y Acquiline Hurricane DX4-100, excluya irq 5, y el puerto 0x330-0x35f. Puede usar el rango de memoria 0xd8000-0xdffff.
  • En un Siemens Nixdorf SIMATIC PG 720C, use el rango de memoria 0xc0000-0xcffff, y el puerto 0x300-0x3bf.
  • En un TI TravelMate 5000, use el rango de memoria 0xd4000-0xdffff.
  • En un Toshiba T4900 CT, excluya irq 5, y los puertos 0x2e0-0x2e8, 0x330-0x338.
  • En un Twinhead 5100, HP 4000, Sharp PC-8700 and PC-8900, excluya irq 9 (sonido), irq 12.
  • En un MPC 800 Series, excluya irq 5, y el puerto 0x300-0x30f para el CD-ROM.

2.5 Notas acerca de distribuciones de Linux específicas

Esta sección está incompleta. Todas las correcciones y adiciones serán bienvenidas.

Debian

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

Debian distribuye el sistema PCMCIA en dos paquetes: el paquete pcmcia-cs que contiene cardmgr y otras herramientas, páginas del manual, y los scripts de configuración; y el paquete pcmcia-modules que contiene los módulos controladores del kernel.

Red Hat, Caldera, Mandrake

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

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

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

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

Slackware

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

SuSE

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


Página siguiente Página anterior Índice general