Estoy haciendo una aplicación gui que controlará mi computadora portátil para que actúe como un punto de acceso wifi. Puedo cambiar las distribuciones, así que quiero encontrar una solución que funcione en general para todas las distribuciones. Actualmente estoy haciendo esto en Fedora 17.
El uso del botón "Usar como punto de acceso" de NetworkManager funciona muy bien para crear un punto de acceso ad-hoc:
Quiero recrear esta funcionalidad con comandos de terminal.
A continuación hay dos métodos que intenté lograr, pero aún no he encontrado una solución.
Método 1: iwconfig
Utilizando la investigación de toda la web, probé el siguiente comando:
# ifconfig wlan0 10.42.0.1 netmask 255.555.255.0 broadcast 10.42.0.255 up
# iwconfig wlan0 essid my-lappy mode ad-hoc key 0123456789
# iptables-restore < saved-hotspot-iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# dhclient wlan0
donde saved-hotspot-iptables
es un archivo que generé con iptables-save > saved-hotspot-iptables
las iptables establecidas por la función "Usar como punto de acceso".
Método 1 Problema Los
dispositivos pueden ver el SSID pero no pueden conectarse. Correr ip a
revela lo siguiente sobre wlan0:
...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...
El aviso NO-CARRIER
está presente y el estado es en DORMANT
lugar de UP
.
Correr ifconfig wlan0
muestra lo siguiente:
...
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
...
Observe que RUNNING
falta como una de las banderas.
Método 2: nmcli
Si se presiona el botón "Usar como punto de acceso " de NetworkManager al menos una vez en el sistema, /etc/sysconfig/network-scripts/ifcfg-Hotspot
se crea y puedo usar el siguiente comando para iniciar un punto de acceso que funcione:
# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789
Método 2 Problema
Si el usuario nunca ha presionado "Usar como punto de acceso" en NetworkManager antes, nmcli con up id Hotspot
no funcionará. Lo miré nm-connection-editor --create
pero no pude encontrar mucha información. También he examinado la creación manual, /etc/sysconfig/network-scripts/ifcfg-Hotspot
pero este método no parece elegante ni extensible a otras distribuciones.