He leído mucho antes de encontrar una solución para el problema de mi red wifi con tarjeta atheros y mi Ubuntu Gutsy Gibon.
La solución que he encontrado no es la que daría un informático pero he conseguido que me solucione el problema.
He ampliado la información y esta es ahora aplicable también a la nueva versión de Ubuntu 8.04 Hardy Heron, para a través de una conexión wifi en modo Ad-hoc compartir Internet entre dos ordenadores.
Yo tengo una red casera en la que el ordenador con Ubuntu se conecta a través de la tarjeta de red ethernet al modem de cable que tiene salida a Internet y debe compartir la conexión con el otro equipo, a través de la tarjeta inalámbrica.
Para realizar la conexión Wifi entre los dos equipos utilizo el modo ad-hoc, por lo que la configuración por defecto de arranque, en modo managed, no me sirve.
Como mi tarjeta Wifi trae un chip atheros, es necesario tener instalados los linux-rectricted-modules, y para poder realizar la configuración en modo Ad-hoc el paquete «madwifi-tools», o descargar los drivers directamente desde http://snapshots.madwifi.org/.
He creado un script siguiendo las instrucciones de Ubuntu comunity doc para configurar la red en modo ad-hoc y activar primero la red a internet a través de la tarjeta Ethernet conectada al modem o router (ethX, en donde x en general es cero, pero lo puedes comprobar tecleando en la consola: ifconfig) y a continuación activar la tarjeta Wifi en modo Ad-hoc para compartir la conexión a internet.
#!/bin/bash /etc/dbus-1/event.d/25NetworkManager stop # stops the default network manager wlanconfig ath0 destroy # removes the current network card interface ifconfig eth0 up dhclient eth0 wlanconfig ath create wlandev wifi0 wlanmode adhoc # creates a new interface in ad-hoc mode iwconfig ath0 essid xxxxxxxxx # states the name of the network to join iwconfig ath0 key s:xxxxxxxxxxxxx # states the password of the network to join iwconfig ath0 key open ifconfig ath0 up # brings the interface back up |
Tuve que realizar el script y ejecutarlo al arrancar, pues cuando el ordenador sin conexión a internet estaba encendido antes de encender él que tenía Ubuntu con la conexión a internet, este intentaba realizar la conexión a través de la red inalámbrica en lugar de a través de la red cableada, y no había conexión a internet en ninguno de los dos.
Para realizar la compartición de internet en un equipo con Ubuntu existen al menos dos formas.
- En la primera podemos añadir al script que hemos creado para realizar la configuración de la tarjeta Wifi en modo Ad-hoc lo siguiente:
modprobe iptable_nat iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward |
En ethx la x casi siempre es 0 pero podéis comprobarlo con el comando ifconfig.
- El otro modo es instalar Firestarter
-
- Desde consola $ sudo apt-get install firestarter, o también abrir Sistema-Administración-Gestor de paquetes Synaptic y marcar Firestarter para su instalación.
- Una vez instalado lo ejecutamos, y en las últimas versiones con Ubuntu en español podemos tener un problema y es que nos puede salir este mensaje: El dispositivo eth0 no está preparado.
-
- La solución es del blog niaderedes. Hay que modificar dos lineas en el fichero: /etc/firestarter/firestarter.sh para eso lo editamos con $sudo gedit /etc/firestarter/firestarter.sh, y modificamos Mas de Mask en inglés por Más de Máscara en español.
Ahora ejecutamos ya sin problemas Firestarter desde Aplicaciones-Internet. Nos pedirá que tecleemos la clave para adquirir derechos de administrador, y nos aparecerá un asistente para su configuración.
Marcamos para que se inicie al conectar al exterior y marcamos activar la compartición de la conexión externa.
Lo siguiente fue crear unos lanzadores en el panel para que sea mas fácil su uso.
Fijarse que antes del comando es necesario escribir sudo, y cuando se lanza pedirá que se teclee la contraseña de sudo para poder ejecutarlo.
- Abrimos Sistema-Administración-Usuarios y Grupos
- Desbloqueamos para hacer modificaciones
- Vamos a Gestionar grupos y marcamos crear grupo. Yo he creado el grupo adhoc que incluye a los usuarios Jesus y libre
- A continuación vamos a dar permiso para que cuando ejecuten «Ad-hoc» los usuarios pertenecientes al grupo no tengan que teclear la contraseña. Esto lo hacemos modificando el fichero Sudoers.
- El fichero Sudoers no puede modificarse con Gedit, pero si con el editor de texto nano.
sudo nano /etc/sudoers
- Y añadimos la siguiente línea:
%adhoc ALL=NOPASSWD: /ruta al fichero/scripts/adhoc.sh
con esto hemos permitido que los usuarios pertenecientes al grupo adhoc puedan ejecutar el script llamado adhoc.sh sin tener que teclear la clave de sudo.
- Para editar con nano hay que pulsar las teclas «Ctr + e» para guardar «Ctr + o» y para salir «Ctr + x»
Ahora cuando queramos compartir la conexión basta con pulsar sobre el lanzador y lo tendremos funcionando.
Me falta ahora intentar automatizarlo metiendo el script en el init.d, cuando lo pruebe comentaré el resultado por si a alguien le es útil.
Actualizado 24/08/08 y 27/08/08
He puesto la información por si es útil y espero que no exista ningún error, si lo hubiera agradezco los comentarios para poder corregirlo.
Fuentes de Información
http://www.esdebian.org/forum/