D-Link DIR 601 Unable To Change MAC Of WAN Port

I have the latest 15.05 OpenWRT on my DIR 601 A1 router, which I am setting up to use as an Ethernet-only switch. It is crucial for this setup that I am able to change the MAC address of the outbound WAN port, but for some reason I can't do that. I am able to change the LAN ports' MAC in the settings just fine with the Override MAC feature, but this always fails with the WAN port.

I have also tried SSHing into the router and using command-line tools to do so (ifconfig eth1 hw ether new-mac-address) but this fails as well, returning output of "ifconfig: SIOCSIFHWADDR: Operation not supported".

I've even gone as far as trying to rewrite partitions on the router as root, similar to the process of what's outlined in this guide here. It appears the MAC is stored in /dev/mtd6 on a partition called "mac", albeit not in the same way as what's outlined in the stackoverflow guide mentioned. Regardless, I was able to cat it into an image file, edit the image and repack it with my new MAC as a new image, but once it comes to overwriting the old partition with the new one it always fails with an "operation not permitted" error. Even doing a chmod of 777 on mtd6 prior yields the same result.

I'm stuck here... what should I try next? Or is this MAC written to some special part of the router's board that can't be changed without hardware mods or something?


The latest would be either 17.01.5 or 18.06.0

As a long-shot, have you confirmed that the MAC address you are trying to set is a valid one?

Another thing to try is with the interface not bridged (and "down"), as once an interface gets enslaved by a bridge or masters one under Linux, its behavior changes.

As a completely last resort, and I'm not suggesting this without having a full backup of your flash and a programmer in hand that you know you can restore the flash with, you might want to look at https://openwrt.org/docs/techref/mtd