43 lines
884 B
Lua
Executable File
43 lines
884 B
Lua
Executable File
#!/usr/bin/lua
|
|
|
|
local sysconfig = require 'gluon.sysconfig'
|
|
|
|
|
|
if sysconfig.primary_mac then
|
|
os.exit(0)
|
|
end
|
|
|
|
|
|
local platform = require 'gluon.platform'
|
|
|
|
local fs = require 'luci.fs'
|
|
local util = require 'luci.util'
|
|
|
|
|
|
local try_files = {
|
|
'/sys/class/ieee80211/phy0/macaddress',
|
|
'/sys/class/net/eth0/address',
|
|
}
|
|
|
|
if platform.match('ar71xx', 'generic', {'tl-wdr3600', 'tl-wdr4300'}) then
|
|
table.insert(try_files, 1, '/sys/class/ieee80211/phy1/macaddress')
|
|
end
|
|
|
|
if platform.match('ar71xx', 'generic', {'unifi-outdoor-plus'}) then
|
|
table.insert(try_files, 1, '/sys/class/net/eth0/address')
|
|
end
|
|
|
|
if platform.match('ar71xx', 'generic', {'archer-c5', 'archer-c7'}) then
|
|
table.insert(try_files, 1, '/sys/class/net/eth1/address')
|
|
end
|
|
|
|
|
|
for _, file in ipairs(try_files) do
|
|
local addr = fs.readfile(file)
|
|
|
|
if addr then
|
|
sysconfig.primary_mac = util.trim(addr)
|
|
break
|
|
end
|
|
end
|