# # 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 0x0) [ -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 0x66) [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan" ;; r6100) mac_lan=$(mtd_get_mac_binary caldata 0x0) [ -n "$mac_lan" ] && ifconfig eth1 hw ether "$mac_lan" mac_wan=$(mtd_get_mac_binary caldata 0x6) [ -n "$mac_wan" ] && ifconfig eth0 hw ether "$mac_wan" ;; rambutan) mac_lan=$(mtd_get_mac_binary art 0x0) [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan" mac_wan=$(mtd_get_mac_binary art 0x6) [ -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