Comienzo rápido: Módulos de Drivers.
Drivers PCI
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.
ISA drivers
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.
Comienzo rápido: Drivers incluidos en el kernel (no como módulos).
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.
Módulos de Drivers
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
Drivers incluidos en el kernel (no como módulos): Lo que hiciste
y cómo lo hiciste.
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:
-
Pasar parámetros al kernel en el momento del arranque del systema..
-
Configurar el gestor de arranque para que siempre pase dichos parámetros
al kernel en el momento de arrancar.
-
Modificar las tablas que el proceso de prueba de tarjetas de red que realiza
el kernel utiliza y que se encuentran en
drivers/net/Space.c .
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.
Pasando parámetros mediante el gestor de arranque.
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=,,,,
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.
IRQ
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.
IO-ADDR
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.
PARAM1,PARAM2
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.
NAME
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"
Modificando tu kernel
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:
-
Cuando necesites activar más de cuatro dispositivos. (El fichero
drivers/net/Space.c en antiguos kernel sólo tienen entrada para
eth0...eth3.)
-
Cuando debas limitar la prueba a un reducido tipo de tarjetas, por jemplo,
cuando el proceso de prueba confunde dispositivos de diferente tipo.
-
Cuando quieras un nombre de dispositivo distinto de eth
N .
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.
Notas especiales en algunas pruebas de dispositivos
específicas.
Tarjetas PCI
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.
Tarjetas 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 en modo ISA
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:
Becker, becker@cesdis.gsfc.nasa.gov
The HowTo right-to-copy is given in
Traducido por:
Domínguez Dorado,