On 18/10/2016 08:54, J Mo wrote: > > > On 10/17/2016 11:22 PM, John Crispin wrote: >>> +boot_hook_add preinit_main preinit_assign_mtd2block >>> > diff --git >>> > a/target/linux/ipq806x/base-files/lib/preinit/05_set_iface_mac_ipq806x.sh >>> > b/target/linux/ipq806x/base-files/lib/preinit/05_set_iface_mac_ipq806x.sh >>> > new file mode 100644 >>> > index 0000000..b8246ab >>> > --- /dev/null >>> > +++ >>> > b/target/linux/ipq806x/base-files/lib/preinit/05_set_iface_mac_ipq806x.sh >>> > @@ -0,0 +1,21 @@ >>> > +# >>> > +# Copyright (C) 2009 OpenWrt.org >>> > +# >>> > + >>> > +. /lib/ipq806x.sh >>> > +. /lib/functions/system.sh >>> > + >>> > +preinit_set_mac_address() { >>> > + case $(ipq806x_board_name) in >>> > + nbg6817) >>> > + mac_lan=$(dd if=/dev/mtdblock9 bs=1 skip=4 count=65532 >>> > 2>/dev/null | tr \\0 \\n | grep ^ethaddr= | cut -d= -f2) >>> > + [ -n "$mac_lan" ] && { >>> > + ifconfig eth0 hw ether "$mac_lan" >>> > + mac_wan=$(macaddr_add "$mac_lan" 1) >>> > + ifconfig eth1 hw ether "$mac_wan" >>> > + } >>> > + ;; >>> > + esac >>> > +} >> please set this inside >> target/linux/ipq806x/base-files/etc/board.d/02_network you can find an >> example of how to set the mac inside >> target/linux/ramips/base-files/etc/board.d/02_network >> > > This needs to go into preinit or the non-unique MAC addresses will be > propagated to all user-configured VLAN subinterfaces, if VLANs are used. > I have the same problem with my ipq806x device. > > Putting the config into the board.d network file is not sufficient, > because it will only set the correct MAC address on whichever interface > belongs to the "wan" and/or "lan" interface-policy(or whatever you call > it). If that interface is a sub-interface (eth0.1), then the hardware > interface (eth0) remains unfixed, and thus all other VLAN sub-interfaces > end up with with the non-unique MAC addresses, resulting in ethernet > address conflicts if more than one device is connected to a network. > > I am not sure why the other ipq806x devices are not doing this. They all > have the same problem.
in that case the board.d config generating code needs to be fixed. a workaround hack just hides the real issue. _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev