Netgear R6350: max power for 5GHz lower after upgrading to 21.02 RC1

The factory partition is /dev/mtd5. Here is the file
https://fieryeagle.org/factory.mtd

That looks weird... Looks empty almost?

This is e.g. how it looks on one of my devices (radio calibration data at 0x8000):

$ hexdump -C radio |grep 08000
00008000  63 76 00 01 00 0c 43 26  60 88 63 76 c3 14 00 80  |cv....C&`.cv....|

The fact reverting to 19.07 still shows broken wireless might imply something went wrong during flashing 21.02 somehow. I'd try the following:

  • Revert to Netgear OEM firmware.
  • Flash 19.07, back up a copy of /dev/mtd5 (hopefully the Netgear firmware restores it, but there's a chance it does not...).
  • Install 21.02, check /dev/mtd5, and if it's showing the same content as now try restoring it from the backup (you'll need the kmod-mtd-rw package for that).
1 Like

Two questions,

  1. How do I make a copy of the partiton?
  2. What are my options in case flashing OEM firmware does not fix it?

Well 19.07 worked, so it's reasonable to assume flashing that from OEM won't touch the factory partition. You already have a backup of the (dysfunctional) factory partition. Just use the commands again like I explained.

If that doesn't work then you'll need someone to help you with a backup of their R6350 factory partition. It's not optimal but it should get your device going again. Calibration data is normally specific to your device.

I have good news, so I flashed the OEM firmware using nmrpflash and crossed my fingers and went straight to 21.02RC, and it works! My headache is finally over and I can now take a nap

1 Like

That's great. Do make a backup of /dev/mtd5 though, so if you run into this again for whatever reason, you can restore it.

Can you share your calibration for R6350,

Thanks,

@Borromini I am having same issue on R6350 after upgrading to 21, does this looks good? or I have same issue above?

root@LAPTOP:/mnt/c/Users/me/Downloads# hexdump -C mtd5.bin | grep 08000
00008000  15 76 11 00 14 59 c0 ca  4c 16 15 76 c3 14 00 80  |.v...Y..L..v....|

That looks okay to me, starts with 76 15 to be sure you could downgrade to 19.07 (don't forget to wipe configs) and check, but I reckon it will be the same.

Hi @Borromini, I found this thread when I got the same problem on flashing a brand new R6350 with 21.02.01.
After reading this thread, I tried the following - all of them have the 5 Ghz wifi max transmit up to only 6 dbm:

  1. nmrpflash factory img, then flash 21.02.0-rc2
  2. nmrpflash factory img, then flash 19.07.8
  3. nmrpflash factory img, then flash 19.07.1

I tried the last 2 because I thought they would have predated the "bug" when upgrading from factory img.

I would appreciate your suggestions what other images to try, when do you believe this bug was introduced? And how do we report this bug so they can revert to the working one in the latest builds?

Edit: I flashed your Sercomm patch builds for the R6850 from the R6850 low power thread. It turned the R6350 into an R6850, and wifi looks fixed now, will test some more later.
Questions: now should I just stick to R6850 builds rather than R6350 builds?
If I flash a later stable build, is it going to unfix the problem again?

Thank you!

Hi @FieryEagle954 - which version of OEM firmware did you flash? Is it 1.1.0.78 or earlier? I'm wondering if different versions of OEM firmware have different factory partition layout??

Hi there, sorry to hear you're having the same issue as me. Since this was a little bit ago I have absolutely no memory of what version of the OEM firmware I used. All I did was nmrp flash the newest OEM firmware and then the then newest OpenWRT build and it has been working fine ever since

Hi @FieryEagle954 - thanks, based on the timing of your posts, I tried to nmrpflash factory img 1.1.0.78 (Dec'20) and then flash 21.02rc1 (Jan'20) but still no luck.
Would you be able to share a copy of your mtd5 factory file? I think mine is corrupted and not getting updated at all because every time the hexdump shows "15 76 00 ..." starting at 00048000 instead of 28000 or 8000.
Thanks!

I see you already installed the R6850 build, it's been a while and I don't have either R6850 or R6350, so I can't tell the exact differences. You've been lucky, since e.g. flash layout might differ and flashing builds for another device might easily wipe your radio calibration data altogether, rendering wireless completely unusable. So please don't do that again in the future.

And yes, reverting to vanilla OpenWrt images will make the problem show up again. The patches used in my build parse the bad block table of the device, which vanilla OpenWrt doesn't.

The bug's been reported and patches have been sent in by someone, but they're not in a state to be merged. That being said, you can build an image with them and they should work, or you build an image with a modified DTS. The latter is the easier approach: check the address of your calibration data (like you already did for one radio), and adapt the DTS accordingly, then build an image. You have two radios, so you have two addresses in your DTS. You need to modify both, usually by the same offset (I haven't seen it otherwise yet).

Thanks @Borromini a lot for your comments, guess I was lucky!

I tested my "new R6850" and wifi seems to be working fine.
I noticed the mtd partitioning is different now. Factory used to be on mtd5 on the R6350, but now it's on mtd16 on the R6850.
P.S. I also opened a bug referencing this post and said I tested your fix. Thanks a lot for building it!

Question: should I stick with R6850 builds from now on and never go back to R6350 builds to be safe? The funny thing is when my device was the "R6350" the DTS info was at 0x48000 on mtd5, and now with the "new R6850", it's at 0x08000 on mtd16. How does this work?

One more question: what's the best tutorial for setting up openwrt build environment? Is it better on Ubuntu or Macbook Pro? I'll look into that during Christmas break.

Hi @Borromini , I'm using your r6850 builds with sercomm parser from here
https://volatilesystems.org/dl/lede/targets/r6850/
on my R6350 with bad eraseblocks that forces the DTS info to be at 0x48000.
so far it works great, but I cannot install or update any packages, always comes back with:
The installed version of package kernel is not compatible, require 5.4.162-1-58214f1a… while 5.4.105-1-7684bdfb… is installed.
image

when I try to install kmod-mtd-rw, or sqm

it seems upgrading kernel is not allowed, but if I go to a newer snapshot, my wifi 5Ghz goes back to too low power.

Any suggestions? I know I should try to learn to build it myself... Thanks!

It's an old personal build, so vanilla OpenWrt kernel packages won't work. You need a vanilla OpenWrt build for that (or one you roll your own with the extra packages compiled along).

Hi @Borromini - I got it work as follows:

  1. sysupgrade from your build to latest stable release
  2. Install kmod-mtd-rw and make mtd writable, e.g.
    insmod mtd-rw.ko i_want_a_brick=1
  3. overwrite mtd5 with a saved factory bin with 5Ghz DTS starting at 08000, that I saved when I was using your build, i.e.
    mtd write openwrt.factory8000.bin /dev/mtd5

Now I'm on the latest stable with working wifi!
Couldn't have done it without your build, thanks!

1 Like

Clever! Great to hear you found a workaround!

Thanks! It was your idea to save and apply the mtd. I just put the two together :slight_smile: