mirror of
https://github.com/km4ack/pi-scripts
synced 2026-08-13 17:52:05 -04:00
145 lines
3.7 KiB
Bash
145 lines
3.7 KiB
Bash
#!/bin/bash
|
|
|
|
#install autohotspot from raspberrypiconnect.com
|
|
#http://www.raspberryconnect.com/network/item/331-raspberry-pi-auto-wifi-hotspot-switch-no-internet-routing
|
|
#km4ack 20190409
|
|
#km4ack 20190912
|
|
|
|
|
|
echo ""
|
|
echo "please use autohotspotN script instead of this one"
|
|
echo "download the correct script by running the command below"
|
|
echo "wget https://raw.githubusercontent.com/km4ack/pi-scripts/master/autohotspotN-setup"
|
|
exit 0
|
|
|
|
#update packages
|
|
apt-get update
|
|
|
|
#install hostapd, dnsmasq
|
|
apt-get install -y hostapd
|
|
apt-get install -y dnsmasq
|
|
|
|
#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"
|
|
read -p "Enter password to use with new hotspot " wifipasswd
|
|
echo;echo
|
|
echo "You entered $wifipasswd"
|
|
read -p "Is this correct? y/n " wifians
|
|
if [ $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 "no-resolv" >> /etc/dnsmasq.conf
|
|
echo "interface=wlan0" >> /etc/dnsmasq.conf
|
|
echo "bind-interfaces" >> /etc/dnsmasq.conf
|
|
echo "dhcp-range=10.0.0.50,10.0.0.150,12h" >> /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
|
|
|
|
cd $HOME/temp
|
|
|
|
wget http://www.raspberryconnect.com/images/Autohotspot/autohotspot-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/Autohotspot/autohotspot-95-4/autohotspot.txt
|
|
mv autohotspot.txt /usr/bin/autohotspot
|
|
chmod +x /usr/bin/autohotspot
|
|
|
|
#shackwifi function
|
|
shackwifi1 () {
|
|
#get ham's wifi credentials
|
|
echo "What wifi SSID would you like to connect to?"
|
|
echo "This is the one already in your shack"
|
|
read shackwifi
|
|
echo "What is the password for this wifi?"
|
|
read shackpass
|
|
|
|
echo;echo;
|
|
echo "Your shack's current wifi is"
|
|
echo "wifi $shackwifi"
|
|
echo "passwd $shackpass"
|
|
echo "Is this correct? y/n"
|
|
read shackans
|
|
if [ $shackans == "y" ]
|
|
then
|
|
echo
|
|
else
|
|
shackwifi1
|
|
fi
|
|
}
|
|
|
|
#run shackwifi function
|
|
shackwifi1
|
|
|
|
#add shack wifi to wpa_supplicant.conf
|
|
echo "network={" >> /etc/wpa_supplicant/wpa_supplicant.conf
|
|
echo "ssid=\"$shackwifi\"" >> /etc/wpa_supplicant/wpa_supplicant.conf
|
|
echo "psk=\"$shackpass\"" >> /etc/wpa_supplicant/wpa_supplicant.conf
|
|
echo "key_mgmt=WPA-PSK" >> /etc/wpa_supplicant/wpa_supplicant.conf
|
|
echo "}" >> /etc/wpa_supplicant/wpa_supplicant.conf
|
|
|
|
#remove hostapd masked error on first run of hotspot
|
|
systemctl unmask hostapd
|
|
|
|
echo;echo;echo
|
|
echo "A reboot is required to complete the setup"
|
|
read -p "Would you like to reboot now? y/n " rebot
|
|
if [ $rebot == "y" ]
|
|
then
|
|
reboot
|
|
else
|
|
echo "Please remember to reboot soon"
|
|
fi
|
|
|
|
#need to setup cron job but can't do here b/c running as root
|