MT7603EN/MT7612EN Wifi Troubles on Netgear R6220

don't know here, but it's possible.

Now I'm getting a headache, how this works with stock firmware when only one image Netgear supplies.

Can you post output from
maybe filtered
fw_printenv | grep bootargs
to get only the relevant parts.

You maybe need install/enable
to do this

how to set the right /etc/fw_env.config?

Read here
The DTS for the NAND Partitions are not complete, some parts are missing.or names are wrong.

I assume /dev/mtd1 contains u-boot env, which would be the normal case, but check these with the hexdump output at the end of the post.
If not must first search for the right partition ..
... if there, any. But with 128MiB it should

partition@0 {
        label = "u-boot";
        reg = <0x0 0x100000>;
partition@100000 {
        label = "SC PID";
        reg = <0x100000 0x100000>;

And from the bootlog erasesize is 128KiB

/etc/fw_env.enconfig looks like

/dev/mtd1 0x100000 0x100000 0x20000

with hexdump on my WRT 3200ACM this looks like

hexdump -C /dev/mtd1 | head
00000000  b7 d0 0c c0 43 41 53 73  65 74 3d 6d 61 78 00 4d  |....CASset=max.M|
00000010  41 4c 4c 4f 43 5f 6c 65  6e 3d 35 00 4d 50 6d 6f  |ALLOC_len=5.MPmo|
00000020  64 65 3d 53 4d 50 00 53  4d 54 2d 32 44 3d 4e 49  |de=SMP.SMT-2D=NI|
00000030  46 4e 47 34 37 30 33 36  31 42 58 30 31 00 61 6c  ||
00000040  74 46 77 53 69 7a 65 3d  30 78 35 30 30 30 30 30  |tFwSize=0x500000|
00000050  30 00 61 6c 74 4b 65 72  6e 41 64 64 72 3d 30 78  |0.altKernAddr=0x|
00000060  35 61 30 30 30 30 30 00  61 6c 74 4b 65 72 6e 53  |5a00000.altKernS|
00000070  69 7a 65 3d 30 78 30 36  30 30 30 30 30 00 61 6c  ||
00000080  74 6e 61 6e 64 62 6f 6f  74 3d 73 65 74 65 6e 76  |tnandboot=setenv|
00000090  20 62 6f 6f 74 61 72 67  73 20 63 6f 6e 73 6f 6c  | bootargs consol|

Hi guys.

some light here for R6220 users.
Someone send me a dump of his flash.
It looks like Netgear changed the flash size form 128MiB to 64 MiB

But I currently I have no clue how they discovered the "factory" partition or do a save update due the reduced flash size.

I need more images, bootlog from serial and maybe the output of
of the bootloader.

THANKS guys.

Feel free to send me a link for download as PM because it contains your MAC addresses. Any results will be discussed here.

I found a general way:
dump mtd10 in factory rom
flash mtd10 in LEDE and reboot, wifi mac should right
but some of 6220 can not bootup with LEDE

Please see

This is a full backup of each partition via the stock Netgear firmware.
dd if=/dev/mtd0ro of=/tmp/0.bin
dd if=/dev/mtd1ro of=/tmp/1.bin
dd if=/dev/mtd2ro of=/tmp/2.bin
dd if=/dev/mtd4ro of=/tmp/4.bin
dd if=/dev/mtd5ro of=/tmp/5.bin
dd if=/dev/mtd6ro of=/tmp/6.bin
dd if=/dev/mtd7ro of=/tmp/7.bin
dd if=/dev/mtd8ro of=/tmp/8.bin
dd if=/dev/mtd9ro of=/tmp/9.bin
dd if=/dev/mtd10ro of=/tmp/10.bin
dd if=/dev/mtd11ro of=/tmp/11.bin
dd if=/dev/mtd12ro of=/tmp/12.bin
dd if=/dev/mtd13ro of=/tmp/13.bin
dd if=/dev/mtd14ro of=/tmp/14.bin
dd if=/dev/mtd15ro of=/tmp/15.bin
dd if=/dev/mtd16ro of=/tmp/16.bin
dd if=/dev/mtd17ro of=/tmp/17.bin
dd if=/dev/mtd18ro of=/tmp/18.bin
dd if=/dev/mtd19ro of=/tmp/19.bin
dd if=/dev/mtd20ro of=/tmp/20.bin

Missing mtd3, but it's OK since there is are some "private" settings.

at first glance I see Netgar has changes NAND flash size from 128MiB to 64 MiB.

From imway I got a bootlog for 128MIB devices, there is no uboot-env and this is the embedded cmdline
console=ttyS1,57600n8 root=/dev/mtdblock3 console=ttyS0

Any news on this topic? What is the recommended procedure for now? Back to stock, dump partitions and restore mtd10 in lede?

Hello, I'm the new to flash the lede.
After I flash the pb-boot to the bootloader, I flash the Netgear stock firmware (v by using pb-boot. And then the wifi can not be use in stock firmware ( both 2.4g and 5g, the wifi config page become gray and can not be changed ). Can you upload the dump again because the link can not be reach.

Ill look for the files and upload again.
Try my lede build
try to flash one of these:

Until the mac address and device labels are the same

Do you have the scripts you used to build the images? I'd rather build my own than grab an image that I'm not sure about the build environment.

Also, I took the cover off the model I have and it's a v1.4. Loaded snapshot and things seem to be running fairly well. RAM shows full 128M available, but looks like the flash is smaller than the 128M spec'd. 2.4/5 work well and max out my 200Mbit upstream. Both cores show in the dmesg and /proc/cpuinfo shows both cores as well. The bit issue may be something on my internal network, but any direct hardwired connection is capped at 100Mbit. Not sure how to go about further debugging, but I'm setting up a build environment to dig in to it.

I have this issue as well with invalid mac addresses. How did you finally fix it? Did you return to stock then flash again?

I have the same problem with one of my R6220 after flashing OpenWrt 18.06. This is the part of the log file:

[   13.802824] mt76x2e 0000:01:00.0: ASIC revision: 76120044
[   13.815129] mt76x2e 0000:01:00.0: EEPROM data check failed: ffff
[   13.827968] mt76x2e 0000:01:00.0: Invalid MAC address, using random address d6:06:52:db:5b:d0
[   13.869483] mt76x2e 0000:01:00.0: ROM patch build: 20141115060606a
[   13.986357] mt76x2e 0000:01:00.0: Firmware Version: 0.0.00
[   13.997502] mt76x2e 0000:01:00.0: Build: 1
[   14.005787] mt76x2e 0000:01:00.0: Build Time: 201507311614____
[   14.038715] mt76x2e 0000:01:00.0: Firmware running!

5G Wifi is running stable but 2.4G connects break after authentication during association.

Any solution for this issue? I am happy to send more details as required.

I tried to use the instructions posted by @imwsy, installed the working stock firmware and dumped mtd10 (factory mtd) to a file using
dd if=/dev/mtd10ro of=/tmp/10.bin

Afterwards I saved the file to a USB stick.

Next I installed OpenWrt using the default steps:

(login if required, default: admin password)

  • You will see "Debug Enabled!"
  • Telnet and login with "root"
  • ls /mnt/shares/ to find out path of your USB disk. 'myUdisk' for
  • cd /mnt/shares/myUdisk
  • mtd_write write rootfs.bin Rootfs
  • mtd_write write kernel.bin Kernel
  • reboot

OpenWrt started up and I copied the factory mtd backup to my router. But writing it to the factory mtd (mtd4) of OpenWrt didn't succeed:

root@OpenWrt:~# mtd -r write 10.bin mtd4
Could not open mtd device: mtd4
Can't open device for writing!

Any idea how I can flash my factory mtd with OpenWrt?

I continued searching for the reason why I cannot write to mtd4 and found the reason in the corresponding files used to build the image:


The NAND configuration looks like this:

&nand {
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x0 0x100000>;

	partition@100000 {
		label = "SC PID";
		reg = <0x100000 0x100000>;

	partition@200000 {
		label = "kernel";
		reg = <0x200000 0x400000>;

	partition@600000 {
		label = "ubi";
		reg = <0x600000 0x1c00000>;

	factory: partition@2e00000 {
		label = "factory";
		reg = <0x2e00000 0x100000>;

	partition@4200000 {
		label = "reserved";
		reg = <0x4200000 0x3c00000>;

The factory partition has been configured as read-only. That's the reason why the hint from @imwsy is not working anymore with the current pre-built image. If I have the time I will try to build the image without the read-only flag and then use mtd to write the original factory partition to mtd4.

If I understand the trx files (compared to bin) correctly I will have to cut the bin dump before flashing it with mtd.

If anyone in this forum has an understanding of what I would like to achieve and wants to comment on the approach please feel free to provide feedback. I am totally new to this topic, especially building an own image.

For those of you that are interested in the solution provided by @ptpt52 - he has provided his changes in order to workaround the issue with the different flash layouts:

I took his changes and applied them to 18.06 and created a pull request over here:

The R6220A image that I created using this patch works on my R6220 with alternative flash layout.

Currently the pull request is under review by OpenWrt developers. There are concerns that the design of this patch is not good as it is a workaround for the known flash layout in separate images (R6220, R6220A, R6220B). It would be prefered to have one image that automatically adjusts its behavior depending on the flash layout. With the three images users have to flash each image until they don't receive the MAC error message mentioned in the messages above.

I have no clue on how to create a single patch for all different flash layouts.

If the pull request gets denied you can still build your own image based on 18.06(.1) and the information of the pull request. At least this is a solution for everyone who wanted to read the image changes before using it. If anybody requires help with compiling it I can provide you with working images.

My repository is located over here:

It's a fork of the github OpenWrt repository with the changes applied.

The pull request got rejected. You can read through the justification on the website of the pull request.
I can understand the decision that has been taken to keep the code clean. But for the moment it means that the OpenWrt project is not going to support WIFI on the R6220s with alternative flash layout. I will add some hints to the device page for new users who don't know about this limitation for certain devices. This may reduce at least some headaches for new users.

Everyone who wants to invest time and has the skills to analyse this issue further is very welcome. I am happy to support as I have two different models of the R6220 at home.

Hi there,
first of all, thanks for all the hard work. Unfortunately, it seems there's a difference between your github clone with the patch applied and @ptpt52 "a" release. With my router, the latter works all right, while yours still presents the same issue of the official release.
Any pointers? There's nothing wrong with @ptpt52 release, besides being in chinese by default (grrr), but I too preferred compiling the thing from clean sources myself.

EDIT: actually, I want to add a few comments as to why @ptpt52 release is really bad. It's been built in a strange way, with different logos and the web interface doesn't have the package installation module so everything you want to add you need to do it via command line. On top of that, if you ever upload his image with the reset config to default option, your router becomes a brick. I wouldn't suggest using that image at all.

For now, I'm back to stock firmware, which is really bad. I hope to hear from you soon.

I got it to work, in the end. I now have a 18.06.1 release correctly working. All it takes is, just before compiling, to edit the R6220 dts file and replace both occurrencies of "0x2e00000" with "0x2de0000". Compile, install and it just works!
If anybody needs an already compiled one, I can provide it.

1 Like


  1. Make sure your router runs STOCK firmware, download BREED bootloader from, download install images from OpenWRT, put them in a FAT-32 usb stick.

  2. Telnet to the Router, backup stock EEPROM. (To enable telnet, paste in your browser)
    cd /mnt/U/ #enter usb stick path
    dd if=/dev/mtd10 of=./mtd10.bin #backup EEPROM

  3. Flash BREED bootloader
    mtd_write write breed-mt7621-r6220.bin Bootloader

  4. Flash OpenWRT
    mtd_write write rootfs.bin Rootfs
    mtd_write write kernel.bin Kernel

  5. Reboot and check if OpenWRT is installed.

  6. Cut the power off and then power it on with the reset button pressed. In BREED bootloader, flash your stock EEPROM (mtd10.bin).

  7. Reboot and Enjoy!

This solution is based on the hard work of the friends on chinese forums and hier @rsterz , cretids to them!

Edit: @realopty tested on his device and it doesnt work. Maybe its not a final solution...