Asumiendo que su tarjeta está soportada por algún controlador existente,
todo lo que se necesita hacer es añadir una entrada a
/etc/pcmcia/config
para decirle a cardmgr
cómo identificar
la tarjeta, y qué controlador(es) necesitan ser asociados a esta tarjeta.
Consulte la página del manual de pcmcia
para más información acerca
del formato del archivo de configuración. Si inserta una tarjeta
desconocida, cardmgr
normalmente almacenará parte de información de
la identificación en el registro del sistema, lo cual puede usarse para
elaborar la entrada de configuración. Esta información puede mostrarse
también con el comando cardctl ident
.
He aquí un ejemplo de cómo avisa cardmgr
de una tarjeta no soportada
en /usr/adm/messages
cardmgr[460]: unsupported card in socket 1
cardmgr[460]: product info: "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
cardmgr[460]: manfid: 0x0101, 0x1234 function: 2 (serial)
La entrada correspondiente en /etc/pcmcia/config
podría ser:
card "Megahertz XJ2288 V.34 Fax Modem"
version "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
bind "serial_cs"
o usar los códigos de ID más compactos del producto:
card "Megahertz XJ2288 V.34 Fax Modem"
manfid 0x0101, 0x1234
bind "serial_cs"
Puede usar *
para comparar cadenas que no necesiten concordar
exactamente, como los números de versión. Cuando haga nuevas entradas en
la configuración, hay que ser cuidadosos para copiar las cadenas
exactamente, preservando mayúsculas y minúsculas, y espacios en blanco.
Asegúrese también de que la entrada en la configuración tiene el mísmo
número de cadenas que aparecen en el archivo de registro.
Tenga en cuenta que puede especificar cualquier controlador para una
tarjeta, pero si sólo está dando palos de ciego, no hay mucha razón para
esperar que esto resulte productivo. Puede tener suerte y encontrar que su
tarjeta está soportada por un controlador existente. Sin embargo, el
resultado más probable es que el controlador no funcione, y puede tener
efectos laterales desafortunados como el congelamiento de su sistema. A
diferencia de la mayoría de los controladores de dispositivos, los cuales
comprueban la pressencia de la tarjeta apropiada, el sondeo para un
dispositivo PCMCIA se hace con cardmgr
, y el controlador por sí mismo
puede no verificar antes de intentar comunicarse con el dispositivo.
Después de editar /etc/pcmcia/config
, envíe una señal a
cardmgr
para recargar el archivo con:
kill -HUP `cat /var/run/cardmgr.pid`
Si configura una entrada para una tarjeta nueva, por favor, envíeme una copia para que pueda incluirla en el archivo de configuración estándar.
Antes de empezar: este procedimiento sólo funcionará para tarjetas ethernet simples. Las tarjetas multifunción (por ejemplo, las tarjetas «combo» ethernet/módem) tienen una capa extra de complejidad en relación a cómo están integradas las dos funciones, y generalmente no pueden soportarse sin obtener algo de información de la configuración provista por el fabricante de la tarjeta. Usar el procedimiento siguiente con una tarjeta multifunción no resultará productivo en absoluto.
Primero, compruebe si la tarjeta es reconocida por cardmgr
. Algunas
tarjetas que no están listadas en SUPPORTED.CARDS
son realmente
versiones OEM de tarjetas que sí están soportadas. Si encuentra una
tarjeta como ésta, hágamelo saber para que pueda añadirla a la lista.
Si su tarjeta no es reconocida, siga las instrucciones en la sección
Configuración de tarjetas no reconocidas para
crear una entrada en la configuración para su tarjeta, y relacionar la
tarjeta con el controlador pcnet_cs
. Reinicie cardmgr
para
utilizar el archivo de configuración actualizado.
Si el controlador pcnet_cs
dice que no puede determinar la dirección
ethernet del hardware de la tarjeta, edite su nueva entrada en la
configuración para relacionar la tarjeta con el controlador de memoria
memory_cs
. Reinicie cardmgr
para utilizar el nuevo archivo de
configuración actualizado. Necesitará conocer la dirección ethernet del
hardware de la tarjeta. Esta dirección es una serie de seis números
hexadecimales de dos dígitos, impresos normalmente en la misma tarjeta. Si
no están impresos en la tarjeta, puede usar un controlador de DOS para
mostrar la dirección. En cualquier caso, una vez que la sepa, ejecute:
dd if=/dev/mem0a count=20 | od -Ax -t x1
y busque el volcado de información de su tarjeta. Sólo los bytes pares
están definidos, así que ignore los bytes impares del volcado. Anote el
desplazamiento hexadecimal del primer byte de la dirección. Ahora, edite
clients/pcnet_cs.c
y busque la estructura hw_info
.
Necesitará crear una nueva entrada para la tarjeta. El primer campo es el
desplazamiento de memoria. Los siguientes tres campos son los primeros
tres bytes de la dirección de hardware. El campo final contiene algunos
indicadores de características especiales de la tarjeta; para empezar,
pruebe estableciéndola a 0
.
Después de editar pcnet_cs.c
, compile e instale el nuevo módulo.
Edite nuevamente /etc/pcmcia/config/
, y cambie la relación de
memory_cs
con pcnet_cs
. Siga las instrucciones para recargar el
archivo de configuración, y habrá terminado. Por favor mándeme copias de
sus nuevas entradas de configuración a hw_info
.
Si no puede encontrar la dirección hardware de su tarjeta en el vaciado
hexadecimal, como un último recurso, puede «forzar» la dirección cuando se
inicializa el módulo pcnet_cs
. Edite /etc/pcmcia/config.opts
y añada una opción hw_addr
, como esta:
module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03"
Por supuesto, sustituya su propia dirección de hardware de la tarjeta en el punto apropiado. Tenga en cuenta que si ha tenido que hacer esto, es muy difícil que su tarjeta sea genuinamente compatible con NE2000. De hecho, no estoy seguro de la existencia de tarjetas que no sean manejadas por alguno de los dos primeros métodos.
La interfaz para disquete PCMCIA que se usa en los Compaq Aero y otros equipos todavía no está soportada por este paquete. La dificultad para soportar el disquete Aero radica en que el Aero parece usar un controlador PCMCIA personalizado para soportar DMA en el disquete. Sin saber exáctamente cómo se hace esto, no hay forma de implementar soporte bajo Linux.
Si la tarjeta del adaptador de disquete está presente cuando se inicia, la BIOS configurará la tarjeta, y Linux la identificará como una unidad de disquete normal. Cuando se cargan los controladores PCMCIA de Linux, notarán que la tarjeta ya está configurada y conectada al controlador de Linux, y este socket se dejará solo. Así que, la unidad puede usarse si está presente al momento de iniciar, pero la tarjeta no se puede intercambiar en caliente.
El paquete actual PCMCIA incluye un controlador para las tarjetas ethernet
y ethernet/modem de Xircom, gracias al trabajo de Werner Koch. He
dispuesto un foro especialmente para la discusión del desarrollo del
controlador Xircom, en
http://hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html
.
Durante mucho tiempo, las tarjetas Xircom no fueron soportadas porque Xircom tenía como política de la compañía no divulgar información técnica acerca de sus tarjetas. Sin embargo, han modificado sus reglas, y ahora, distribuyen información de los controladores...