mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Use ap or wlan for mkt wifi
This commit is contained in:
parent
0b47954ed9
commit
b81e957140
1 changed files with 50 additions and 16 deletions
|
@ -5,12 +5,25 @@ START=69
|
||||||
check_mtk_device() {
|
check_mtk_device() {
|
||||||
config_get phy "$1" phy
|
config_get phy "$1" phy
|
||||||
[ "$phy" = "mtkp2p0" ] && {
|
[ "$phy" = "mtkp2p0" ] && {
|
||||||
radiop2p="$1"
|
[ "$(uci -q get wireless.$1.disabled)" = "1" ] || apmode="$1"
|
||||||
[ -z "$(uci -q get wireless.default_$1.ifname)" ] && {
|
[ -z "$(uci -q get wireless.default_$1.ifname)" ] && {
|
||||||
uci -q batch <<-EOF
|
uci -q batch <<-EOF
|
||||||
set wireless.default_$1.ifname=mtkap0
|
set wireless.default_$1.ifname=mtkap0
|
||||||
set wireless.default_$1.bss_load_update_period=0
|
set wireless.default_$1.bss_load_update_period=0
|
||||||
commit wireless
|
EOF
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[ "$phy" = "mtkphy0" ] && {
|
||||||
|
[ "$(uci -q get wireless.$1.disabled)" = "1" ] || wlanmode="$1"
|
||||||
|
[ -z "$(uci -q get wireless.default_$1.ifname)" ] && {
|
||||||
|
uci -q batch <<-EOF
|
||||||
|
set wireless.default_$1.ifname=mtkwlan0
|
||||||
|
set wireless.default_$1.bss_load_update_period=0
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
[ "$(uci -q get wireless.default_$1.mode)" = "ap" ] && {
|
||||||
|
uci -q batch <<-EOF
|
||||||
|
set wireless.default_$1.mode=sta
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,14 +31,10 @@ check_mtk_device() {
|
||||||
|
|
||||||
find_radio() {
|
find_radio() {
|
||||||
config_load wireless
|
config_load wireless
|
||||||
radiop2p=""
|
apmode=""
|
||||||
|
wlanmode=""
|
||||||
config_foreach check_mtk_device wifi-device
|
config_foreach check_mtk_device wifi-device
|
||||||
}
|
uci -q commit wireless
|
||||||
|
|
||||||
stop_ap() {
|
|
||||||
find_radio
|
|
||||||
[ -n "$radiop2p" ] && wifi down "$radiop2p" 2>/dev/null
|
|
||||||
echo 0 > /dev/wmtWifi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
start_ap() {
|
start_ap() {
|
||||||
|
@ -35,12 +44,33 @@ start_ap() {
|
||||||
tc class add dev mtkap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2
|
tc class add dev mtkap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2
|
||||||
|
|
||||||
find_radio
|
find_radio
|
||||||
if [ -n "$radiop2p" ]; then
|
if [ -n "$apmode" ]; then
|
||||||
config_get_bool disabled "$radiop2p" disabled
|
config_get_bool disabled "$apmode" disabled
|
||||||
[ "$disabled" = "1" ] || wifi up "$radiop2p" 2>/dev/null
|
[ "$disabled" = "1" ] || wifi up "$apmode" 2>/dev/null
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
start_wlan() {
|
||||||
|
echo 1 > /dev/wmtWifi
|
||||||
|
# Those are recommended by vendor to avoid chip lockup.
|
||||||
|
tc qdisc add dev mtkap0 root handle 1: htb default 11
|
||||||
|
tc class add dev mtkap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2
|
||||||
|
|
||||||
|
find_radio
|
||||||
|
if [ -n "$wlanmode" ]; then
|
||||||
|
config_get_bool disabled "$wlanmode" disabled
|
||||||
|
[ "$disabled" = "1" ] || wifi up "$wlanmode" 2>/dev/null
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_apwlan() {
|
||||||
|
find_radio
|
||||||
|
[ -n "$apmode" ] && wifi down "$apmode" 2>/dev/null
|
||||||
|
[ -n "$wlanmode" ] && wifi down "$wlanmode" 2>/dev/null
|
||||||
|
echo 0 > /dev/wmtWifi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
find_radio
|
find_radio
|
||||||
|
|
||||||
|
@ -49,7 +79,9 @@ start() {
|
||||||
echo "$!" > /var/run/stp_uart_launcher.pid
|
echo "$!" > /var/run/stp_uart_launcher.pid
|
||||||
sleep 3
|
sleep 3
|
||||||
if [ -c /dev/wmtWifi ]; then
|
if [ -c /dev/wmtWifi ]; then
|
||||||
start_ap
|
[ -n "$apmode" ] && start_ap
|
||||||
|
[ -n "$wlanmode" ] && start_wlan
|
||||||
|
[ -z "$apmode" ] && [ -z "$wlanmode" ] && start_ap
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
|
@ -60,7 +92,7 @@ stop() {
|
||||||
find_radio
|
find_radio
|
||||||
|
|
||||||
if [ -c /dev/wmtWifi ]; then
|
if [ -c /dev/wmtWifi ]; then
|
||||||
stop_ap
|
stop_apwlan
|
||||||
stp_pid="$(cat /var/run/stp_uart_launcher.pid 2>/dev/null)"
|
stp_pid="$(cat /var/run/stp_uart_launcher.pid 2>/dev/null)"
|
||||||
if [ -n "$stp_pid" ]; then
|
if [ -n "$stp_pid" ]; then
|
||||||
kill "$stp_pid"
|
kill "$stp_pid"
|
||||||
|
@ -73,7 +105,9 @@ reload() {
|
||||||
find_radio
|
find_radio
|
||||||
|
|
||||||
if [ -c /dev/wmtWifi ]; then
|
if [ -c /dev/wmtWifi ]; then
|
||||||
stop_ap
|
stop_apwlan
|
||||||
start_ap
|
[ -n "$apmode" ] && start_ap
|
||||||
|
[ -n "$wlanmode" ] && start_wlan
|
||||||
|
[ -z "$apmode" ] && [ -z "$wlanmode" ] && start_ap
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue