This repository has been archived on 2024-05-11. You can view files and clone it, but cannot push or open issues or pull requests.
gluon-firmware/package/gluon-core/files/lib/gluon/upgrade/010-primary-mac

50 lines
1.5 KiB
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 'nixio.fs'
local util = require 'luci.util'
local try_files = {
'/sys/class/net/eth0/address'
}
if not util.contains({'x86', 'brcm2708'}, platform.get_target()) then
table.insert(try_files, 1, '/sys/class/ieee80211/phy0/macaddress')
end
if platform.match('ar71xx', 'generic', {'tl-wdr3600', 'tl-wdr4300'}) then
table.insert(try_files, 1, '/sys/class/ieee80211/phy1/macaddress')
elseif platform.match('ar71xx', 'generic', {'unifi-outdoor-plus', 'carambola2',
'mr600', 'mr600v2',
'mr900', 'mr900v2',
'mr1750', 'mr1750v2',
'om2p', 'om2pv2',
'om2p-hs', 'om2p-hsv2', 'om2p-hsv3',
'om2p-lc',
'om5p', 'om5p-an',
'om5p-ac', 'om5p-acv2'}) then
table.insert(try_files, 1, '/sys/class/net/eth0/address')
elseif 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