010-primary-mac 998 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/lua
  2. local sysconfig = require 'gluon.sysconfig'
  3. if sysconfig.primary_mac then
  4. os.exit(0)
  5. end
  6. local platform = require 'gluon.platform'
  7. local fs = require 'nixio.fs'
  8. local util = require 'luci.util'
  9. local try_files = {
  10. '/sys/class/net/eth0/address'
  11. }
  12. if not util.contains({'x86', 'brcm2708'}, platform.get_target()) then
  13. table.insert(try_files, 1, '/sys/class/ieee80211/phy0/macaddress')
  14. end
  15. if platform.match('ar71xx', 'generic', {'tl-wdr3600', 'tl-wdr4300'}) then
  16. table.insert(try_files, 1, '/sys/class/ieee80211/phy1/macaddress')
  17. elseif platform.match('ar71xx', 'generic', {'unifi-outdoor-plus', 'carambola2'}) then
  18. table.insert(try_files, 1, '/sys/class/net/eth0/address')
  19. elseif platform.match('ar71xx', 'generic', {'archer-c5', 'archer-c7'}) then
  20. table.insert(try_files, 1, '/sys/class/net/eth1/address')
  21. end
  22. for _, file in ipairs(try_files) do
  23. local addr = fs.readfile(file)
  24. if addr then
  25. sysconfig.primary_mac = util.trim(addr)
  26. break
  27. end
  28. end