$ git clone https://github.com/jclehner/nmrpflash.git $ cd nmrpflash/ $ make
./nmrpflash -L enp0s31f6 192.168.1.8 8c:16:45:22:f5:71 wlp2s0 192.168.1.6 74:e5:f9:e7:79:26
enp0s31f6 showed 0.0.0.0 as IP:
enp0s31f6 0.0.0.0.0 8c:16:45:22:f5:71
Plug LAN cable from computer into LAN port 1 of the router. NOT into the WAN port.
Turn off router.
$ sudo ./nmrpflash -i enp0s31f6 -f ~/downloads/netgear-openwrt/factory/openwrt-ramips-mt76x8-netgear_r6120-squashfs-factory.img Waiting for physical connection.
Turn on router
Advertising NMRP server on enp0s31f6 ...
Wait for flash to finish, restart router, you should be able to ssh into it like the guide says.
Caveats and bugs
There are some things that somehow fail for me from time to time.
It seems that updating to a newer OpenWRT version by flashing a new sysupgrade file completely breaks any access, both via web and via ssh.
nmrpflash, this might happen:
Advertising NMRP server on enp0s31f6 ... Received configuration request from 00:00:00:00:00:00. Sending configuration: 10.164.183.252/24. Received upload request without filename. Uploading openwrt-ramips-mt76x8-netgear_r6120-squashfs-factory.img ... errno=99 bind: Cannot assign requested address
Also, make sure to really plug into LAN port 1, not any other!
N.b.: The following is wrong imo, better to let the tool use automatic IP:
sudo ./nmrpflash -i enp0s31f6 -f ~/downloads/netgear-openwrt/factory/openwrt-ramips-mt76x8-netgear_r6120-squashfs-factory.img -a 192.168.1.200