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:
2.0.*
,
2.1.*
, o 2.2.*
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.
He aquí una sinopsis del proceso de instalación:
pcmcia-cs-3.0.?.tar.gz
en /usr/src
make config
en el nuevo directorio
pcmcia-cs-3.0.?
make all
, y luego make install
.
/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:
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.
Vea la sección Primeros auxilios al depurar a bajo nivel para mayor información acerca de esta opción.
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
.
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.
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.
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
.
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:
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.
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.
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.
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.
Esto especifica las opciones que se pasarán al demonio
cardmgr
. Revise man cardmgr
para más información.
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:
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
.
fast_pci
, la cual debe establecerse si la velocidad del bus PCI es
mayor a 25 Mhz.
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.
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.
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:
freq_bypass=1 cmd_time=8
.
cmd_time=12
.
cmd_time=16
.
fast_pci=1
.
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.
0xc8000-0xcffff
.
0xda000-0xdffff
.
0x2f8-0x2ff
,
irq 3, irq 5.
0x300-0x30f
.
0x230-0x233
, e irq 5.
0x2f8-0x2ff
.
0x2e0-2ff
.
0x2f8-0x33f
, irq 9, irq 10
0x330-0x35f
. Puede
usar el rango de memoria 0xd8000-0xdffff
.
0xc0000-0xcffff
, y el puerto 0x300-0x3bf
.
0xd4000-0xdffff
.
0x2e0-0x2e8
, 0x330-0x338
.
0x300-0x30f
para el CD-ROM.
Esta sección está incompleta. Todas las correcciones y adiciones serán bienvenidas.
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.
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 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 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
.