diff options
Diffstat (limited to 'target/linux/ramips/base-files/lib/preinit')
-rw-r--r-- | target/linux/ramips/base-files/lib/preinit/06_set_iface_mac | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac new file mode 100644 index 000000000..4be625bd1 --- /dev/null +++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac @@ -0,0 +1,33 @@ +# +# Copyright (C) 2011 OpenWrt.org +# + +nw718_set_mac() { + local part + local mac + + [ -z $(which maccalc) ] && return + + . /etc/functions.sh + + part=$(find_mtd_part "factory") + [ -z $part ] && return + + mac=$(dd bs=1 skip=4 count=6 if=$part 2>/dev/null | maccalc bin2mac) + [ -z $mac ] && return + + mac=$(maccalc or "$mac" "02:00:00:00:00:00") + ifconfig eth0 hw ether $mac 2>/dev/null +} + +preinit_set_mac_address() { + . /lib/ramips.sh + + case $(ramips_board_name) in + nw718) + nw718_set_mac + ;; + esac +} + +boot_hook_add preinit_main preinit_set_mac_address |