Serviço carinha-wifi (sistema/wifi, só biblioteca padrão + hostapd e dnsmasq como filhos). Com a rede salva, conecta como cliente e assume o endereço fixo 192.168.1.35; sem rede salva, ou se a rede sumir por 3 min, vira o ponto de acesso "Carinha-Config" com página de configuração que abre sozinha no celular (responde aos testes de internet do Android, iPhone e Windows e anuncia o portal por DHCP). - Lista as redes encontradas com o sinal, aceita rede escondida e opção de endereço fixo ou DHCP; senha guardada só para root (PSK derivada). - Senha errada: a rede anterior continua salva e o ponto de acesso volta com o aviso. Sem ninguém conectado, tenta a rede salva a cada 5 min (faltou luz e a placa ligou antes do roteador). - Quando o Wi-Fi assume o .35, o cabo passa para 192.168.1.34 (reserva); arp_ignore/arp_announce evitam conflito com os dois ligados. - Economia de energia do Wi-Fi desligada (atrasos e quedas no unisoc). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
992 B
Bash
20 lines
992 B
Bash
#!/bin/sh
|
|
# Instala o Wi-Fi com modo de configuração na placa (rodar como root, a partir desta pasta).
|
|
# Seguro com o cabo ligado: sem rede salva, o serviço só sobe o ponto de acesso no wlan0 e não mexe no cabo.
|
|
set -e
|
|
cd "$(dirname "$0")"
|
|
apt-get install -y --no-install-recommends hostapd dnsmasq-base
|
|
# hostapd e dnsmasq rodam como filhos do serviço, nunca sozinhos
|
|
systemctl disable --now hostapd 2>/dev/null || true
|
|
systemctl mask hostapd 2>/dev/null || true
|
|
install -d -m 700 /etc/carinha-wifi
|
|
install -m 755 carinha_wifi.py /usr/local/sbin/carinha-wifi
|
|
install -m 644 carinha-wifi.service /etc/systemd/system/carinha-wifi.service
|
|
# Cabo e Wi-Fi na mesma rede: cada placa de rede só responde pelo próprio endereço (sem "ARP flux")
|
|
printf 'net.ipv4.conf.all.arp_ignore=1\nnet.ipv4.conf.all.arp_announce=2\n' > /etc/sysctl.d/90-carinha-arp.conf
|
|
sysctl -q --system
|
|
systemctl daemon-reload
|
|
systemctl enable carinha-wifi
|
|
systemctl restart carinha-wifi
|
|
echo "carinha-wifi instalado"
|