Buenas (si llega dos veces, lo siento, pero el server
de correo me lo ha devuelto).
Tengo un peque�o portatil (Celeron 400 del a�o de
matusalen) donde uso un par de tarjetas pcmcia para
conectarme a red: una es la tipica realtek 10-100 y la
otra una 3com para wifi (la primera de la lista de
tarjetas soportadas por el prism54).
La cuesti�n es que me gustar�a que el
network/interfaces y hotplug detectasen
automaticamente que tarjeta le meto y convenientemente
me levantase la config de una o la otra (solo tengo
metidas o la una o la otra pero no ambas a la vez).
He visto algunos ejemplo en la guia de referencia
debian (en ingles y en espa�ol) y en
usr/shrare/doc/ifupdown/examples/network-interfaces.gz
pero no parece funcionarme. Si levanto a mano (ifup
eth0=casa) si funciona pero el hotplug no mace ni
caso. El hotplug, si en vez de llamar a una stanza
mapping llama a una iface parece que si funciona.
Os pongo los ficheros implicados:
#/etc/network/interfaces
# This entry denotes the loopback (127.0.0.1)
interface.
auto lo
iface lo inet loopback
#===========================================================
#Probamos la autodetecci�n autom�tica de tarjeta y red
#Para que se active por hotplug
mapping hotplug
script echo
#Detecci�n de tarjeta
mapping eth?
script /usr/local/sbin/check-mac-address.sh
map 00:00:00:00:00:0F casa
map 00:00:00:00:00:00 universidad
#El parametro que pongo ah� es la direcci�n MAC de
cada tarjeta,
que no
pongo
#por no ser relevante
# Las diferentes tarjetas/interfaces l�gicas
# ifup eth0=[upco|casa|...]
# dado que no parece funcionar la detecci�n autom�tica
#Configurar eth0 con RJ45, red ethernet convencional
en casa
iface casa inet dhcp
hostname miniyo
#Configurar eth0 teniendo la tarjeta Wifi en la uni
iface universidad inet dhcp
hostname miniyo
#a continuaci�n las extensiones wireless
Este es el script al que llamo desde
network/interfaces y que
aparentemente
funciona. Es el que en teoria est� en
/usr/shrare/doc/ifupdown/examples/
pero con un par de modificaciones porque no tiraba. Si
lo ejecuto desde
la
shell (sh -x [nombre script] eth0 DIRMAC casa) el
resultado es el
esperado.
#/usr/local/sbin/check-mac-address.sh
#!/bin/sh
# Checks if the given interface matches the given
ethernet MAC
# if it does it exits with 0 status, if it doesn't
then it exists
# with 1 (error) status.
set -e
export LANG=C
if ! [ -n "$1" -a -n "$2" ] ; then
#OJO: en el original entra en el if si lso parametros
1 y 2 son no
nulos
echo "Usage: $0 IFACE targetMAC"
exit 1
fi
iface="$1"
targetmac=`echo "$2" | sed -e 'y/ABCDEF/abcdef/'`
mac=$(/sbin/ifconfig "$iface" | sed -n -e '/^.*HWaddr
\([:[:xdigit:]]*\).*/{s//\1/;y/ABCDEF/abcdef/;p;q;}')
if [ "$targetmac" = "$mac" ]; then
#El script original no escribe nada en la salida
estandar, solo exit0 o
exit
1
#y me suena haber visto en la documentaci�n que es
necesario escribir
la
#stanza antes de acabar el script
echo "$3"
exit 0;
else exit 1;
fi
Acepto consejos o sugerencias (si no no escribiria
esto XD)
Muchas gracias
P
______________________________________________
Renovamos el Correo Yahoo!: �100 MB GRATIS!
Nuevos servicios, m�s seguridad
http://correo.yahoo.es