Estou fazendo um aplicativo gui que controlará meu laptop para que ele funcione como um hotspot de Wi-Fi. Eu posso mudar distribuições, então eu quero encontrar uma solução que funcione geralmente para todas as distribuições. Atualmente estou fazendo isso no Fedora 17.
Usar o botão "Usar como ponto de acesso" do NetworkManager funciona muito bem para criar um ponto de acesso ad hoc:
Euquerorecriaressafuncionalidadecomcomandosdeterminal.
Abaixoestãodoismétodosquetenteirealizar,masaindanãoencontreiumasolução.
Método1:iwconfig
Usandopesquisasemtodaaweb,tenteioseguintecomando:
#ifconfigwlan010.42.0.1netmask255.555.255.0broadcast10.42.0.255up#iwconfigwlan0essidmy-lappymodead-hockey0123456789#iptables-restore<saved-hotspot-iptables#echo1>/proc/sys/net/ipv4/ip_forward#dhclientwlan0
ondesaved-hotspot-iptables
éumarquivoqueeugeroucomiptables-save>saved-hotspot-iptables
comoiptablesdefinidopelafunção"Use as Hotspot".
Método 1 Problema
Os dispositivos podem ver o SSID, mas não conseguem se conectar. A execução de ip a
revela o seguinte sobre wlan0:
...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...
Aviso NO-CARRIER
está presente e o estado é DORMANT
em vez de UP
.
A execução de ifconfig wlan0
mostra o seguinte:
...
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
...
Observe que RUNNING
está ausente como um dos sinalizadores.
Método 2: nmcli
Se o botão "Usar como Ponto de Acesso" do NetworkManager for pressionado pelo menos uma vez no sistema, /etc/sysconfig/network-scripts/ifcfg-Hotspot
será criado e eu poderei usar o seguinte comando para iniciar um ponto de acesso:
# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789
Método 2 Problema
Se o usuário nunca tiver pressionado "Use as hotspot" no NetworkManager antes, nmcli con up id Hotspot
não funcionará. Eu olhei para nm-connection-editor --create
mas não consegui encontrar muita informação. Também procurei criar manualmente /etc/sysconfig/network-scripts/ifcfg-Hotspot
, mas esse método não parece elegante ou extensível a outras distribuições.