forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-08-21 fc437ccf3419c424092701f3d883215fa4552a8b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/sh
 
SSID=
WIFISSID=$1
WIFIPWD=$2
IPADDR=
WPAPID=
NETMASK=
GW=
DNS=
up_cnt=0
insmod_cnt=0
check_cnt=0
 
if [ -z $WIFISSID ]; then
   echo -e "\033[33m WIFISSID is invalid, assume to Rockchip-guest \033[0m"
   WIFISSID=Rockchip-guest
fi
 
if [ -z $WIFIPWD ]; then
   echo -e "\033[33m WIFIPWD is invalid, assume to RKguest2.4 \033[0m"
   WIFIPWD=RKguest2.4
fi
 
function getdhcp() {
   while true
   do
       IPADDR=`dhd_priv wl dhcpc_dump | awk '{print $5}' | sed -n '3p'`
       if [ "$IPADDR" != "0.0.0.0" ];then
           NETMASK=`dhd_priv wl dhcpc_dump | awk '{print $7}' | sed -n '3p'`
           GW=`dhd_priv wl dhcpc_dump | awk '{print $9}' | sed -n '3p'`
           DNS=`dhd_priv wl dhcpc_dump | awk '{print $11}' | sed -n '3p'`
 
           ifconfig wlan0 $IPADDR netmask $NETMASK
           route add default gw $GW
           echo "nameserver $DNS" > /etc/resolv.conf
 
           echo $IPADDR $NETMASK $GW $DNS
           break
       fi
   done
}
 
function check_wlan0() {
   while true
   do
       ifconfig -a wlan0 | grep wlan0
       if [ $? -ne 0 ]; then
           echo "wait wlan0 ..."
           sleep .1
       else
           echo "wlan0 exist"
           break
       fi
       let check_cnt++
       if [ $check_cnt -gt 2 ]; then
           break
       fi
   done
}
 
function wlan_up() {
   while true
   do
       ifconfig wlan0 up
       if [ $? -ne 0 ]; then
           echo "wlan0 up failed"
           sleep .1
       else
           echo "wlan0 up succeed"
           break
       fi
 
       let up_cnt++
       if [ $up_cnt -gt 2 ]; then
           break
       fi
   done
}
 
killall wpa_supplicant
check_wlan0
wlan_up
 
SSID=`dhd_priv isam_status | grep bssid`
 
if [ "$SSID" ==  "" ];then
   cp /etc/wpa_supplicant.conf /tmp/
   echo "connect to WiFi ssid: $WIFISSID, Passwd: $WIFIPWD"
   sed -i "s/SSID/$WIFISSID/g" /tmp/wpa_supplicant.conf
   sed -i "s/PASSWORD/$WIFIPWD/g" /tmp/wpa_supplicant.conf
 
   while true
   do
       wpa_supplicant -B -i wlan0 -c /tmp/wpa_supplicant.conf
       sleep 1
       break
       #WPAPID=`ps -ef | grep wpa_supplicant | awk '{print $2}' | sed -n '2p'`
   done
 
   while true
   do
       SSID=`dhd_priv isam_status | awk '{print $9}' | sed -n '4p' | cut -d '"' -f 2`
       if [ "$SSID" !=  "" ];then
           echo $SSID
           break
       fi
   done
 
   getdhcp
else
   getdhcp
fi