From 48c66b5888b30dc79c63df10dece5774f493521e Mon Sep 17 00:00:00 2001 From: Julian Labus Date: Sun, 9 Apr 2017 20:33:16 +0200 Subject: [PATCH 1/3] gluon-core: Fixed PHY detection for radios address by its PCIe address --- package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua index efaf0d48..a3208c10 100644 --- a/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua +++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua @@ -138,6 +138,10 @@ local function find_phy_by_path(path) for phy in fs.glob('/sys/devices/' .. path .. '/ieee80211/phy*') do return phy:match('([^/]+)$') end + + for phy in fs.glob('/sys/devices/platform/' .. path .. '/ieee80211/phy*') do + return phy:match('([^/]+)$') + end end local function find_phy_by_macaddr(macaddr) From 77c46836194b5ce853ba3f502acb28d41fb768b5 Mon Sep 17 00:00:00 2001 From: Julian Labus Date: Sun, 9 Apr 2017 20:33:56 +0200 Subject: [PATCH 2/3] gluon-core: make find_phy non-local to be used in gluon-web-wifi-config --- package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua index a3208c10..21a580c5 100644 --- a/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua +++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua @@ -153,7 +153,7 @@ local function find_phy_by_macaddr(macaddr) end end -local function find_phy(radio) +function find_phy(radio) local config = uci:get_all('wireless', radio) if not config or config.type ~= 'mac80211' then From cbec1dc4e9b2633a436d1a9926a5f6d27f339014 Mon Sep 17 00:00:00 2001 From: Julian Labus Date: Sun, 9 Apr 2017 20:36:04 +0200 Subject: [PATCH 3/3] gluon-web-wifi-config: replace find_phy_by_path and find_phy_by_macaddr with find_phy from gluon-core --- .../lib/gluon/web/model/admin/wifi-config.lua | 23 ++----------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/package/gluon-web-wifi-config/luasrc/lib/gluon/web/model/admin/wifi-config.lua b/package/gluon-web-wifi-config/luasrc/lib/gluon/web/model/admin/wifi-config.lua index 7df669b0..499851fc 100644 --- a/package/gluon-web-wifi-config/luasrc/lib/gluon/web/model/admin/wifi-config.lua +++ b/package/gluon-web-wifi-config/luasrc/lib/gluon/web/model/admin/wifi-config.lua @@ -4,21 +4,6 @@ local uci = require("simple-uci").cursor() local util = require 'gluon.util' -local function find_phy_by_path(path) - for phy in fs.glob("/sys/devices/" .. path .. "/ieee80211/phy*") do - return phy:match("([^/]+)$") - end -end - -local function find_phy_by_macaddr(macaddr) - local addr = macaddr:lower() - for file in fs.glob("/sys/class/ieee80211/*/macaddress") do - if util.trim(fs.readfile(file)) == addr then - return file:match("([^/]+)/macaddress$") - end - end -end - local function txpower_list(phy) local list = iwinfo.nl80211.txpwrlist(phy) or { } local off = tonumber(iwinfo.nl80211.txpower_offset(phy)) or 0 @@ -84,12 +69,8 @@ uci:foreach('wireless', 'wifi-device', function(config) vif_option('mesh', translate("Enable mesh network (802.11s)")) vif_option('ibss', translate("Enable mesh network (IBSS)")) - local phy - if config.path then - phy = find_phy_by_path(config.path) - elseif config.macaddr then - phy = find_phy_by_macaddr(config.macaddr) - else + local phy = util.find_phy(radio) + if phy == nil then return end