Nuevo runlevel para wireless

Cabezon's picture
Desde hace un par de semanas tenemos ADSL en el piso nuevo, y, además, con un router wireless.
Yo tengo un receptor OvisLink USB modelo Evo-W54USB que funciona perfectamente con el driver rt2570 (en el portage), aunque cargar el driver me sube el load average a 2, y no se porque...

La cosa es que solía tirar del cable, porque configurar la red wireless me daba palo, pero pensé, si me dejo la red wireless bien configurada en un net.algo y si me creo un nuveo runlevel, desde el kernel podré decidir si cargar el runlevel normal (default) que me carga la interfaz eth0 (la del cable) o el nuevo que sólo cargará la interfaz wireless (a mi me la crea como rausb0 aunque con un una regla de udev se podría cambiar a eth1 o lo que fuera. Aquí un ejemplo).

Así que ayer me puse manos a la obra, lo primero, crear un servicio que me configure la red:
#emerge wireless-tools
editamos /etc/conf.d/wireless y modifcamos lo siguiente: essid_interfaz="ESSID"
key_ESSID="s:clave enc open"

(en mi caso interfaz=rausb0 y ESSID=SAS y clave mi password, claro)
Luego, necesitamos crear el servicio en /etc/init.d:
#ln -s net.lo net.rausb0
Bien, ya tenemos un servicio que nos configura la wireless (ojo, con dhcp en este caso, pero si miráis en /etc/conf.d/wireless podéis cambiar eso).

Ahora viene lo del runlevel. Primero debemos crearlo:
#mkdir /etc/runlevels/wireless
y añadir los servicos que queramos con el nuevo que hemos crado:
#rc-update add net.rausb wireless
y nos quedará algo así:
# rc-update show wireless
fnfxd | wireless
gpm | wireless
hdparm | wireless
local | wireless
netmount | wireless
net.rausb0 | wireless
spamd | wireless
sshd | wireless
xdm | wireless

(Fijaros que net.eth0 no está!!)

Y ya sólo queda añadir una nueva entrada al grub:
title=Gentoo Linux 2.6.18 Wireless
root (hd0,0)
kernel /kernel-2.6.18 root=/dev/hda5 [...] softlevel=wireless
initrd /boot/fbsplash-Emergance-1024x768

(Los [...] son más parámetros que le paso la kernel y que no viene al caso)
Por cierto, yo he añadido el módulo rt2570 a /etc/modules.autoload.d/kernel-2.6 para que se cargue en cada arranque. _Creo_ que esto es impepinable, que no se puede escoger que módulos cargar y cuales no, aunque debo investigar, porque cargarlo para no utilizarlo no me mola por lo del load avaerage que contaba arriba)

Otra cosa que me he dejado es el hecho de impedir a coldplug que actúe sobre la interficies de red, sino, cada vez cargará todas las inteficies...
Así que en /etc/conf.d/rc modificamos lo siguiente:
RC_COLDPLUG="!net.*"

Reiniciamos y veremos que desde el menú de grub ya podemos seleccionar nuestro mismo kernel pero con wireless perfectamente configurado sin tenre que trastear más!