You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
#
|
|
# Copyright (C) 2009 OpenWrt.org
|
|
#
|
|
|
|
fetch_mac_from_mtd() {
|
|
local mtd_part=$1
|
|
local lan_env=$2
|
|
local wan_env=$3
|
|
local mtd mac
|
|
|
|
mtd=$(grep $mtd_part /proc/mtd | cut -d: -f1)
|
|
[ -z $mtd ] && return
|
|
|
|
mac=$(grep $lan_env /dev/$mtd | cut -d= -f2)
|
|
[ ! -z $mac ] && ifconfig eth0 hw ether $mac 2>/dev/null
|
|
|
|
mac=$(grep $wan_env /dev/$mtd | cut -d= -f2)
|
|
[ ! -z $mac ] && ifconfig eth1 hw ether $mac 2>/dev/null
|
|
}
|
|
|
|
preinit_set_mac_address() {
|
|
. /lib/functions.sh
|
|
|
|
case $(board_name) in
|
|
c-55|\
|
|
c-60)
|
|
mac_lan=$(mtd_get_mac_binary art 0)
|
|
[ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
|
|
;;
|
|
dir-615-c1|\
|
|
tew-632brp)
|
|
fetch_mac_from_mtd config lan_mac wan_mac
|
|
;;
|
|
dir-615-i1)
|
|
fetch_mac_from_mtd nvram sys_lan_mac sys_wan_mac
|
|
;;
|
|
mr18|\
|
|
z1)
|
|
mac_lan=$(mtd_get_mac_binary_ubi board-config 102)
|
|
[ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
|
|
;;
|
|
r6100)
|
|
mac_lan=$(mtd_get_mac_binary caldata 0)
|
|
[ -n "$mac_lan" ] && ifconfig eth1 hw ether "$mac_lan"
|
|
mac_wan=$(mtd_get_mac_binary caldata 6)
|
|
[ -n "$mac_wan" ] && ifconfig eth0 hw ether "$mac_wan"
|
|
;;
|
|
rambutan)
|
|
mac_lan=$(mtd_get_mac_binary art 0)
|
|
[ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
|
|
mac_wan=$(mtd_get_mac_binary art 6)
|
|
[ -n "$mac_wan" ] && ifconfig eth1 hw ether "$mac_wan"
|
|
;;
|
|
wrt160nl)
|
|
fetch_mac_from_mtd nvram lan_hwaddr wan_hwaddr
|
|
;;
|
|
esac
|
|
}
|
|
|
|
boot_hook_add preinit_main preinit_set_mac_address
|
|
|