blob: acdc164fa38dfff80461e070bebb39df51bd9710 [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
57
58
59$IFCONFIG $1 down
60if [ $? != 0 ]; then
61 exit $ERROR_NO_SUCH_DEVICE
62fi
63
64
65echo "set RF parameters" >> $LOG
66# set RF parameters
67
68
69# set channel
70 GET_VALUE=`cat $CONFIG_DIR/channel`
71 $SET_WLAN set_mib channel=$GET_VALUE
72
73##autochannel can use wifi_lte_intr
74 if [ "$wifi_lte_intr" = "1" -a "$GET_VALUE" = "0" ];then
75 echo "wifi_lte_intr=$wifi_lte_intr $SET_WLAN set_mib ch_low=5" >> $LOG
76# $SET_WLAN set_mib ch_low=5
77 $SET_WLAN set_mib disable_acs_ch=15
78 else
79 GET_VALUE=`cat $CONFIG_DIR/ch_low`
80 $SET_WLAN set_mib ch_low=$GET_VALUE
81 fi
82
83# set wifi coverage
84 GET_TX_POWER_PERCENT=`cat $CONFIG_DIR/tx_power_percet`
85 #echo "GET_TX_POWER_PERCENT is "$GET_TX_POWER_PERCENT
86 $SET_WLAN set_mib powerpercent=$GET_TX_POWER_PERCENT
87
88# for country code
89 COUNTRY_CODE_ENABLE=`$SET_WLAN get_mib countrycode 2> /dev/null`
90 if [ ! -z "$COUNTRY_CODE_ENABLE" ]; then
91 GET_VALUE=`cat $ROOT_CONFIG_DIR/countrycode_enable`
92 $SET_WLAN set_mib countrycode=$GET_VALUE
93
94 GET_VALUE=`cat $ROOT_CONFIG_DIR/countrycode`
95 $SET_WLAN set_mib countrystr=$GET_VALUE
96 fi
97
98
99#set band bgn
100 GET_BAND=`cat $ROOT_CONFIG_DIR/band`
101 GET_WIFI_SPECIFIC=`cat $ROOT_CONFIG_DIR/wifi_specific`
102 if [ "$GET_VALUE_WLAN_MODE" != '1' ] && [ "$GET_WIFI_SPECIFIC" = 1 ] && [ "$GET_BAND" = '2' ] ; then
103 GET_BAND=3
104 fi
105 if [ "$GET_BAND" = '8' ]; then
106 GET_BAND=11
107 $SET_WLAN set_mib deny_legacy=3
108 elif [ "$GET_BAND" = '2' ]; then
109 GET_BAND=3
110 $SET_WLAN set_mib deny_legacy=1
111 elif [ "$GET_BAND" = '10' ]; then
112 GET_BAND=11
113 $SET_WLAN set_mib deny_legacy=1
114 elif [ "$GET_BAND" = '64' ]; then
115 GET_BAND=76
116 $SET_WLAN set_mib deny_legacy=12
117 elif [ "$GET_BAND" = '72' ]; then
118 GET_BAND=76
119 $SET_WLAN set_mib deny_legacy=4
120 else
121 $SET_WLAN set_mib deny_legacy=0
122 fi
123
124 $SET_WLAN set_mib band=$GET_BAND
125
126
127###Set 11n parameter
128 if [ $GET_BAND = 10 ] || [ $GET_BAND = 11 ] || [ $GET_BAND = 76 ]; then
129 if [ $IS_ROOT_WLAN = 1 ]; then
130 GET_CHANNEL_BONDING=`cat $CONFIG_DIR/channel_bonding`
131 $SET_WLAN set_mib use40M=$GET_CHANNEL_BONDING
132
133 GET_CONTROL_SIDEBAND=`cat $CONFIG_DIR/control_sideband`
134
135 if [ "$GET_CHANNEL_BONDING" = 0 ]; then
136 $SET_WLAN set_mib 2ndchoffset=0
137 else
138 if [ "$GET_CONTROL_SIDEBAND" = 0 ]; then
139 $SET_WLAN set_mib 2ndchoffset=1
140 fi
141 if [ "$GET_CONTROL_SIDEBAND" = 1 ]; then
142 $SET_WLAN set_mib 2ndchoffset=2
143 fi
144 fi
145 fi # [ $IS_ROOT_WLAN = 1 ]
146
147 GET_COEXIST_ENABLED=`cat $CONFIG_DIR/coexist_enabled`
148 $SET_WLAN set_mib coexist=$GET_COEXIST_ENABLED
149 fi # [ $GET_BAND = 10 ] || [ $GET_BAND = 11 ]
150##########
151
152
153## for wlan0 set ssid
154echo "set basic ap parameters" >> $LOG
155 GET_VALUE=`cat $CONFIG_DIR/ssid`
156 $SET_WLAN set_mib ssid="$GET_VALUE"
157
158 GET_VALUE=`cat $CONFIG_DIR/hidden_ssid`
159 $SET_WLAN set_mib hiddenAP=$GET_VALUE
160
161 GET_VALUE=`cat $CONFIG_DIR/supported_sta_num`
162 $SET_WLAN set_mib stanum=$GET_VALUE
163
164 # for ap isolation
165 # need to confirm which is for ap isolation
166 #GET_VALUE=`cat $CONFIG_DIR/group_id`
167 #$SET_WLAN set_mib groupID=$GET_VALUE
168
169 # set block relay
170 GET_VALUE=`cat $CONFIG_DIR/block_relay`
171 $SET_WLAN set_mib block_relay=$GET_VALUE
172
173
174 GET_WLAN_AUTH_TYPE=`cat $CONFIG_DIR/auth_type`
175 AUTH_TYPE=$GET_WLAN_AUTH_TYPE
176 GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
177 if [ "$GET_WLAN_AUTH_TYPE" = '1' ] && [ "$GET_WLAN_ENCRYPT" != '1' ]; then
178 # shared-key and not WEP enabled, force to open-system
179 AUTH_TYPE=0
180 fi
181 $SET_WLAN set_mib authtype=$AUTH_TYPE
182 if [ "$GET_WLAN_ENCRYPT" = '0' ]; then
183 $SET_WLAN set_mib encmode=0
184 elif [ "$GET_WLAN_ENCRYPT" = '1' ]; then
185 ### WEP mode ##
186 GET_WEP=`cat $CONFIG_DIR/wep`
187 GET_WEP_KEY_TYPE=`cat $CONFIG_DIR/wep_key_type`
188 GET_WEP_KEY_ID=`cat $CONFIG_DIR/wep_default_key`
189
190 if [ "$GET_WEP" = '1' ]; then
191 if [ "$GET_WEP_KEY_TYPE" = '0' ]; then
192 GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_64_asc`
193 GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_64_asc`
194 GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_64_asc`
195 GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_64_asc`
196 else
197 GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_64_hex`
198 GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_64_hex`
199 GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_64_hex`
200 GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_64_hex`
201 fi
202
203 $SET_WLAN set_mib encmode=1
204 $SET_WLAN set_mib wepkey1=$GET_WEP_KEY_1
205 $SET_WLAN set_mib wepkey2=$GET_WEP_KEY_2
206 $SET_WLAN set_mib wepkey3=$GET_WEP_KEY_3
207 $SET_WLAN set_mib wepkey4=$GET_WEP_KEY_4
208 $SET_WLAN set_mib wepdkeyid=$GET_WEP_KEY_ID
209 else
210 if [ "$GET_WEP_KEY_TYPE" = '0' ]; then
211 GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_128_asc`
212 GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_128_asc`
213 GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_128_asc`
214 GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_128_asc`
215 else
216 GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_128_hex`
217 GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_128_hex`
218 GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_128_hex`
219 GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_128_hex`
220 fi
221 $SET_WLAN set_mib encmode=5
222 $SET_WLAN set_mib wepkey1=$GET_WEP_KEY_1
223 $SET_WLAN set_mib wepkey2=$GET_WEP_KEY_2
224 $SET_WLAN set_mib wepkey3=$GET_WEP_KEY_3
225 $SET_WLAN set_mib wepkey4=$GET_WEP_KEY_4
226 $SET_WLAN set_mib wepdkeyid=$GET_WEP_KEY_ID
227 fi
228 else
229 ## WPA mode ##
230 $SET_WLAN set_mib encmode=2
231 fi
232
233
234 ## Set 802.1x flag ##
235 _ENABLE_1X=0
236 if [ $GET_WLAN_ENCRYPT -lt 2 ]; then
237 GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
238 GET_MAC_AUTH_ENABLED=`cat $CONFIG_DIR/mac_auth_enabled`
239 if [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
240 _ENABLE_1X=1
241 fi
242 else
243 _ENABLE_1X=1
244 fi
245 $SET_WLAN set_mib 802_1x=$_ENABLE_1X
246
247
248 echo "wpa relative settings" >> $LOG
249#
250# following settings is used when driver WPA module is included
251#
252
253 GET_WPA_AUTH=`cat $CONFIG_DIR/wpa_auth`
254 #if [ $GET_VALUE_WLAN_MODE != 1 ] && [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_ENCRYPT -lt 7 ] && [ $GET_WPA_AUTH = 2 ]; then
255 if [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_ENCRYPT -lt 11 ]; then
256 if [ $GET_WPA_AUTH = 2 ]; then
257 if [ $GET_WLAN_ENCRYPT = 2 ]; then
258 ENABLE=1
259 elif [ $GET_WLAN_ENCRYPT = 4 ]; then
260 ENABLE=2
261 elif [ $GET_WLAN_ENCRYPT = 6 ]; then
262 ENABLE=3
263 elif [ $GET_WLAN_ENCRYPT = 8 ]; then
264 ENABLE=8
265 elif [ $GET_WLAN_ENCRYPT = 10 ]; then
266 ENABLE=10
267 else
268 echo "invalid ENCRYPT value!($GET_WLAN_ENCRYPT)" >> $LOG
269 exit $ERROR_INVALID_PARAMETERS;
270 fi
271 $SET_WLAN set_mib psk_enable=$ENABLE
272 else
273 $SET_WLAN set_mib psk_enable=0
274 fi
275
276 if [ $GET_WLAN_ENCRYPT = 2 ] || [ $GET_WLAN_ENCRYPT = 6 ]; then
277 GET_WPA_CIPHER_SUITE=`cat $CONFIG_DIR/wpa_cipher`
278 if [ $GET_WPA_CIPHER_SUITE = 1 ]; then
279 CIPHER=2
280 elif [ $GET_WPA_CIPHER_SUITE = 2 ]; then
281 CIPHER=8
282 elif [ $GET_WPA_CIPHER_SUITE = 3 ]; then
283 CIPHER=10
284 else
285 echo "invalid WPA_CIPHER_SUITE value!($GET_WPA_CIPHER_SUITE)" >> $LOG
286 exit $ERROR_INVALID_PARAMETERS;
287 fi
288 fi
289 $SET_WLAN set_mib wpa_cipher=$CIPHER
290
291 if [ $GET_WLAN_ENCRYPT = 4 ] || [ $GET_WLAN_ENCRYPT = 6 ] || [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
292 GET_WPA2_CIPHER_SUITE=`cat $CONFIG_DIR/wpa2_cipher`
293 if [ $GET_WPA2_CIPHER_SUITE = 1 ]; then
294 CIPHER=2
295 elif [ $GET_WPA2_CIPHER_SUITE = 2 ]; then
296 CIPHER=8
297 elif [ $GET_WPA2_CIPHER_SUITE = 3 ]; then
298 CIPHER=10
299 else
300 echo "invalid WPA2_CIPHER_SUITE value!($GET_WPA2_CIPHER_SUITE)" >> $LOG
301 exit $ERROR_INVALID_PARAMETERS;
302 fi
303 fi
304 $SET_WLAN set_mib wpa2_cipher=$CIPHER
305
306 GET_WPA_PSK=`cat $CONFIG_DIR/wpa_psk`
307 $SET_WLAN set_mib passphrase="$GET_WPA_PSK"
308
309 fi
310
311 if [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
312 GET_WPA2_11W=`cat $CONFIG_DIR/wpa11w`
313 GET_WPA2_SHA256=`cat $CONFIG_DIR/wpa2EnableSHA256`
314 $SET_WLAN set_mib dot11IEEE80211W=$GET_WPA2_11W
315 $SET_WLAN set_mib enableSHA256=$GET_WPA2_SHA256
316 else
317 echo "Only WPA3 need PMF" >> $LOG
318 $SET_WLAN set_mib dot11IEEE80211W=0
319 $SET_WLAN set_mib enableSHA256=0
320 fi
321
322$IFCONFIG $1 up
323if [ $? != 0 ]; then
324 exit $ERROR_NO_SUCH_DEVICE
325fi
326
327
328exit $ERROR_SUCCESS