Files
clever-show/builder/assets/client-setup
2020-06-08 11:52:11 +03:00

68 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# $1 - ssid, $2 - password of wifi router
# $3 - hostname of rpi
if [ $(whoami) != "root" ]; then
echo -e "\nThis should be run as root!\n"
exit 1
fi
# check if enough arguments
if [[ $# -ne 3 ]] ; then
echo -e "\nPlease, enter 3 positional arguments: router ssid, wifi password and copter id"
echo -e "\nExample: sudo client-setup droneshow dronewifi clover-1\n"
exit 1
fi
# stop and disable dnsmasq service (to set wifi in client mode)
systemctl stop dnsmasq
systemctl disable dnsmasq
# enable getting auto ip
sed -i 's/interface wlan0//' /etc/dhcpcd.conf
sed -i 's/static ip_address=192.168.11.1\/24//' /etc/dhcpcd.conf
# make backup of wpa_supplicant.conf
if ! [ -f "/etc/wpa_supplicant/wpa_supplicant.conf.OLD" ] ; then
cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.OLD
fi
# set ssid and password of the router
cat << EOF | tee /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB
network={
ssid="$1"
psk="$2"
scan_ssid=1
}
EOF
# restart dhcpcd to connect to wifi as a client
systemctl restart dhcpcd
# set hostname for linux
cat << EOF | tee /etc/hostname
$3
EOF
sed -i "/127.0.1.1/c 127.0.1.1 $3 $3.local" /etc/hosts
# set hostname for ROS
sed -i "/ROS_HOSTNAME/c ROS_HOSTNAME=\'$3\'" /home/pi/.bashrc
# set ssh message
cat << EOF | tee /etc/motd
$3
EOF
# enable clever show service and failsafe service
systemctl enable clever-show.service
systemctl enable failsafe.service
# restart clever
reboot