001-sysconfig 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/lua
  2. local sysconfig = require 'gluon.sysconfig'
  3. local gluon_util = require 'gluon.util'
  4. local fs = require 'luci.fs'
  5. local uci = require('luci.model.uci').cursor()
  6. local util = require 'luci.util'
  7. local platform_info = require 'platform_info'
  8. local board_name = platform_info.get_board_name()
  9. if board_name == 'tl-wdr3600' or board_name == 'tl-wdr4300' then
  10. sysconfig.primary_mac = util.trim(fs.readfile('/sys/class/ieee80211/phy1/macaddress'))
  11. else
  12. sysconfig.primary_mac = util.trim(fs.readfile('/sys/class/ieee80211/phy0/macaddress'))
  13. end
  14. local function iface_exists(name)
  15. return (gluon_util.exec('ip', 'link', 'show', 'dev', (name:gsub('%..*$', ''))) == 0)
  16. end
  17. local lan_ifname = uci:get('network', 'lan', 'ifname')
  18. local wan_ifname = uci:get('network', 'wan', 'ifname')
  19. if board_name == 'nanostation-m' then
  20. lan_ifname, wan_ifname = wan_ifname, lan_ifname
  21. end
  22. if wan_ifname and iface_exists(wan_ifname) then
  23. sysconfig.wan_ifname = wan_ifname
  24. sysconfig.lan_ifname = lan_ifname
  25. else
  26. sysconfig.wan_ifname = lan_ifname
  27. end