df653f2e48c65a5fe9923e57c8668621b51b1348
[oweals/openwrt.git] / target / linux / ar71xx / base-files / lib / preinit / 05_set_iface_mac_ar71xx
1 #
2 # Copyright (C) 2009 OpenWrt.org
3 #
4
5 fetch_mac_from_mtd() {
6         local mtd_part=$1
7         local lan_env=$2
8         local wan_env=$3
9         local mtd mac
10
11         mtd=$(grep $mtd_part /proc/mtd | cut -d: -f1)
12         [ -z $mtd ] && return
13
14         mac=$(grep $lan_env /dev/$mtd | cut -d= -f2)
15         [ ! -z $mac ] && ifconfig eth0 hw ether $mac 2>/dev/null
16
17         mac=$(grep $wan_env /dev/$mtd | cut -d= -f2)
18         [ ! -z $mac ] && ifconfig eth1 hw ether $mac 2>/dev/null
19 }
20
21 preinit_set_mac_address() {
22         . /lib/functions.sh
23
24         case $(board_name) in
25                 c-55|\
26                 c-60)
27                         mac_lan=$(mtd_get_mac_binary art 0)
28                         [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
29                         ;;
30                 dir-615-c1)
31                         fetch_mac_from_mtd config lan_mac wan_mac
32                         echo 1 > /sys/class/leds/dir-615-c1:green:wancpu/brightness
33                         ;;
34                 dir-615-i1)
35                         fetch_mac_from_mtd nvram sys_lan_mac sys_wan_mac
36                         ;;
37                 mr18)
38                         mac_lan=$(mtd_get_mac_binary_ubi board-config 102)
39                         [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
40                         ;;
41                 r6100)
42                         mac_lan=$(mtd_get_mac_binary caldata 0)
43                         [ -n "$mac_lan" ] && ifconfig eth1 hw ether "$mac_lan"
44                         mac_wan=$(mtd_get_mac_binary caldata 6)
45                         [ -n "$mac_wan" ] && ifconfig eth0 hw ether "$mac_wan"
46                         ;;
47                 rambutan)
48                         mac_lan=$(mtd_get_mac_binary art 0)
49                         [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
50                         mac_wan=$(mtd_get_mac_binary art 6)
51                         [ -n "$mac_wan" ] && ifconfig eth1 hw ether "$mac_wan"
52                         ;;
53                 tew-632brp)
54                         fetch_mac_from_mtd config lan_mac wan_mac
55                         ;;
56                 wrt160nl)
57                         fetch_mac_from_mtd nvram lan_hwaddr wan_hwaddr
58                         ;;
59                 z1)
60                         mac_lan=$(mtd_get_mac_binary_ubi board-config 102)
61                         [ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
62                         ;;
63         esac
64 }
65
66 boot_hook_add preinit_main preinit_set_mac_address