Kaynağa Gözat

Adding wifi support

Bob Mottram 10 yıl önce
ebeveyn
işleme
14c1cd25f8
1 değiştirilmiş dosya ile 77 ekleme ve 0 silme
  1. 77
    0
      install-freedombone.sh

+ 77
- 0
install-freedombone.sh Dosyayı Görüntüle

@@ -302,6 +302,15 @@ DATABASE_PASSWORD_FILE=/root/dbpass
302 302
 # log file where details of remote backups are stored
303 303
 REMOTE_BACKUPS_LOG=/var/log/remotebackups.log
304 304
 
305
+# Whether to enable wifi (on the BBB via USB)
306
+ENABLE_WIFI="no"
307
+
308
+# ESSID for wifi
309
+WIFI_ESSID=
310
+
311
+# Optional wifi password
312
+WIFI_PASSWORD=
313
+
305 314
 # message if something fails to install
306 315
 CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."
307 316
 
@@ -372,6 +381,15 @@ function read_configuration {
372 381
       if grep -q "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
373 382
           LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
374 383
       fi
384
+      if grep -q "ENABLE_WIFI" $CONFIGURATION_FILE; then
385
+          ENABLE_WIFI=$(grep "ENABLE_WIFI" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
386
+      fi
387
+      if grep -q "WIFI_PASSWORD" $CONFIGURATION_FILE; then
388
+          WIFI_PASSWORD=$(grep "WIFI_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
389
+      fi
390
+      if grep -q "WIFI_ESSID" $CONFIGURATION_FILE; then
391
+          WIFI_ESSID=$(grep "WIFI_ESSID" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
392
+      fi
375 393
       if grep -q "BACKUP_CERTIFICATE" $CONFIGURATION_FILE; then
376 394
           BACKUP_CERTIFICATE=$(grep "BACKUP_CERTIFICATE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
377 395
       fi
@@ -7004,6 +7022,64 @@ function backup_github_projects {
7004 7022
   echo 'backup_github_projects' >> $COMPLETION_FILE
7005 7023
 }
7006 7024
 
7025
+function get_wifi_essid {
7026
+  if [ -f /home/$MY_USERNAME/README ]; then
7027
+      if grep -q "ESSID" /home/$MY_USERNAME/README; then
7028
+          if [ ! $WIFI_ESSID ]; then
7029
+              WIFI_ESSID=$(cat /home/$MY_USERNAME/README | grep "ESSID" | awk -F ':' '{print $2}' | sed 's/^ *//')
7030
+          fi
7031
+      fi
7032
+  fi
7033
+}
7034
+
7035
+function get_wifi_password {
7036
+  if [ -f /home/$MY_USERNAME/README ]; then
7037
+      if grep -q "Wifi password" /home/$MY_USERNAME/README; then
7038
+          if [ ! $WIFI_PASSWORD ]; then
7039
+              WIFI_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Wifi password" | awk -F ':' '{print $2}' | sed 's/^ *//')
7040
+          fi
7041
+      fi
7042
+  fi
7043
+}
7044
+
7045
+function enable_wifi {
7046
+  if grep -Fxq "enable_wifi" $COMPLETION_FILE; then
7047
+      return
7048
+  fi
7049
+  if [[ ENABLE_WIFI != "yes" ]]; then
7050
+      return
7051
+  fi
7052
+  sed -i 's/#auto wlan0/auto wlan0/g' /etc/network/interfaces
7053
+  sed -i 's/#iface wlan0 inet dhcp/iface wlan0 inet dhcp/g' /etc/network/interfaces
7054
+  sed -i 's/#    wpa-ssid "essid"/    wpa-ssid "essid"/g' /etc/network/interfaces
7055
+
7056
+  get_wifi_essid
7057
+  get_wifi_password
7058
+
7059
+  # Create an ESSID if one doesn't exist
7060
+  if [ ! $WIFI_ESSID ]; then
7061
+      WIFI_ESSID="Freedom"$(openssl rand -base64 4)
7062
+      sed -i "s/essid/$WIFI_ESSID/g" /etc/network/interfaces
7063
+  fi
7064
+  # Add a password
7065
+  if [ $WIFI_PASSWORD ]; then
7066
+      sed -i 's/#    wpa-psk  "password"/    wpa-psk  "wifipassword"/g' /etc/network/interfaces
7067
+      sed -i "s/wifipassword/$WIFI_PASSWORD/g" /etc/network/interfaces
7068
+  fi
7069
+
7070
+  if ! grep -q "Wifi settings" /home/$MY_USERNAME/README; then
7071
+      echo '' >> /home/$MY_USERNAME/README
7072
+      echo '' >> /home/$MY_USERNAME/README
7073
+      echo 'Wifi Settings' >> /home/$MY_USERNAME/README
7074
+      echo '=============' >> /home/$MY_USERNAME/README
7075
+      echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
7076
+      echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
7077
+      chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
7078
+  fi
7079
+
7080
+  echo 'enable_wifi' >> $COMPLETION_FILE
7081
+}
7082
+
7007 7083
 function install_final {
7008 7084
   if grep -Fxq "install_final" $COMPLETION_FILE; then
7009 7085
       return
@@ -7028,6 +7104,7 @@ function install_final {
7028 7104
 read_configuration
7029 7105
 argument_checks
7030 7106
 install_not_on_BBB
7107
+enable_wifi
7031 7108
 remove_default_user
7032 7109
 configure_firewall
7033 7110
 configure_firewall_for_ssh