blob: 9b5efa2c74493cb5ab9d3b5bee7772fc702bb46b [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001#!/bin/sh
2#
3# script file to start WLAN
4#
5
6
7## error code
8ERROR_SUCCESS=0
9ERROR_INVALID_PARAMETERS=1
10ERROR_NO_SUCH_DEVICE=2
11ERROR_NO_CONFIG_FILE=3
12ERROR_NO_SUCH_FILE=4
13ERROR_NO_SUCH_DIRECTORY=5
14ERROR_NULL_FILE=6
15ERROR_NET_IF_UP_FAIL=7
16
17ROOT=`nv get wifi_root_dir`
18LOG=$ROOT/wifi/realtek/slog
19
20IWPRIV=iwpriv
21wifi_lte_intr=`nv get wifi_lte_intr`
22
23if [ $# -lt 1 ]; then
24 echo "Usage: $0 wlan_interface" >> $LOG
25 exit $ERROR_INVALID_PARAMETERS;
26fi
27
28date +[%H:%M:%S]paraset_$1_start >> $LOG
29
30CONFIG_ROOT_DIR="$ROOT/wifi/realtek/rtl8192c"
31CONFIG_DIR=$CONFIG_ROOT_DIR/$1
32
33if [ ! -d "$CONFIG_DIR" ]; then
34 echo "$CONFIG_DIR: No such directory" >> $LOG
35 exit $ERROR_NO_CONFIG_FILE
36fi
37
38if [ -z "$WLAN_PREFIX" ]; then
39 WLAN_PREFIX=wlan
40fi
41
42if [ -z "$ROOT_WLAN" ]; then
43# ROOT_WLAN=${1:0:$WLAN_NAME_LEN}
44### delete -va0 get wlan0
45 ROOT_WLAN=${1%%-*}
46fi
47ROOT_CONFIG_DIR=$CONFIG_ROOT_DIR/$ROOT_WLAN
48
49IS_ROOT_WLAN=0
50if [ "$1" = "$ROOT_WLAN" ]; then
51 IS_ROOT_WLAN=1
52fi
53echo "IS_ROOT_WLAN is " $IS_ROOT_WLAN
54SET_WLAN="iwpriv $1"
55SET_WLAN_PARAM="$SET_WLAN set_mib"
56IFCONFIG=ifconfig
57SET_VA0="iwpriv wlan0-va0"
58SET_VA1="iwpriv wlan0-va1"
59
60if [ $IS_ROOT_WLAN = 1 ]; then
61 $IFCONFIG $1-va0 down
62 if [ $? != 0 ]; then
63 exit $ERROR_NO_SUCH_DEVICE
64 fi
65
66 $IFCONFIG $1-va1 down
67 if [ $? != 0 ]; then
68 exit $ERROR_NO_SUCH_DEVICE
69 fi
70
71 $IFCONFIG $1-vxd down
72 if [ $? != 0 ]; then
73 exit $ERROR_NO_SUCH_DEVICE
74 fi
75fi
76$IFCONFIG $1 down
77if [ $? != 0 ]; then
78 exit $ERROR_NO_SUCH_DEVICE
79fi
80
81
82
83# set RF parameters
84if [ $IS_ROOT_WLAN = 1 ]; then
85echo "set RF parameters" >> $LOG
86# set channel
87 GET_VALUE=`cat $CONFIG_DIR/channel`
88 $SET_WLAN set_mib channel=$GET_VALUE
89
90##autochannel can use wifi_lte_intr
91 if [ "$wifi_lte_intr" = "1" -a "$GET_VALUE" = "0" ];then
92 echo "wifi_lte_intr=$wifi_lte_intr $SET_WLAN set_mib ch_low=5" >> $LOG
93# $SET_WLAN set_mib ch_low=5
94 $SET_WLAN set_mib disable_acs_ch=15
95 else
96 GET_VALUE=`cat $CONFIG_DIR/ch_low`
97 $SET_WLAN set_mib ch_low=$GET_VALUE
98 fi
99
100# set wifi coverage
101 GET_TX_POWER_PERCENT=`cat $CONFIG_DIR/tx_power_percet`
102 #echo "GET_TX_POWER_PERCENT is "$GET_TX_POWER_PERCENT
103 $SET_WLAN set_mib powerpercent=$GET_TX_POWER_PERCENT
104
105# for country code
106 COUNTRY_CODE_ENABLE=`$SET_WLAN get_mib countrycode 2> /dev/null`
107 if [ ! -z "$COUNTRY_CODE_ENABLE" ]; then
108 GET_VALUE=`cat $ROOT_CONFIG_DIR/countrycode_enable`
109 $SET_WLAN set_mib countrycode=$GET_VALUE
110
111 GET_VALUE=`cat $ROOT_CONFIG_DIR/countrycode`
112 $SET_WLAN set_mib countrystr=$GET_VALUE
113 fi
114
115
116#set band bgn
117 GET_BAND=`cat $ROOT_CONFIG_DIR/band`
118 GET_WIFI_SPECIFIC=`cat $ROOT_CONFIG_DIR/wifi_specific`
119 if [ "$GET_VALUE_WLAN_MODE" != '1' ] && [ "$GET_WIFI_SPECIFIC" = 1 ] && [ "$GET_BAND" = '2' ] ; then
120 GET_BAND=3
121 fi
122 if [ "$GET_BAND" = '8' ]; then
123 GET_BAND=11
124 $SET_WLAN set_mib deny_legacy=3
125 $SET_VA0 set_mib deny_legacy=3
126 $SET_VA1 set_mib deny_legacy=3
127 elif [ "$GET_BAND" = '2' ]; then
128 GET_BAND=3
129 $SET_WLAN set_mib deny_legacy=1
130 $SET_VA0 set_mib deny_legacy=1
131 $SET_VA1 set_mib deny_legacy=1
132 elif [ "$GET_BAND" = '10' ]; then
133 GET_BAND=11
134 $SET_WLAN set_mib deny_legacy=1
135 $SET_VA0 set_mib deny_legacy=1
136 $SET_VA1 set_mib deny_legacy=1
137 elif [ "$GET_BAND" = '64' ]; then
138 GET_BAND=76
139 $SET_WLAN set_mib deny_legacy=12
140 $SET_VA0 set_mib deny_legacy=12
141 $SET_VA1 set_mib deny_legacy=12
142 elif [ "$GET_BAND" = '72' ]; then
143 GET_BAND=76
144 $SET_WLAN set_mib deny_legacy=4
145 $SET_VA0 set_mib deny_legacy=4
146 $SET_VA1 set_mib deny_legacy=4
147 else
148 $SET_WLAN set_mib deny_legacy=0
149 $SET_VA0 set_mib deny_legacy=0
150 $SET_VA1 set_mib deny_legacy=0
151 fi
152 $SET_WLAN set_mib band=$GET_BAND
153 $SET_VA0 set_mib band=$GET_BAND
154 $SET_VA1 set_mib band=$GET_BAND
155
156
157###Set 11n parameter
158 if [ $GET_BAND = 10 ] || [ $GET_BAND = 11 ] || [ $GET_BAND = 76 ]; then
159 if [ $IS_ROOT_WLAN = 1 ]; then
160 GET_CHANNEL_BONDING=`cat $CONFIG_DIR/channel_bonding`
161 $SET_WLAN set_mib use40M=$GET_CHANNEL_BONDING
162
163 GET_CONTROL_SIDEBAND=`cat $CONFIG_DIR/control_sideband`
164
165 if [ "$GET_CHANNEL_BONDING" = 0 ]; then
166 $SET_WLAN set_mib 2ndchoffset=0
167 else
168 if [ "$GET_CONTROL_SIDEBAND" = 0 ]; then
169 $SET_WLAN set_mib 2ndchoffset=1
170 fi
171 if [ "$GET_CONTROL_SIDEBAND" = 1 ]; then
172 $SET_WLAN set_mib 2ndchoffset=2
173 fi
174 fi
175 fi # [ $IS_ROOT_WLAN = 1 ]
176
177 GET_COEXIST_ENABLED=`cat $CONFIG_DIR/coexist_enabled`
178 $SET_WLAN set_mib coexist=$GET_COEXIST_ENABLED
179 fi # [ $GET_BAND = 10 ] || [ $GET_BAND = 11 ]
180##########
181
182else
183## for va0 va1 set ssid
184echo "set basic ap parameters" >> $LOG
185 GET_VALUE=`cat $CONFIG_DIR/ssid`
186 $SET_WLAN set_mib ssid="$GET_VALUE"
187
188 GET_VALUE=`cat $CONFIG_DIR/hidden_ssid`
189 $SET_WLAN set_mib hiddenAP=$GET_VALUE
190
191 GET_VALUE=`cat $CONFIG_DIR/supported_sta_num`
192 $SET_WLAN set_mib stanum=$GET_VALUE
193
194 # for ap isolation
195 # need to confirm which is for ap isolation
196 #GET_VALUE=`cat $CONFIG_DIR/group_id`
197 #$SET_WLAN set_mib groupID=$GET_VALUE
198
199 # set block relay
200 GET_VALUE=`cat $CONFIG_DIR/block_relay`
201 $SET_WLAN set_mib block_relay=$GET_VALUE
202
203
204 GET_WLAN_AUTH_TYPE=`cat $CONFIG_DIR/auth_type`
205 AUTH_TYPE=$GET_WLAN_AUTH_TYPE
206 GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
207 if [ "$GET_WLAN_AUTH_TYPE" = '1' ] && [ "$GET_WLAN_ENCRYPT" != '1' ]; then
208 # shared-key and not WEP enabled, force to open-system
209 AUTH_TYPE=0
210 fi
211 $SET_WLAN set_mib authtype=$AUTH_TYPE
212 if [ "$GET_WLAN_ENCRYPT" = '0' ]; then
213 $SET_WLAN set_mib encmode=0
214 elif [ "$GET_WLAN_ENCRYPT" = '1' ]; then
215 ### WEP mode ##
216 GET_WEP=`cat $CONFIG_DIR/wep`
217 GET_WEP_KEY_TYPE=`cat $CONFIG_DIR/wep_key_type`
218 GET_WEP_KEY_ID=`cat $CONFIG_DIR/wep_default_key`
219
220 if [ "$GET_WEP" = '1' ]; then
221 if [ "$GET_WEP_KEY_TYPE" = '0' ]; then
222 GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_64_asc`
223 GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_64_asc`
224 GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_64_asc`
225 GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_64_asc`
226 else
227 GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_64_hex`
228 GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_64_hex`
229 GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_64_hex`
230 GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_64_hex`
231 fi
232
233 $SET_WLAN set_mib encmode=1
234 $SET_WLAN set_mib wepkey1=$GET_WEP_KEY_1
235 $SET_WLAN set_mib wepkey2=$GET_WEP_KEY_2
236 $SET_WLAN set_mib wepkey3=$GET_WEP_KEY_3
237 $SET_WLAN set_mib wepkey4=$GET_WEP_KEY_4
238 $SET_WLAN set_mib wepdkeyid=$GET_WEP_KEY_ID
239 else
240 if [ "$GET_WEP_KEY_TYPE" = '0' ]; then
241 GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_128_asc`
242 GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_128_asc`
243 GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_128_asc`
244 GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_128_asc`
245 else
246 GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_128_hex`
247 GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_128_hex`
248 GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_128_hex`
249 GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_128_hex`
250 fi
251 $SET_WLAN set_mib encmode=5
252 $SET_WLAN set_mib wepkey1=$GET_WEP_KEY_1
253 $SET_WLAN set_mib wepkey2=$GET_WEP_KEY_2
254 $SET_WLAN set_mib wepkey3=$GET_WEP_KEY_3
255 $SET_WLAN set_mib wepkey4=$GET_WEP_KEY_4
256 $SET_WLAN set_mib wepdkeyid=$GET_WEP_KEY_ID
257 fi
258 else
259 ## WPA mode ##
260 $SET_WLAN set_mib encmode=2
261 fi
262
263
264 ## Set 802.1x flag ##
265 _ENABLE_1X=0
266 if [ $GET_WLAN_ENCRYPT -lt 2 ]; then
267 GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
268 GET_MAC_AUTH_ENABLED=`cat $CONFIG_DIR/mac_auth_enabled`
269 if [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
270 _ENABLE_1X=1
271 fi
272 else
273 _ENABLE_1X=1
274 fi
275 $SET_WLAN set_mib 802_1x=$_ENABLE_1X
276
277
278 echo "wpa relative settings" >> $LOG
279#
280# following settings is used when driver WPA module is included
281#
282
283 GET_WPA_AUTH=`cat $CONFIG_DIR/wpa_auth`
284 #if [ $GET_VALUE_WLAN_MODE != 1 ] && [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_ENCRYPT -lt 7 ] && [ $GET_WPA_AUTH = 2 ]; then
285 if [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_ENCRYPT -lt 11 ]; then
286 if [ $GET_WPA_AUTH = 2 ]; then
287 if [ $GET_WLAN_ENCRYPT = 2 ]; then
288 ENABLE=1
289 elif [ $GET_WLAN_ENCRYPT = 4 ]; then
290 ENABLE=2
291 elif [ $GET_WLAN_ENCRYPT = 6 ]; then
292 ENABLE=3
293 elif [ $GET_WLAN_ENCRYPT = 8 ]; then
294 ENABLE=8
295 elif [ $GET_WLAN_ENCRYPT = 10 ]; then
296 ENABLE=10
297 else
298 echo "invalid ENCRYPT value!($GET_WLAN_ENCRYPT)" >> $LOG
299 exit $ERROR_INVALID_PARAMETERS;
300 fi
301 $SET_WLAN set_mib psk_enable=$ENABLE
302 else
303 $SET_WLAN set_mib psk_enable=0
304 fi
305
306 if [ $GET_WLAN_ENCRYPT = 2 ] || [ $GET_WLAN_ENCRYPT = 6 ]; then
307 GET_WPA_CIPHER_SUITE=`cat $CONFIG_DIR/wpa_cipher`
308 if [ $GET_WPA_CIPHER_SUITE = 1 ]; then
309 CIPHER=2
310 elif [ $GET_WPA_CIPHER_SUITE = 2 ]; then
311 CIPHER=8
312 elif [ $GET_WPA_CIPHER_SUITE = 3 ]; then
313 CIPHER=10
314 else
315 echo "invalid WPA_CIPHER_SUITE value!($GET_WPA_CIPHER_SUITE)" >> $LOG
316 exit $ERROR_INVALID_PARAMETERS;
317 fi
318 fi
319 $SET_WLAN set_mib wpa_cipher=$CIPHER
320
321 if [ $GET_WLAN_ENCRYPT = 4 ] || [ $GET_WLAN_ENCRYPT = 6 ] || [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
322 GET_WPA2_CIPHER_SUITE=`cat $CONFIG_DIR/wpa2_cipher`
323 if [ $GET_WPA2_CIPHER_SUITE = 1 ]; then
324 CIPHER=2
325 elif [ $GET_WPA2_CIPHER_SUITE = 2 ]; then
326 CIPHER=8
327 elif [ $GET_WPA2_CIPHER_SUITE = 3 ]; then
328 CIPHER=10
329 else
330 echo "invalid WPA2_CIPHER_SUITE value!($GET_WPA2_CIPHER_SUITE)" >> $LOG
331 exit $ERROR_INVALID_PARAMETERS;
332 fi
333 fi
334 $SET_WLAN set_mib wpa2_cipher=$CIPHER
335
336 GET_WPA_PSK=`cat $CONFIG_DIR/wpa_psk`
337 $SET_WLAN set_mib passphrase="$GET_WPA_PSK"
338
339 fi
340
341 if [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
342 GET_WPA2_11W=`cat $CONFIG_DIR/wpa11w`
343 GET_WPA2_SHA256=`cat $CONFIG_DIR/wpa2EnableSHA256`
344 $SET_WLAN set_mib dot11IEEE80211W=$GET_WPA2_11W
345 $SET_WLAN set_mib enableSHA256=$GET_WPA2_SHA256
346 else
347 echo "Only WPA3 need PMF" >> $LOG
348 $SET_WLAN set_mib dot11IEEE80211W=0
349 $SET_WLAN set_mib enableSHA256=0
350 fi
351
352fi # [ $IS_ROOT_WLAN = 1 ]
353
354
355
356$IFCONFIG $1 up
357if [ $? != 0 ]; then
358 exit $ERROR_NO_SUCH_DEVICE
359fi
360
361if [ $IS_ROOT_WLAN = 1 ]; then
362 $IFCONFIG $1-va0 up
363 if [ $? != 0 ]; then
364 exit $ERROR_NO_SUCH_DEVICE
365 fi
366
367 MSSID=`nv get m_ssid_enable`
368
369 if [ $MSSID = 1 ]; then
370 $IFCONFIG $1-va1 up
371 if [ $? != 0 ]; then
372 exit $ERROR_NO_SUCH_DEVICE
373 fi
374 fi
375fi
376
377date +[%H:%M:%S]paraset_$1_end >> $LOG
378exit $ERROR_SUCCESS