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