Skip to content

Instantly share code, notes, and snippets.

@devtrillo
Created April 5, 2020 16:32
Show Gist options
  • Save devtrillo/34c9b6341858e02e1532b52ee65d909a to your computer and use it in GitHub Desktop.
Save devtrillo/34c9b6341858e02e1532b52ee65d909a to your computer and use it in GitHub Desktop.
#!/bin/bash
#This version will provide internet when using the hotspot IF an ethernet cable is plugged in"
#This script is for Buster ONLY
#unblock wifi
#needed after buster 20200205
rfkill unblock all > /dev/null 2>&1
#update packages
apt-get update
#install hostapd, dnsmasq
apt-get install -y hostapd
apt-get install -y dnsmasq
#remove hostapd mask
systemctl unmask hostapd
#stop both services
systemctl disable hostapd
systemctl disable dnsmasq
mkdir -p $HOME/temp
wifipass () {
echo;echo;echo
echo "This password will be used to connect to the pi"
echo "when the pi is in hotspot mode"
#credit next line to Ray, N3HYM
echo "Password should be between 8-63 characters"
read -p "Enter password to use with new hotspot " wifipasswd
COUNT=${#wifipasswd}
if [ $COUNT -lt 8 ]
then
echo "Password must be at least 8 characters long"
sleep 2
wifipass
fi
echo;echo
echo "You entered $wifipasswd"
read -p "Is this correct? y/n " wifians
if [ $wifians == "y" ] || [ $wifians == "Y" ]
then
echo
else
wifipass
fi
}
wifipass
cd $HOME/temp
wget http://www.raspberryconnect.com/images/Autohotspot/autohotspot-95-4/hostapd.txt
#set new hotspot passwd
sed -i "s/wpa_passphrase=1234567890/wpa_passphrase=$wifipasswd/" $HOME/temp/hostapd.txt
#set country to US
sed -i 's/country_code=GB/country_code=US/' $HOME/temp/hostapd.txt
#move hostapd to correct location
mv $HOME/temp/hostapd.txt /etc/hostapd/hostapd.conf
sed -i s'/#DAEMON_CONF=""/DAEMON_CONF="\/etc\/hostapd\/hostapd.conf"/' /etc/default/hostapd
sed -i s'/DAEMON_OPTS=""/#DAEMON_OPTS=""/' /etc/default/hostapd
#add needed info to dnsmasq.conf
echo "#AutoHotspot config" >> /etc/dnsmasq.conf
echo "interface=wlan0" >> /etc/dnsmasq.conf
echo "bind-dynamic" >> /etc/dnsmasq.conf
echo "server=8.8.8.8" >> /etc/dnsmasq.conf
echo "domain-needed" >> /etc/dnsmasq.conf
echo "bogus-priv" >> /etc/dnsmasq.conf
echo "dhcp-range=10.10.10.150,10.10.10.200,255.255.255.0,12h" >> /etc/dnsmasq.conf
echo "#Set up redirect for email.com" >> /etc/dnsmasq.conf
echo "dhcp-option=3,10.10.10.10" >> /etc/dnsmasq.conf
echo "address=/email.com/10.10.10.10" >> /etc/dnsmasq.conf
mv /etc/network/interfaces /etc/network/interfaces.org
echo "source-directory /etc/network/interfaces.d" >> /etc/network/interfaces
echo "nohook wpa_supplicant" >> /etc/dhcpcd.conf
#setup ip forward
sed 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
cd $HOME/temp
wget http://www.raspberryconnect.com/images/autohotspotN/autohotspotn-95-4/autohotspot-service.txt
#create autohotspot service file
mv autohotspot-service.txt /etc/systemd/system/autohotspot.service
#start autohotspot service
systemctl enable autohotspot.service
#check if iw installed. install if not
iwcheck=$(dpkg --get-selections | grep -w "iw")
if [ -z "iw" ]
then
apt-get install iw
fi
#install autohotspot script
cd $HOME/temp
wget http://www.raspberryconnect.com/images/autohotspotN/autohotspotn-95-4/autohotspotN.txt
#mod ip address for our custom setup
sed -i 's/192.168.50.5/10.10.10.10/' autohotspotN.txt
mv autohotspotN.txt /usr/bin/autohotspotN
chmod +x /usr/bin/autohotspotN
echo;echo;echo
echo "A reboot is required to complete the setup"
echo "Wifi/AutoHotSpot will not work until reboot"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment