[Solved] WRT3200ACM - Unable to flash LEDE successfully

The OP of this thread tried a 4.14 image (4.14.11??) some time back to no avail. I have not seen anything come in at kernel.org since to indicate that the fix is in. The 4.14.x patches are now in master so compiling an image is not an issue.

And sadly Linksys has not released the GPL source of the new version, so there is no access to their own modifications.

Somebody with the new router should send a GPL request for Linksys, so that we would get access to the new version.

The link to request form at http://developers.linksys.com/ is visible at their GPL page https://www.linksys.com/us/support-article?articleNum=114663 that currently only contains the old 1.0.6.181063 sources.

1 Like

Thank you, @hnyman! I just made the GPL request. I didn't know we can request the source codes for our devices! This is nice!

The reference number for your request is "24_941518636675554"
You should receive a response from our Support department shortly.

It will still require some digging to the 200-300 MB sized source package.

But I think that in the previous versions they had their own device-support changes in one big patch, like I linked above at message #63:
[Solved] WRT3200ACM - Unable to flash LEDE successfully

as shown in linux-3.10.70_000_BSP.patch in the GPL source code

I would suspect that at this juncture (>2 months since DoM of first units), that a code fix is probably out and about in the wilds upstream. A search of the correct individuals upstream source tree could prove fruitful in finding a patch that could be back-ported temporarily.

Might be worthwhile to test this:
https://git.openwrt.org/?p=openwrt/staging/kaloz.git;a=commitdiff;h=7ae59a2f288ba1cef23b20e1d36e199e8c646245

2 Likes

Nice spot dat. I applied the patch to a 4.14.x build and uploaded an image; loads fine on my rango. Check my avatar.

Edit: and now this would confirm.

1 Like

Cheers! @hnyman @anomeome
I compiled from the repository of kaloz, and it works:

git clone https://git.openwrt.org/openwrt/staging/kaloz.git

It is still using kernel 4.9.77 though. How do I switch to 4.14?

Open issues:

1. The MAC addresses for eth0 and eth1 should be swapped

The linksys firmware uses MAC 60:xx:xx:xx:xx:xx on the LAN. In OpenWRT this MAC is assigned to eth1 and WAN, while br-lan uses 62:xx:xx:xx:xx:xx. This causes problems if static MAC addresses are assigned on the network. The solution is to edit /lib/preinit/06_set_iface_mac. Lines 29-30:

ifconfig eth1 hw ether $mac 2>/dev/null
ifconfig eth0 hw ether $mac_wan 2>/dev/null

where mac_wan is incorrectly assigned to eth0 instead of eth1, should be changed to:

ifconfig eth0 hw ether $mac 2>/dev/null
ifconfig eth1 hw ether $mac_wan 2>/dev/null

2. There are problems with the 5 GHz radios

  • radio0 only works on channels 36-48. Setting it to any other channel: 52-140 does not work, and on some of these the radio keeps restarting, while on others it looks ok, but it does not work.
  • radio2 only works on channels 36-48, and 149-161. Setting it to any other channel: 52-140 or 165 does not work, and on some of these the radio keeps restarting, while on others it looks ok, but it does not work.
  • radio2 only connects at 65 Mbit/s in AC mode, and the TX power changes on its own between 8 and 15 dBm. Attempts to change it from command line say that supported range is 8-21, but it never goes above 15 and the signal is weak even in the same room.
  • radio0, radio1 and radio2 show Country: 98, although they are configured to Country: BG.
  • Sometimes Save & Apply saves, but does not restart the wireless, so it has to be triggered again.

3. When copying a file over SCP

  • router to computer: transfer always stops after exactly 499 974 144 bytes.
  • computer to router: no limit.

Your router, by default, for which region is it destined - Europe or another region?

Yes, Europe, Bulgaria

Strangely, I had a withdrawal of country-98 on the American version of the router when I was installing European countries.

I tried using US, 00 (World), BG (Bulgaria), and EE (Estonia). Each region was set to all radios and the router was rebooted. The reported Country is always 98. Channels 52-140 never work.

I would just clone master, add the 4.14 Winbond patch, edit file:

target/linux/mvebu/Makefile

and make the obvious change.

@gvalkov
See for which region your router is designed -

cat -A /dev/mtd3 |grep cert_region

Thank you, @anomeome
I just downloaded https://github.com/openwrt/openwrt
applied the patch and kernel changes. OpenWRT started successfully: 4.14.20 SNAPSHOT r6198-ba5f700.

Another issue with this build is that if I switch back to the linksys firmware (run altnandboot), all settings are lost. With the kaloz sources they were preserved.

@Valcher
Unfortunately the wireless issues are still present.

cat /dev/mtd3 |grep cert_region
cert_region=EU

No idea of what might be present in that staging tree, so not sure if there are changes or not.

By way of a hint, and apologizes, as this really has squat to due with this thread:
There are changes to mwlwifi after what was pushed to master, the reason being that there were issues being had by some, but the issues were caused by the very last commit. So if you want anything past commit, modify mwlwifi Makefile, and replace patch with earlier flavour of same patch.

@anomeome
I tested the following:
kmod-mwlwifi_4.14.20+10.3.4.0-20171129-1_arm_cortex-a9_vfpv3
kmod-mwlwifi_4.14.20+2018-01-18-a149180f-1_arm_cortex-a9_vfpv3
kmod-mwlwifi_4.14.20+2018-02-06-4464371f-1_arm_cortex-a9_vfpv3
kmod-mwlwifi_4.14.20+2018-02-08-064e888e-1_arm_cortex-a9_vfpv3

My issue is present on all. With 064e888e the router crashed after two minutes. I can see why people are complaining.

I am beginning to think that my issue is with broken code related to the regulatory restrictions. In my case all channels that require DFS (radar detection) do not work.

I remember when I first set the linksys firmware to a DFS frequency, the radio did not work for a couple of minutes, and then started working. Further reboots did not cause any delays. With OpenWRT it doesn't work even after a long time. I tried using wpad instead of wpad-mini, did not help. Any ideas for a fix?

https://wiki.openwrt.org/doc/uci/wireless#dfsradar_detection

If you define a channel in your wireless config that requires DFS according to your country regulations, the 5GHz radio device won't start up unless OpenWRT is able to provide DFS support (i.e. it is both included and enabled)

iw reg get

global
country 98: DFS-UNSET
(2402 - 2472 @ 40), (N/A, 20), (N/A)
(5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW
(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW
(5490 - 5710 @ 160), (N/A, 23), (0 ms), DFS
(57240 - 63720 @ 2160), (N/A, 40), (N/A)

phy#2
country US: DFS-FCC
(2402 - 2472 @ 40), (N/A, 30), (N/A)
(5170 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
(5250 - 5330 @ 80), (N/A, 23), (0 ms), DFS, AUTO-BW
(5490 - 5730 @ 160), (N/A, 23), (0 ms), DFS
(5735 - 5835 @ 80), (N/A, 30), (N/A)
(57240 - 63720 @ 2160), (N/A, 40), (N/A)

phy#1
country FR: DFS-ETSI
(2402 - 2482 @ 40), (N/A, 20), (N/A)
(5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW
(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW
(5490 - 5710 @ 160), (N/A, 27), (0 ms), DFS
(57000 - 66000 @ 2160), (N/A, 40), (N/A)

phy#0
country FR: DFS-ETSI
(2402 - 2482 @ 40), (N/A, 20), (N/A)
(5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW
(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW
(5490 - 5710 @ 160), (N/A, 27), (0 ms), DFS
(57000 - 66000 @ 2160), (N/A, 40), (N/A)

@gvalkov
Try disabling phy#2.
opkg remove kmod-mwifiex-sdio
opkg remove mwifiex-sdio-firmware

@Valcher
Did not help. Both radio1 and radio2 are disabled, since I am not using them. After removing these packages and restarting, phy#2 is no longer present (as expected).

logs
WRT3200ACM wlan0 switch to channel 100
https://pastebin.com/yQgMPPQ3

@gvalkov
Sorry, I looked through my country, in Bulgaria these channels are allowed.

root@wrt3200acm:~# iw reg set BU
root@wrt3200acm:~# iw phy0 info |grep MHz
                        Supported Channel Width: 160 MHz
                        short GI (80 MHz)
                        short GI (160/80+80 MHz)
                        * 5180 MHz [36] (20.0 dBm) (no IR)
                        * 5200 MHz [40] (20.0 dBm) (no IR)
                        * 5220 MHz [44] (20.0 dBm) (no IR)
                        * 5240 MHz [48] (20.0 dBm) (no IR)
                        * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
                        * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
                        * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
                        * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
                        * 5500 MHz [100] (20.0 dBm) (no IR, radar detection)
                        * 5520 MHz [104] (20.0 dBm) (no IR, radar detection)
                        * 5540 MHz [108] (20.0 dBm) (no IR, radar detection)
                        * 5560 MHz [112] (20.0 dBm) (no IR, radar detection)
                        * 5580 MHz [116] (20.0 dBm) (no IR, radar detection)
                        * 5600 MHz [120] (20.0 dBm) (no IR, radar detection)
                        * 5620 MHz [124] (20.0 dBm) (no IR, radar detection)
                        * 5640 MHz [128] (20.0 dBm) (no IR, radar detection)
                        * 5660 MHz [132] (20.0 dBm) (no IR, radar detection)
                        * 5680 MHz [136] (20.0 dBm) (no IR, radar detection)
                        * 5700 MHz [140] (20.0 dBm) (no IR, radar detection)
                        * 5720 MHz [144] (20.0 dBm) (no IR, radar detection)
                        * 5745 MHz [149] (20.0 dBm) (no IR)
                        * 5765 MHz [153] (20.0 dBm) (no IR)
                        * 5785 MHz [157] (20.0 dBm) (no IR)
                        * 5805 MHz [161] (20.0 dBm) (no IR)