xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/ssv6xxx/script/p2p_dual.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#!/bin/bash
2
3echo "=================================================="
4echo "1.Copy firmware"
5echo "=================================================="
6cp ../image/ssv6200-sw.bin /lib/firmware/
7
8echo "=================================================="
9echo "1.Unload Module"
10echo "=================================================="
11./unload_ap.sh
12./unload.sh
13./clean_log.sh
14
15nmcli nm wifi off
16sudo rfkill unblock wlan
17
18echo "=================================================="
19echo "2.Set Hardware Capability"
20echo "=================================================="
21#ifconfig eth0 down
22#ifconfig eth0 > /dev/null
23if [ $? ]; then
24    eth0_local_mac=`ifconfig eth0  | grep HWaddr | sed -e 's/.*HWaddr //g' | sed -e 's/ //g' | cut -d ':' -f 4,5,6`
25    echo Use eth0 MAC address.
26else
27    eth0_local_mac="45:67:89"
28    echo No eth0 found use defaul MAC address.
29fi
30
31local_mac=00:a8:b8:$eth0_local_mac
32local_mac_2=`echo $local_mac | cut -d ':' -f 6`
33local_mac_2=`printf '%x' $[ ( 16#$local_mac_2 + 1 ) % 4 + ( 16#$local_mac_2 & 16#FC ) ] `
34local_mac_2="`echo $local_mac | cut -d ':' -f 1,2,3,4,5`:$local_mac_2"
35
36echo Primary WLAN MAC is $local_mac
37echo Secondary WLAN MAC is $local_mac_2
38
39cat sta.cfg.template | sed -e "s/MAC_ADDR/$local_mac/g" | sed -e "s/MAC2ADDR/$local_mac_2/g" > sta.cfg
40./ssvcfg.sh sta.cfg
41echo ----Secondary WLAN MAC is $local_mac_2
42
43echo "=================================================="
44echo "3.Load MMC Module"
45echo "=================================================="
46modprobe mmc_core
47modprobe sdhci
48modprobe sdhci-pci
49modprobe mmc_block
50
51echo "=================================================="
52echo "4.Load SSV6200 Driver"
53echo "=================================================="
54echo 6 > /proc/sys/kernel/printk
55
56modprobe ssv6200_sdio
57
58sleep 1
59
60ssv_phy=`./find_ssv_phy`
61if [ -z "$ssv_phy" ]; then
62    echo SSV PHY device not found.;
63    exit 1;
64fi
65
66ssv_wlan_1=`./find_ssv_wlan`
67if [ -z "$ssv_wlan_1" ]; then
68    echo SSV primary WLAN device not found.;
69    exit 1;
70fi
71
72echo "Primary SSV WLAN interface is $ssv_wlan_1"
73
74ssv_wlan_2=`echo $ssv_wlan_1 | sed -e s/wlan//g`
75ssv_wlan_2=`expr $ssv_wlan_2 + 1`
76ssv_wlan_2="wlan$ssv_wlan_2"
77echo Second WLAN interface is $ssv_wlan_2
78
79echo "Add second interface $ssv_wlan_2 to SSV PHY device $ssv_phy"
80iw $ssv_phy interface add $ssv_wlan_2 type  __p2pcl
81sleep 1
82ssv_wlans="`./find_ssv_wlan`"
83for ssv_wlan in $ssv_wlans; do
84    if [ $ssv_wlan != $ssv_wlan_1 ]; then
85            echo Second SSV WLAN device is actually $ssv_wlan
86#            ifconfig $ssv_wlan up
87            ssv_wlan_2=$ssv_wlan
88                            break;
89    fi
90done
91#ifconfig $ssv_wlan_1 up
92
93cat wpa.conf.template | sed -e "s/MAC_ADDR/$local_mac/g"  > wpa.cfg
94cat p2p.conf.template | sed -e "s/MAC_ADDR/$local_mac_2/g" > p2p.cfg
95
96killall wpa_supplicant
97rm -rf log
98sleep 3
99
100wpa_supplicant -i $ssv_wlan_2 -c p2p.cfg -D nl80211 -N -i $ssv_wlan_1 -c wpa.cfg -D nl80211
101
102
103