#!/bin/sh /etc/rc.common # Copyright (C) 2006 OpenWrt.org START=99 boot() { # Deal with lan and wifi having same mac address (common on TP-Link) if [ ! -f /etc/aredn_include/ethmacfixup ] then mkdir -p /etc/aredn_include touch /etc/aredn_include/ethmacfixup local lanintf=`uci -q get 'network.lan.ifname'` local wifiintf="wlan0" local lanmac=`ifconfig $lanintf | grep -o -E '([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}'` local wifimac=`ifconfig $wifiintf | grep -o -E '([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}'` if [ "$lanmac" = "$wifimac" ] then local wifimacdigit=`echo $wifimac | awk 'BEGIN { FS = ":" } ;{print $4}'` local newmac="00:00:00:00:00:00" if [ "$wifimacdigit" = "FF" ] then newmac=`echo "$wifimac" | awk 'BEGIN { FS = ":" } ;{print $1":"$2":"$3":00:"$5":"$6}'` else local wifimacdigitplusone wifimacdigitplusone=`printf "%02X\n" $((0x$wifimacdigit + 1))` newmac=`echo "$wifimac:$wifimacdigitplusone" | awk 'BEGIN { FS = ":" } ;{print $1":"$2":"$3":"$7":"$5":"$6}'` fi case $lanintf in *.*) echo "" > /etc/aredn_include/ethmacfixup echo "config interface 'setethmac'" >> /etc/aredn_include/ethmacfixup echo -e "\toption\tifname\t'eth0'" >> /etc/aredn_include/ethmacfixup echo -e "\toption\tproto\t'none'" >> /etc/aredn_include/ethmacfixup echo -e "\toption\tmacaddr\t$newmac" >> /etc/aredn_include/ethmacfixup uci set "network.setethmac=interface" uci set "network.setethmac.ifname=eth0" uci set "network.setethmac.proto=none" uci set "network.setethmac.macaddr=$newmac" ;; *) uci -q set "network.lan.macaddr=$newmac" echo -e "\toption\tmacaddr\t$newmac" > /etc/aredn_include/ethmacfixup ;; esac uci commit /etc/init.d/network reload /etc/init.d/network restart fi fi [ -x /usr/local/bin/bbhn-postupgrade ] && /usr/local/bin/bbhn-postupgrade # setup nvram variables [ -x /usr/local/bin/nvram-setup ] && /usr/local/bin/nvram-setup # run mode specific setup [ -x /etc/config/local ] && /etc/config/local [ -x /etc/local/services ] && /etc/local/services }