|
@@ -39,95 +39,107 @@ WIFI_NETWORKS_FILE=~/${PROJECT_NAME}-wifi.cfg
|
39
|
39
|
# repo for atheros AR9271 wifi driver
|
40
|
40
|
ATHEROS_WIFI_REPO="https://github.com/qca/open-ath9k-htc-firmware.git"
|
41
|
41
|
|
|
42
|
+function count_wlan {
|
|
43
|
+ # counts the number of wlan devices
|
|
44
|
+ ctr=0
|
|
45
|
+
|
|
46
|
+ for i in $(seq 0 10); do
|
|
47
|
+ if grep -q "wlan${i}" /proc/net/dev; then
|
|
48
|
+ ctr=$((ctr + 1))
|
|
49
|
+ fi
|
|
50
|
+ done
|
|
51
|
+ echo $ctr
|
|
52
|
+}
|
|
53
|
+
|
42
|
54
|
function setup_wifi {
|
43
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
44
|
|
- return
|
45
|
|
- fi
|
46
|
|
- if [ ! $WIFI_SSID ]; then
|
47
|
|
- return
|
48
|
|
- fi
|
49
|
|
- if [ ${#WIFI_SSID} -lt 2 ]; then
|
50
|
|
- return
|
51
|
|
- fi
|
52
|
|
- if grep -Fxq "setup_wifi" $COMPLETION_FILE; then
|
53
|
|
- return
|
54
|
|
- fi
|
|
55
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
|
56
|
+ return
|
|
57
|
+ fi
|
|
58
|
+ if [ ! $WIFI_SSID ]; then
|
|
59
|
+ return
|
|
60
|
+ fi
|
|
61
|
+ if [ ${#WIFI_SSID} -lt 2 ]; then
|
|
62
|
+ return
|
|
63
|
+ fi
|
|
64
|
+ if grep -Fxq "setup_wifi" $COMPLETION_FILE; then
|
|
65
|
+ return
|
|
66
|
+ fi
|
55
|
67
|
|
56
|
|
- HOTSPOT='no'
|
57
|
|
- if [[ $WIFI_HOTSPOT != 'no' ]]; then
|
58
|
|
- HOTSPOT='yes'
|
59
|
|
- fi
|
|
68
|
+ HOTSPOT='no'
|
|
69
|
+ if [[ $WIFI_HOTSPOT != 'no' ]]; then
|
|
70
|
+ HOTSPOT='yes'
|
|
71
|
+ fi
|
60
|
72
|
|
61
|
|
- if [ -f $WIFI_NETWORKS_FILE ]; then
|
62
|
|
- ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE --networks $WIFI_NETWORKS_FILE
|
63
|
|
- echo 'setup_wifi' >> $COMPLETION_FILE
|
64
|
|
- return
|
65
|
|
- fi
|
|
73
|
+ if [ -f $WIFI_NETWORKS_FILE ]; then
|
|
74
|
+ ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE --networks $WIFI_NETWORKS_FILE
|
|
75
|
+ echo 'setup_wifi' >> $COMPLETION_FILE
|
|
76
|
+ return
|
|
77
|
+ fi
|
66
|
78
|
|
67
|
|
- if [[ $WIFI_TYPE != 'none' ]]; then
|
68
|
|
- if [ ! $WIFI_PASSPHRASE ]; then
|
69
|
|
- echo $'No wifi passphrase was given'
|
70
|
|
- return
|
71
|
|
- fi
|
72
|
|
- if [ ${#WIFI_PASSPHRASE} -lt 2 ]; then
|
73
|
|
- echo $'Wifi passphrase was too short'
|
74
|
|
- return
|
75
|
|
- fi
|
76
|
|
- ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE -p $WIFI_PASSPHRASE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE
|
77
|
|
- else
|
78
|
|
- ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE
|
79
|
|
- fi
|
80
|
|
- echo 'setup_wifi' >> $COMPLETION_FILE
|
|
79
|
+ if [[ $WIFI_TYPE != 'none' ]]; then
|
|
80
|
+ if [ ! $WIFI_PASSPHRASE ]; then
|
|
81
|
+ echo $'No wifi passphrase was given'
|
|
82
|
+ return
|
|
83
|
+ fi
|
|
84
|
+ if [ ${#WIFI_PASSPHRASE} -lt 2 ]; then
|
|
85
|
+ echo $'Wifi passphrase was too short'
|
|
86
|
+ return
|
|
87
|
+ fi
|
|
88
|
+ ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE -p $WIFI_PASSPHRASE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE
|
|
89
|
+ else
|
|
90
|
+ ${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE
|
|
91
|
+ fi
|
|
92
|
+ echo 'setup_wifi' >> $COMPLETION_FILE
|
81
|
93
|
}
|
82
|
94
|
|
83
|
95
|
# ath9k_htc driver
|
84
|
96
|
function install_atheros_wifi {
|
85
|
|
- if grep -Fxq "install_atheros_wifi" $COMPLETION_FILE; then
|
86
|
|
- return
|
87
|
|
- fi
|
88
|
|
- if [ $INSTALLING_ON_BBB != "yes" ]; then
|
89
|
|
- return
|
90
|
|
- fi
|
91
|
|
- if [[ $ENABLE_BABEL != "yes" && $ENABLE_BATMAN != "yes" && $ENABLE_CJDNS != "yes" ]]; then
|
92
|
|
- return
|
93
|
|
- fi
|
94
|
|
- if [ -d $INSTALL_DIR/open-ath9k-htc-firmware ]; then
|
95
|
|
- return
|
96
|
|
- fi
|
97
|
|
- # have drivers already been installed ?
|
98
|
|
- if [ -f /lib/firmware/htc_9271.fw ]; then
|
99
|
|
- return
|
100
|
|
- fi
|
101
|
|
- apt-get -y install build-essential cmake git m4 texinfo
|
102
|
|
- if [ ! -d $INSTALL_DIR ]; then
|
103
|
|
- mkdir -p $INSTALL_DIR
|
104
|
|
- fi
|
105
|
|
- cd $INSTALL_DIR
|
106
|
|
- if [ ! -d $INSTALL_DIR/open-ath9k-htc-firmware ]; then
|
107
|
|
- function_check git_clone
|
108
|
|
- git_clone $ATHEROS_WIFI_REPO $INSTALL_DIR/open-ath9k-htc-firmware
|
109
|
|
- if [ ! "$?" = "0" ]; then
|
110
|
|
- rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
|
111
|
|
- exit 74283
|
112
|
|
- fi
|
113
|
|
- fi
|
114
|
|
- cd $INSTALL_DIR/open-ath9k-htc-firmware
|
115
|
|
- git checkout 1.4.0
|
116
|
|
- make toolchain
|
117
|
|
- if [ ! "$?" = "0" ]; then
|
118
|
|
- rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
|
119
|
|
- exit 24820
|
120
|
|
- fi
|
121
|
|
- make firmware
|
122
|
|
- if [ ! "$?" = "0" ]; then
|
123
|
|
- rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
|
124
|
|
- exit 63412
|
125
|
|
- fi
|
126
|
|
- cp target_firmware/*.fw /lib/firmware/
|
127
|
|
- if [ ! "$?" = "0" ]; then
|
128
|
|
- exit 74681
|
129
|
|
- fi
|
130
|
|
- echo 'install_atheros_wifi' >> $COMPLETION_FILE
|
|
97
|
+ if grep -Fxq "install_atheros_wifi" $COMPLETION_FILE; then
|
|
98
|
+ return
|
|
99
|
+ fi
|
|
100
|
+ if [ $INSTALLING_ON_BBB != "yes" ]; then
|
|
101
|
+ return
|
|
102
|
+ fi
|
|
103
|
+ if [[ $ENABLE_BABEL != "yes" && $ENABLE_BATMAN != "yes" && $ENABLE_CJDNS != "yes" ]]; then
|
|
104
|
+ return
|
|
105
|
+ fi
|
|
106
|
+ if [ -d $INSTALL_DIR/open-ath9k-htc-firmware ]; then
|
|
107
|
+ return
|
|
108
|
+ fi
|
|
109
|
+ # have drivers already been installed ?
|
|
110
|
+ if [ -f /lib/firmware/htc_9271.fw ]; then
|
|
111
|
+ return
|
|
112
|
+ fi
|
|
113
|
+ apt-get -y install build-essential cmake git m4 texinfo
|
|
114
|
+ if [ ! -d $INSTALL_DIR ]; then
|
|
115
|
+ mkdir -p $INSTALL_DIR
|
|
116
|
+ fi
|
|
117
|
+ cd $INSTALL_DIR
|
|
118
|
+ if [ ! -d $INSTALL_DIR/open-ath9k-htc-firmware ]; then
|
|
119
|
+ function_check git_clone
|
|
120
|
+ git_clone $ATHEROS_WIFI_REPO $INSTALL_DIR/open-ath9k-htc-firmware
|
|
121
|
+ if [ ! "$?" = "0" ]; then
|
|
122
|
+ rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
|
|
123
|
+ exit 74283
|
|
124
|
+ fi
|
|
125
|
+ fi
|
|
126
|
+ cd $INSTALL_DIR/open-ath9k-htc-firmware
|
|
127
|
+ git checkout 1.4.0
|
|
128
|
+ make toolchain
|
|
129
|
+ if [ ! "$?" = "0" ]; then
|
|
130
|
+ rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
|
|
131
|
+ exit 24820
|
|
132
|
+ fi
|
|
133
|
+ make firmware
|
|
134
|
+ if [ ! "$?" = "0" ]; then
|
|
135
|
+ rm -rf $INSTALL_DIR/open-ath9k-htc-firmware
|
|
136
|
+ exit 63412
|
|
137
|
+ fi
|
|
138
|
+ cp target_firmware/*.fw /lib/firmware/
|
|
139
|
+ if [ ! "$?" = "0" ]; then
|
|
140
|
+ exit 74681
|
|
141
|
+ fi
|
|
142
|
+ echo 'install_atheros_wifi' >> $COMPLETION_FILE
|
131
|
143
|
}
|
132
|
144
|
|
133
|
145
|
# NOTE: deliberately no exit 0
|