Estou usando um Raspberry Pi para criar um pequeno dispositivo autônomo. Ao clicar em um botão, quero configurar uma rede ad-hoc para que um usuário possa se conectar à rede, usar uma ferramenta de configuração baseada na Web e, em seguida, o dispositivo ingressará na rede sem fio especificada na saída. Eu tenho todo o software pronto, mas meu conhecimento de redes Linux não é ótimo. Estou usando o Raspbian Jessie - setembro de 2016.
Aqui está o que proponho fazer para iniciar a rede ad-hoc.
Altere /etc/network/interfaces
para:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
wireless-channel 0
wireless-essid DEVICE
wireless-mode ad-hoc
Embora eu não ache que deva ser usado neste ponto, meu /etc/wpa_supplicant/wpa_supplicant.conf
contém:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
Eu também tenho isc-dhcp-server
em execução para atribuir endereços IP quando o usuário se conecta. O conteúdo de /etc/dhcp/dhcpd.conf
é:
ddns-update-style none;
option domain-name "DEVICE";
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.255;
option broadcast-address 192.168.0.255;
}
Quando chegar a hora de voltar para a rede normal, altere /etc/network/interfaces
para:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
Altero /etc/wpa_supplicant/wpa_supplicant.conf
para:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="{{ssid}}"
psk="{{key}}"
}
Se eu fizer essas alterações manualmente e reinicializar o dispositivo, elas funcionarão conforme o esperado. No entanto, não consigo descobrir qual sequência de comandos fará com que a nova configuração seja aplicada.
Eu tentei várias combinações de:
sudo ifdown --force wlan0 && sudo ifup wlan0
,
sudo service isc-dhcp-server stop
e
sudo service networking restart
.
Ou eu mantenho a configuração antiga ou a rede sem fio é perdida até eu reiniciar.
Meus arquivos de configuração parecem corretos tanto para rede ad-hoc quanto para rede regular? Qual sequência de comandos eu uso para alternar entre eles, iniciando o dhcp quando no modo ad-hoc e parando o dhcp quando no modo regular?