Browse Source

More wifi fixing

Bob Mottram 10 years ago
parent
commit
a4f11fb0cc
1 changed files with 53 additions and 30 deletions
  1. 53
    30
      install-freedombone.sh

+ 53
- 30
install-freedombone.sh View File

315
 # Optional wifi password
315
 # Optional wifi password
316
 WIFI_PASSWORD=
316
 WIFI_PASSWORD=
317
 
317
 
318
-# wifi interface
318
+# Wifi interface
319
 WIFI_INTERFACE="wlan0"
319
 WIFI_INTERFACE="wlan0"
320
-WIFI_HOTSPOT_MODE="g"
320
+
321
+# Whether to always force there to exist a wifi password
322
+WIFI_FORCE_PASSWORD="no"
323
+
324
+# Channel number for wifi hotspot
321
 WIFI_HOTSPOT_CHANNEL=7
325
 WIFI_HOTSPOT_CHANNEL=7
322
 
326
 
323
 # message if something fails to install
327
 # message if something fails to install
405
       if grep -q "WIFI_INTERFACE" $CONFIGURATION_FILE; then
409
       if grep -q "WIFI_INTERFACE" $CONFIGURATION_FILE; then
406
           WIFI_INTERFACE=$(grep "WIFI_INTERFACE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
410
           WIFI_INTERFACE=$(grep "WIFI_INTERFACE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
407
       fi
411
       fi
408
-      if grep -q "WIFI_HOTSPOT_MODE" $CONFIGURATION_FILE; then
409
-          WIFI_HOTSPOT_MODE=$(grep "WIFI_HOTSPOT_MODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
410
-      fi
411
       if grep -q "WIFI_HOTSPOT_CHANNEL" $CONFIGURATION_FILE; then
412
       if grep -q "WIFI_HOTSPOT_CHANNEL" $CONFIGURATION_FILE; then
412
           WIFI_HOTSPOT_CHANNEL=$(grep "WIFI_HOTSPOT_CHANNEL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
413
           WIFI_HOTSPOT_CHANNEL=$(grep "WIFI_HOTSPOT_CHANNEL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
413
       fi
414
       fi
7131
       exit 853
7132
       exit 853
7132
   fi
7133
   fi
7133
 
7134
 
7135
+  get_wifi_essid
7136
+  get_wifi_password
7137
+
7138
+  # Create an ESSID if one doesn't exist
7139
+  if [ ! $WIFI_ESSID ]; then
7140
+      TEMP_WIFI_ESSID=$(openssl rand -base64 8)
7141
+      WIFI_ESSID="Freedom"${TEMP_WIFI_ESSID:0:3}
7142
+  fi
7143
+
7144
+  # Add a password
7145
+  if [[ $WIFI_FORCE_PASSWORD == "yes" ]]; then
7146
+      if [ ! $WIFI_PASSWORD ]; then
7147
+          TEMP_WIFI_PASSWORD=$(openssl rand -base64 8)
7148
+          WIFI_PASSWORD=${TEMP_WIFI_PASSWORD:0:8}
7149
+      fi
7150
+  fi
7151
+
7134
   if ! grep -q "Wifi hotspot" $COMPLETION_FILE; then
7152
   if ! grep -q "Wifi hotspot" $COMPLETION_FILE; then
7135
       echo '' >> /etc/network/interfaces
7153
       echo '' >> /etc/network/interfaces
7136
       echo '# Wifi hotspot' >> /etc/network/interfaces
7154
       echo '# Wifi hotspot' >> /etc/network/interfaces
7137
       echo "auto $WIFI_INTERFACE" >> /etc/network/interfaces
7155
       echo "auto $WIFI_INTERFACE" >> /etc/network/interfaces
7138
       echo "iface $WIFI_INTERFACE inet static" >> /etc/network/interfaces
7156
       echo "iface $WIFI_INTERFACE inet static" >> /etc/network/interfaces
7139
-      echo '        address 192.168.4.1' >> /etc/network/interfaces
7140
-      echo '        network 192.168.4.0' >> /etc/network/interfaces
7141
-      echo '        netmask 255.255.255.0' >> /etc/network/interfaces
7142
-      echo '        broadcast 192.168.4.255' >> /etc/network/interfaces
7157
+      echo '    address 192.168.4.1' >> /etc/network/interfaces
7158
+      echo '    network 192.168.4.0' >> /etc/network/interfaces
7159
+      echo '    netmask 255.255.255.0' >> /etc/network/interfaces
7160
+      echo '    broadcast 192.168.4.255' >> /etc/network/interfaces
7161
+      if [ $WIFI_PASSWORD ]; then
7162
+          echo -n '    wpa-psk  "' >> /etc/network/interfaces
7163
+          echo -n "$WIFI_PASSWORD" >> /etc/network/interfaces
7164
+          echo '"' >> /etc/network/interfaces
7165
+      fi
7143
       service networking restart
7166
       service networking restart
7144
   fi
7167
   fi
7145
 
7168
 
7150
       exit 490
7173
       exit 490
7151
   fi
7174
   fi
7152
 
7175
 
7153
-  get_wifi_essid
7154
-  get_wifi_password
7155
-
7156
-  # Create an ESSID if one doesn't exist
7157
-  if [ ! $WIFI_ESSID ]; then
7158
-      TEMP_WIFI_ESSID=$(openssl rand -base64 8)
7159
-      WIFI_ESSID="Freedom"${TEMP_WIFI_ESSID:0:3}
7160
-  fi
7161
-  # Add a password
7162
-  if [ ! $WIFI_PASSWORD ]; then
7163
-      TEMP_WIFI_PASSWORD=$(openssl rand -base64 8)
7164
-      WIFI_PASSWORD=${TEMP_WIFI_PASSWORD:0:8}
7165
-  fi
7166
-
7167
   sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
7176
   sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
7168
 
7177
 
7169
   echo '### Wireless network name ###' > /etc/hostapd/hostapd.conf
7178
   echo '### Wireless network name ###' > /etc/hostapd/hostapd.conf
7190
   echo "wpa_passphrase=$WIFI_PASSWORD" >> /etc/hostapd/hostapd.conf
7199
   echo "wpa_passphrase=$WIFI_PASSWORD" >> /etc/hostapd/hostapd.conf
7191
   echo '' >> /etc/hostapd/hostapd.conf
7200
   echo '' >> /etc/hostapd/hostapd.conf
7192
   echo '## Key management algorithms ##' >> /etc/hostapd/hostapd.conf
7201
   echo '## Key management algorithms ##' >> /etc/hostapd/hostapd.conf
7193
-  echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
7202
+  if [ ! $WIFI_PASSWORD ]; then
7203
+      echo 'wpa_key_mgmt=WPA-NONE' >> /etc/hostapd/hostapd.conf
7204
+  else
7205
+      echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
7206
+  fi
7194
   echo '#' >> /etc/hostapd/hostapd.conf
7207
   echo '#' >> /etc/hostapd/hostapd.conf
7195
   echo '## Set cipher suites (encryption algorithms) ##' >> /etc/hostapd/hostapd.conf
7208
   echo '## Set cipher suites (encryption algorithms) ##' >> /etc/hostapd/hostapd.conf
7196
   echo '## TKIP = Temporal Key Integrity Protocol' >> /etc/hostapd/hostapd.conf
7209
   echo '## TKIP = Temporal Key Integrity Protocol' >> /etc/hostapd/hostapd.conf
7235
       echo 'Wifi Hotspot' >> /home/$MY_USERNAME/README
7248
       echo 'Wifi Hotspot' >> /home/$MY_USERNAME/README
7236
       echo '============' >> /home/$MY_USERNAME/README
7249
       echo '============' >> /home/$MY_USERNAME/README
7237
       echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
7250
       echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
7238
-      echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
7251
+      if [ $WIFI_PASSWORD ]; then
7252
+          echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
7253
+      else
7254
+          echo 'No password' >> /home/$MY_USERNAME/README
7255
+      fi
7239
       chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
7256
       chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
7240
   fi
7257
   fi
7241
 
7258
 
7268
   fi
7285
   fi
7269
   sed -i "s/essid/$WIFI_ESSID/g" /etc/network/interfaces
7286
   sed -i "s/essid/$WIFI_ESSID/g" /etc/network/interfaces
7270
   # Add a password
7287
   # Add a password
7271
-  if [ ! $WIFI_PASSWORD ]; then
7272
-      TEMP_WIFI_PASSWORD=$(openssl rand -base64 8)
7273
-      WIFI_PASSWORD=${TEMP_WIFI_PASSWORD:0:8}
7288
+  if [[ $WIFI_FORCE_PASSWORD == "yes" ]]; then
7289
+      if [ ! $WIFI_PASSWORD ]; then
7290
+          TEMP_WIFI_PASSWORD=$(openssl rand -base64 8)
7291
+          WIFI_PASSWORD=${TEMP_WIFI_PASSWORD:0:8}
7292
+      fi
7274
   fi
7293
   fi
7275
 
7294
 
7276
   # Add a password
7295
   # Add a password
7286
   fi
7305
   fi
7287
 
7306
 
7288
   # Add details to the README file
7307
   # Add details to the README file
7289
-  if [[ ENABLE_WIFI_HOTSPOT != "yes" ]]; then
7308
+  if [[ ENABLE_WIFI != "yes" ]]; then
7290
       if ! grep -q "Wifi Settings" /home/$MY_USERNAME/README; then
7309
       if ! grep -q "Wifi Settings" /home/$MY_USERNAME/README; then
7291
           echo '' >> /home/$MY_USERNAME/README
7310
           echo '' >> /home/$MY_USERNAME/README
7292
           echo '' >> /home/$MY_USERNAME/README
7311
           echo '' >> /home/$MY_USERNAME/README
7293
           echo 'Wifi Settings' >> /home/$MY_USERNAME/README
7312
           echo 'Wifi Settings' >> /home/$MY_USERNAME/README
7294
           echo '=============' >> /home/$MY_USERNAME/README
7313
           echo '=============' >> /home/$MY_USERNAME/README
7295
           echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
7314
           echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
7296
-          echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
7315
+          if [ $WIFI_PASSWORD ]; then
7316
+              echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
7317
+          else
7318
+              echo 'No password' >> /home/$MY_USERNAME/README
7319
+          fi
7297
           chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
7320
           chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
7298
       fi
7321
       fi
7299
   fi
7322
   fi