if uci get network.mesh.macaddr then echo "MAC is set already" else BRMAC=$(awk '{ tolower($0); print }' /sys/class/net/br-mesh/address) WLMAC=$(awk '{ tolower($0); print }' /sys/class/net/wlan0/address) ETMAC=$(awk '{ tolower($0); print }' /sys/class/net/eth0/address) if [ "$WLMAC" != "" ] && [ "$BRMAC" != "" ] && [ "$BRMAC" = "$ETMAC" ]; then if [[ "$BRMAC" != "$WLMAC" ]]; then echo "Fixing wrong MAC on br-mesh" uci set network.mesh.macaddr=$WLMAC uci commit ifconfig br-mesh hw ether $WLMAC ifconfig br-mesh down ifconfig br-mesh up #wait before reboot to generate tinc certificates and to be able #to login over ssh bevore reboot in case of errors fi fi fi if uci get network.ethmesh.macaddr then echo "MAC for ETH-BATMAN is set already" else echo "Fixing MAC on eth0.3 (ethmesh)" NEW=$(awk -F: '{ printf("%02x:%02x:%02x:%02x:%02x:%02x\n", ("0x"$1)+2, "0x"$2, "0x"$3, "0x"$4, "0x"$5, "0x"$6 ) }' /sys/class/net/eth0/address) uci set network.ethmesh.macaddr=$NEW uci commit ifconfig eth0.3 hw ether $NEW ifconfig eth0.3 down ifconfig eth0.3 up fi batctl if add wlan0-1 batctl if add eth0.3