diff --git a/installers/hostapdstart.sh b/installers/hostapdstart.sh new file mode 100644 index 00000000..254db39b --- /dev/null +++ b/installers/hostapdstart.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# When wireless client AP mode is enabled, this script handles starting up network services in a specific order and timing to avoid race conditions. +# Todo: update /etc/rc.local script with /bin/bash /usr/local/bin/hostapdstart.sh to enable at system startup + +# Make sure services are not running +echo "Stopping network services..." +systemctl stop hostapd.service +systemctl stop dnsmasq.service +systemctl stop dhcpcd.service + +# Check that no uap0 interface exists +echo "Removing uap0 interface..." +iw dev uap0 del + +# Add uap0 interface +echo "Adding uap0 interface..." +iw dev wlan0 interface add uap0 type __ap + +# Modify iptables (todo: persist to /etc/rc.local as with default rules) +echo "IPV4 forwarding: setting..." +sysctl net.ipv4.ip_forward=1 +echo "Editing IP tables..." +iptables -t nat -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE + +# Enable uap0 interface +ifconfig uap0 up + +# Start hostapd, mitigating race condition +echo "Starting hostapd service..." +systemctl start hostapd.service +sleep 5 + +# Start dhcpcd +echo "Starting dhcpcd service..." +systemctl start dhcpcd.service +sleep 5 + +echo "Starting dnsmasq service..." +systemctl start dnsmasq.service + +echo "hostapdstart DONE" + diff --git a/installers/services.sh b/installers/services.sh new file mode 100644 index 00000000..a59f154e --- /dev/null +++ b/installers/services.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# When wireless client AP mode is enabled, the hostapdstart script handles starting up network services +# in a specific order and timing to avoid race conditions. Disabling them here ensures they are not run +# at system startup. + +sudo systemctl stop hostapd +sudo systemctl stop dnsmasq +sudo systemctl stop dhcpcd +sudo systemctl disable hostapd +sudo systemctl disable dnsmasq +sudo systemctl disable dhcpcd \ No newline at end of file