Las tarjetas PCI son probadas sin riesgo, por tanto puedes añadir sin más, la siguiente linea al fichero /etc/conf.modules:
alias eth1 tulip
donde 'tulip' el el nombre del driver correcto de la tarjeta.
Las tarjetas ISA tienden a tener una detección peligrosa, por eso debes especificar la dirección I/O de las mismas. Si tienes varias tarjetas soportadas por un único driver, necesitarás especificar las direcciones I/O de cada una de ellas. Añade las siguientes líneas al fichero /etc/conf.modules:
alias eth0 ne
alias eth1 ne
alias eth2 ne
options ne io=0x280,0x300,0x220
donde 'ne' es el nombre del driver correcto de la tarjeta.
Para sistemas que corran distribuciones de linux con los drivers incluidos en el kernel (no como módulos), añade la siguiente linea al principio de to fichero /etc/lilo.conf y ejecuta 'lilo':
append = "ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3"
Esto es todo lo que tienes que hacer. La siguiente vez que arranques, Linux debería probar las cuatro tarjetas de red ethernet.
Para distribuciones tales como RedHat que usan módulos de drivers cargables exclusivamente, la situación es ligeramente más compleja y dependiente de la distribución en cuestión. Puedes averiguar si tu distribución está usando el módulos de drivers para la red buscando un módulos de red en /proc/modules, donde se dice todos los módulos que están cargados.
Los módulos de drivers de los dispositivos los cargados o bien por un proceso llamado 'kerneld' que manda un requerimiento al kernel para un dispositivo de red, o bien, 'modprobe' que intenta cargar todos los módulos de drivers de los dispositivos esperando que alguno de ellos encuentre un dispositivo físico válido.
El proceso 'kerneld' lee el fichero de configuración /etc/conf.modules donde se describen los drivers de dispositivos que deberán ser cargados cuando un requerimiento sea hecho para satisfacer alguna necesidad. Para drivers Ethernet esa necesidad la conforma el nombre de la interfaz, por ejemplo: "eth0" o "eth1". Para cargar el driver correcto, el nombre "eth*" debe ser mapeado ("aliased") al nombre del driver correspondiente. Para dispositivos ISA (excepto la 3c509), la dirección I/O debe ser suministrada.
Este es un ejemplo del fichero /etc/conf.modules que carga el módulo de driver de dispositivo 'ne' para dar soporte a dos adaptadores NE200 adicionales en I/O 0x280 y 0x240 en un sistema que usa una tarjeta WD8013en 0x300 como su interfaz de red primaria:
alias eth0 wd
options wd io=0x300
alias eth1 ne
alias eth2 ne
options ne io=0x280,0x240
Por defecto el kernel de Linux prueba una sola tarjeta de red ethernet y una vez que es encontrada al menos una, este proceso de detección se detiene. Existen tres métodos para hacer que el kernel pruebe tarjetas de red ethernet adicionales. En orden creciente de dificultad, son los siguientes:
Para la mayor parte de las personas, el segundo método es el más apropiado y es el único que se describe en este documento.
En las siguientes instrucciones se asume que estás utilizando el gestor de arranque 'LILO', el estandar de Linux.
El kernel de Linux reconoce ciertos parámetros pasados en el momento del arranque. Muy amenudo, esos parámetros especifican aspectos de la configuración que no pueden ser determinados en el momento del arranque. Para los adaptadores de red es reconocido el siguiente parámetro:
ether=<IRQ>,<IO-ADDR>,<PARAM1>,<PARAM2>,<NAME>
Los argumentos numéricos aceptados pueden ser en decimal, octal (con un '0' inicial) o hexadeximal (precedido por '0x'). El primer argumento no numérico será tomado como el nombre del dispositivo. Los argumentos vacíos serán tomados como ceros, y cualquier argumento que se omita antes del nombre será dejado intacto.
Esta entrada especifica el valor IRQ que será designado (en tarjetas con IRQ's configurables por software) o usada (En tarjetas con IRQ's seleccionables mediante puentes).Un valor '0' significa que se debe leer la línea IRQ de la tarjeta directamente (si es posible) o usar autoIRQ si la tarjeta no provee de un camino para averiguar la IRQ.
Esta entrada especifica una dirección base I/O para probar. Un cero especifica que todas las direcciones I/O usuales serán probadas.
Normamente una region I/O del mapa es usada para decidir si una localización puede ser probada. Este mapa ignora si una dirección I/O está especificada. Esto permite al parámetro "reserve=<IO-ADDR>,<EXTENT>" excluir las pruebas de otros dispositivos de una cierta región de I/O.
Originalmente estas entradas especificaban la dirección de memoria de adaptadores que utilizaban memoria compratida como el WD8013. Ahora han sido extendidas para proveer otra información específica del driver.
El nombre de un dispositivo predefinido. El kernel define al menos "eth0", "eth1", "eth2", and "eth3". Otros nombres de dispositivos (e.g. for PPP, SLIP, or a pocket ethernet device) pueden existir pero tendrán una semántica diferente.
LILO provee dos caminos para pasar parámetros al kernel en el momento de arrancar. De ellos, el más común consiste en teclearlos inmediatamente después de especificar el nombre de la imagen de arranqued.El sigueinte ejemplo activa la comprobación de los cuatro slots disponibles.
linux ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3
Por supuesto, es bastante complicado teclear esto en cada arranque del sistema. Puedes hacer que estos parámetros para el kernel sean permanentes añadiendo una línea "append" a tu fichero de configuración de LILO /etc/lilo.conf, y ejecutando LILO para instalar la nueva configuración.
append = "ether=0,0,eth1 ether=0,0,eth2 ether=0,0,eth3"
Es posible configurar tu sistema sin modificar las fuentes del kernel, yo recomiendo que lo hagas. Modificar el código fuente puede terminar en complicaciones extras en el momento en que decidas actualizar el sistema. Aun así existes unos cuantos casos donde es apropiado hacerlo:
Si has decidido tomar este camino, edita la lista de dispositivos en drivers/net/Space.c para insertar los valores que deseas. Si necesitas añadir un nuevo dispositivo está seguro de que preservas el encadenamiento: Utiliza la lista de entradas existente como guía.
Las tarjetas PCI (y EISA) estan fuera de peligro al ser probadas, por eso la malloría de los drivers de dispositivos PCI encuentran todas las tarjetas soportadas sin parámetros adicionales.La excepción la constituyen los drivers de dispositivos que soportan ambas versiones ISA y PCI de una tarjeta: los drivers de la NE200 y la antigua LANCE/PCnet.
En el kernel v1.2.13 y posteriores el driver LANCE requiere buffers DMA especiales de memoria baja y por ello la prueba de LANCE tiene lugar de forma más retardada que otras pruebas de dispositivos de red.
La 3c509 es la única tiene una característica que permite verdaderamente realizar la prueba en condiciones de seguridad en un bus ISA. Se trata de un mecanismo de activación similar al (y con antelación) bus ISA Plug-and-Play. Esto es bueno pero desafortunadamente, para nosotros este método no se mezcla bien con el resto de las pruebas de detección.
El aspecto más notable es que es dificil predecir a priori que tarjeta será aceptada "primero" -- el orden se basa en la dirección del hardware ethernet. Esto significa que las tarjetas ethernet con la dirección ethernet más baja será asignada a "eth0", y la siguiente a "eth1", etc. Si la tarjeta de red "eth0" se quita, todas las demás bajarán un número.
Un aspecto a relatar es que no es posible dejar una tarjeta "posterior" desactivada, activa una tarjeta en una dirección o IRQ diferente que la configuración en la EEPROM, o activa un tarjeta en una dirección específica.
Autor: Donald Becker, becker@cesdis.gsfc.nasa.gov
The HowTo right-to-copy is given in http://sunsite.unc.edu/mdw/HOWTO/HOWTO-INDEX-6.html Traducido por: Manuel Domínguez Dorado, manolodd@norba.unex.es