#!/bin/bash # # .---. . . # | | | # |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-. # | | (.-' (.-' ( | ( )| | | | )( )| | (.-' # ' ' --' --' -' - -' ' ' -' -' -' ' - --' # # Freedom in the Cloud # # Wifi functions # License # ======= # # Copyright (C) 2015-2016 Bob Mottram # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . WIFI_CHANNEL=2 WIFI_INTERFACE=wlan0 WIFI_TYPE='wpa2-psk' WIFI_SSID= WIFI_PASSPHRASE= WIFI_HOTSPOT='no' WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg # repo for atheros AR9271 wifi driver ATHEROS_WIFI_REPO="https://github.com/qca/open-ath9k-htc-firmware.git" function setup_wifi { if [[ $SYSTEM_TYPE == "mesh"* ]]; then return fi if [ ! $WIFI_SSID ]; then return fi if [ ${#WIFI_SSID} -lt 2 ]; then return fi if [[ $(is_completed $FUNCNAME) == "1" ]]; then return fi HOTSPOT='no' if [[ $WIFI_HOTSPOT != 'no' ]]; then HOTSPOT='yes' fi if [ -f $WIFI_NETWORKS_FILE ]; then ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE --networks $WIFI_NETWORKS_FILE mark_completed $FUNCNAME return fi if [[ $WIFI_TYPE != 'none' ]]; then if [ ! $WIFI_PASSPHRASE ]; then echo $'No wifi passphrase was given' return fi if [ ${#WIFI_PASSPHRASE} -lt 2 ]; then echo $'Wifi passphrase was too short' return fi ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE -p $WIFI_PASSPHRASE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE else ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE fi mark_completed $FUNCNAME } # ath9k_htc driver function install_atheros_wifi { if [[ $(is_completed $FUNCNAME) == "1" ]]; then return fi if [ $INSTALLING_ON_BBB != "yes" ]; then return fi if [[ $ENABLE_BATMAN != "yes" ]]; then return fi if [ -d $INSTALL_DIR/open-ath9k-htc-firmware ]; then return fi # have drivers already been installed ? if [ -f /lib/firmware/htc_9271.fw ]; then return fi apt-get -y install build-essential cmake git m4 texinfo if [ ! -d $INSTALL_DIR ]; then mkdir -p $INSTALL_DIR fi cd $INSTALL_DIR if [ ! -d $INSTALL_DIR/open-ath9k-htc-firmware ]; then function_check git_clone git_clone $ATHEROS_WIFI_REPO $INSTALL_DIR/open-ath9k-htc-firmware if [ ! "$?" = "0" ]; then rm -rf $INSTALL_DIR/open-ath9k-htc-firmware exit 74283 fi fi cd $INSTALL_DIR/open-ath9k-htc-firmware git checkout 1.4.0 make toolchain if [ ! "$?" = "0" ]; then rm -rf $INSTALL_DIR/open-ath9k-htc-firmware exit 24820 fi make firmware if [ ! "$?" = "0" ]; then rm -rf $INSTALL_DIR/open-ath9k-htc-firmware exit 63412 fi cp target_firmware/*.fw /lib/firmware/ if [ ! "$?" = "0" ]; then exit 74681 fi mark_completed $FUNCNAME } # NOTE: deliberately no exit 0