65 lines
1.7 KiB
Bash
Executable File
65 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
. /lib/functions.sh
|
|
|
|
config_load wireless
|
|
|
|
configure_radio() {
|
|
local radio="$1"
|
|
local channel; local htmode; local ssid; local mesh_ssid; local mesh_bssid; local mesh_mcast_rate
|
|
|
|
config_get hwmode "$radio" 'hwmode'
|
|
|
|
case "$hwmode" in
|
|
11g|11ng)
|
|
channel='@wifi24.channel@'
|
|
htmode='@wifi24.htmode@'
|
|
|
|
ssid='@wifi24.ssid@'
|
|
mesh_ssid='@wifi24.mesh_ssid@'
|
|
mesh_bssid='@wifi24.mesh_bssid@'
|
|
mesh_mcast_rate='@wifi24.mesh_mcast_rate@'
|
|
;;
|
|
11a|11na)
|
|
channel='@wifi5.channel@'
|
|
htmode='@wifi5.htmode@'
|
|
|
|
ssid='@wifi5.ssid@'
|
|
mesh_ssid='@wifi5.mesh_ssid@'
|
|
mesh_bssid='@wifi5.mesh_bssid@'
|
|
mesh_mcast_rate='@wifi5.mesh_mcast_rate@'
|
|
;;
|
|
*)
|
|
return
|
|
esac
|
|
|
|
uci_remove wireless "$radio" 'disabled'
|
|
|
|
uci_set wireless "$radio" channel "$channel"
|
|
uci_set wireless "$radio" htmode "$htmode"
|
|
uci_set wireless "$radio" country '@regdom@'
|
|
|
|
uci_add wireless 'wifi-iface' "client_${radio}"
|
|
uci_set wireless "client_${radio}" device "$radio"
|
|
uci_set wireless "client_${radio}" network 'client'
|
|
uci_set wireless "client_${radio}" mode 'ap'
|
|
uci_set wireless "client_${radio}" ssid "$ssid"
|
|
|
|
uci_add network 'interface' "mesh_${radio}"
|
|
uci_set network "mesh_${radio}" proto 'batadv'
|
|
uci_set network "mesh_${radio}" mtu '1528'
|
|
uci_set network "mesh_${radio}" mesh 'bat0'
|
|
|
|
uci_add wireless 'wifi-iface' "mesh_${radio}"
|
|
uci_set wireless "mesh_${radio}" device "$radio"
|
|
uci_set wireless "mesh_${radio}" network "mesh_${radio}"
|
|
uci_set wireless "mesh_${radio}" mode 'adhoc'
|
|
uci_set wireless "mesh_${radio}" ssid "$mesh_ssid"
|
|
uci_set wireless "mesh_${radio}" bssid "$mesh_bssid"
|
|
uci_set wireless "mesh_${radio}" mcast_rate "$mesh_mcast_rate"
|
|
}
|
|
|
|
config_foreach configure_radio 'wifi-device'
|
|
uci_commit wireless
|
|
uci_commit network
|