summaryrefslogtreecommitdiff
path: root/package/ramips/drivers/mt7615e/files/mt7615e2.sh
blob: e4408934c84888aec7ea9171f601ce13df4187b1 (plain)
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
114
115
116
#!/bin/sh
append DRIVERS "mt7615e2"

. /lib/wifi/mt7615e.inc

# Hua Shao : This script assumes that:
# 1. 7615 is the only wifi device.
# 2. DBDC=1
# 3. MULTI_PROFILE=1
# 4. DEFAULT_5G=1, which means ra0/rai0/rae0 -> 5G, rax0/ray0/raz0 -> 2G
# If your product is not exactly the same as above, then some minor fixes are necessary.

prepare_mt7615e2() {
	#prepare_ralink_wifi mt7615e
	:
}

scan_mt7615e2() {
	#scan_ralink_wifi mt7615e mt7615e
	:
}

disable_mt7615e2() {
	# unregister hwnat hook.
	iwpriv rax0 set hw_nat_register=0 2>/dev/null || true

	[ x"$2" == x"" ] && {
		disable_mt7615e
		return
	}

	cd /sys/class/net/
	for vif in apcli*; do
		if echo "$vif" | grep -q -e "apcli[xyz]" ; then
			ifconfig $vif down;
		fi
	done
	for vif in ra*; do
		if echo "$vif" | grep -q -e "ra[xyz]" ; then
			ifconfig $vif down;
			ubus call network.interface.lan remove_device "{\"name\":\"$vif\"}"
		fi
	done
}

enable_mt7615e2() {

	[ x"$2" == x"" ] && {
		enable_mt7615e
		return
	}

	[ -f /tmp/mtk/wifi/.mt7615e.1.2g.need_reload ] && {
		cd /sys/class/net/
		for vif in apcli*; do
			ifconfig $vif down;
		done
		for vif in ra*; do
			ifconfig $vif down;
		done
		rmmod mt7615e
		modprobe mt7615e
	}

    uci2dat -d mt7615e2 -f /etc/wireless/mt7615e/mt7615e.1.2G.dat > /tmp/uci2dat.log
	ifconfig ra0 up # ra0 is the root vif
	cd /sys/class/net/
	for vif in ra*; do
		if echo "$vif" | grep -q -e "ra[xyz]" ; then
			ifconfig $vif up;
			ubus call network.interface.lan add_device "{\"name\":\"$vif\"}"
			
			local tmp=$(brctl show | grep $vif)   
			if [ x"$tmp" == x"" ]
			then
				echo "add $vif to br-lan" >> /tmp/wifi.log                 
				brctl addif br-lan $vif                                    
			fi
		fi
	done
	for vif in apcli*; do
		if echo "$vif" | grep -q -e "apcli[xyz]" ; then
			ifconfig $vif up;
		fi
	done

	# register hwnat hook.
	iwpriv rax0 set hw_nat_register=1
}

detect_mt7615e2() {
	ssid2g=mt7615e-2g-`ifconfig eth0 | grep HWaddr | cut -c 51- | sed 's/://g'`
    [ -e /etc/config/wireless ] && return
         cat <<EOF
config wifi-device      mt7615e2
        option type     mt7615e2
        option vendor   ralink
        option band     2.4g
        option channel  0
        option autoch   2
        option g256qam  1
        option e2paccmode 2

config wifi-iface
        option device   mt7615e2
        option ifname   rax0
        option network  lan
        option mode     ap
        option ssid     $ssid2g
        option encryption psk2
        option key      12345678

EOF
}