mirror of https://github.com/aredn/aredn.git
bugfix: move set eth mac fixup to /etc/init.d/local
Not getting much debug information at moment, would like to put this in uci-defaults but with issues that I can't seem to log at moment (and not having serial cable for this device) I'm going with lets put it in /etc/init.d/local before nvram and similar gets set. ref AREDN->ticket:115
This commit is contained in:
parent
c4c808f98c
commit
6b404c27ff
|
@ -4,6 +4,52 @@
|
|||
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
|
||||
|
|
|
@ -91,50 +91,4 @@ then
|
|||
|
||||
fi
|
||||
|
||||
# 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
|
||||
|
||||
exit 0
|
||||
|
|
Loading…
Reference in New Issue