I have configured one OpenWrt (lets call it child) to boot from sd card which has the firmware and software re-imaged from another OpenWrt (lets call it maker) as per following: http://labs.mediatek.com/forums/posts/list/3619.page#p7191.
Everything works fine except for the issue where wlan interface of child and maker are showing the same MAC address, the one of maker. Due to this I can connect to only one of them if they both are in AP mode.
I have tried giving 'macaddr' option in 'wifi-device', 'wifi-iface' but nothing works. I have also tried setting hardware address using command:
ifconfig ra0 hw ether 'XX:XX:XX:XX:XX:XX'
but this gives me error
ifconfig: SIOCSIFHWADDR: Operation not supported
I can see that the mac address is picked from
/sys/class/net/ra0/address
where ra0 is the interface name but its a read only file and is not there on sd card (atleast with the given path)
The mac address of the parent has to be on the sd card but can't find it using grep atleast.
So I would appreciate any help here, either in changing the address on sd card post imaging or override it in system startup.
Thanks
Thanks for the help.
It seems that for mediatek linkit 7688, the MAC is stored in /dev/mtd2. Ideally this is a ROM partition and should not be affected on booting from SD card or raw flash.
But I found that upon boot it caches the same under /lib/firmware/mt7628.eeprom file which also gets copied on preparing sd card from a linkit.
So when I boot second linkit from sd card it considers the first linkit cache as its own /dev/mtd2 cache and thus the problem.
To solve this, after the sd card image is prepared, remove the file /mnt/upper/lib/firmware/mt7628.eeprom and make a symlink to /overlay-boot/upper/lib/firmware/mt7628.eeprom where /mnt is sd card mount location and overlay-boot is raw flash mount location