Optimized build for Linksys EA6350v3 (civic)

Addressing your question: if you managed to get your WLAN working then you're set with it.

Samba is a program for Linux that is a client and server for the Microsoft SMB protocol. Therefore it works natively in Windows. macOS have it's own version of Samba for working with Windows shares. It's fully configurable inside LuCI by using the "Network Shares": https://openwrt.org/docs/guide-user/services/nas/samba_configuration
No additional software needed in either Windows or macOS, it "just works".

Regarding to if you need only your disk, the answer is "yes". You probably want to format your disk to XFS or EXT4 (as the router is not a server, it has a very limited CPU to use NTFS). You probably want a swap partition: https://help.ubuntu.com/community/SwapFaq which can be reserved inside the disk itself. I recommended 2GB for such a large library. Swap can be added in LuCI, too.

Oh this sounds perfect then! I'm not sure why there's so much animosity on here with you; you've been nothing but super helpful and going above and beyond to help me and I appreciate it a lot more than I could express through this message, so thank you!

Out of curiosity where did you find this?
I looked at the source code released by Linksys and couldn't find any references that they hardset -O3 globally but I might have missed it.

./linux/patches/000_BSP.patch sets the kernel to -O2 unless CONFIG_CC_OPTIMIZE_FOR_SIZE is defined (L5641).

The generic Makefile which is in several directories only mentions -O3 for OpenSSL
./dnsmasq/Makefile (L79)

A few other Makefiles sets -O2 such as ./swconfig/src/Makefile

./src dir of http://downloads.linksys.com/downloads/gpl/EA6350_v3.1.10.191322_GPL.tar.gz which seems to be the newest source available.

Yes, -O3 is the devil. Deal With It, it should be so sad to get sleeples nights thinking about how terrible -O3 is. Good bless your poor sould.

I didn't ever wanted to answer you because you're totaly don't deserve the effort but whatever... At least you keeping my thread alive which, opposed to affect me, it actually helps me. Think that you are smart? Go ahead, keep this thread alive, keep posting nonsenses and whatever you want. Just I'm making sure to flag both your posts and mine as Offtopic.

In case you couldn't tell it's a honest question instead of answering you're turning to insults instead. I guess that answers the question unfortunately....

Insults? If that's true, ask the mod to remove the post. I dare you.

These are some results of the optimizations for the memory subsystem. Of course, more feedback is needed and always welcome!

System under normal load (large adblock list, samba4, minidlna)

Gathering stats info for zswap subsystem

Compressor                - lz4hc
zmalloc zpool             - z3fold
Memory pool               - 18.00 %

Pool total size           - 15.95 MiB
Original data size        - 44.93 MiB
Estimated savings         - 28.97 MiB
Written back pages        - 0
Stored (cached) pages     - 11501
Uncompressible pages      - 4
Compression ratio         - 2.82

Gathering stats info for zram device "zram0"

Block device              - /sys/block/zram0
Device size               - 185 MiB
Compression algo          - lzo lz4 lz4hc [zstd]
Compression streams       - 4

Original data size        - 1.80 MiB
Compressed data size      - 1.58 MiB
Estimated savings         - 0.22 MiB
Compression ratio         - 1.14
Expected c. ratio         - 4.25

Memory used, total        - 1.63 MiB
Allocator overhead        - 0.05 MiB
Allocator efficiency      - 96.71 %
Maximum memory ever used  - 1.79 MiB
Memory limit              - 43.53 MiB

Same pages count          - 0
Pages compacted           - 0
Free pages discarded      - 114232

System after forced load

stress --vm 4 --vm-bytes 250M --timeout 10s

Gathering stats info for zswap subsystem

Compressor                - lz4hc
zmalloc zpool             - z3fold
Memory pool               - 18.00 %

Pool total size           - 3.20 MiB
Original data size        - 8.46 MiB
Estimated savings         - 5.27 MiB
Written back pages        - 10803
Stored (cached) pages     - 2167
Uncompressible pages      - 5
Compression ratio         - 2.65

Gathering stats info for zram device "zram0"

Block device              - /sys/block/zram0
Device size               - 185 MiB
Compression algo          - lzo lz4 lz4hc [zstd]
Compression streams       - 4

Original data size        - 44.04 MiB
Compressed data size      - 10.59 MiB
Estimated savings         - 33.45 MiB
Compression ratio         - 4.16
Expected c. ratio         - 4.25

Memory used, total        - 11.56 MiB
Allocator overhead        - 0.98 MiB
Allocator efficiency      - 91.55 %
Maximum memory ever used  - 11.77 MiB
Memory limit              - 43.53 MiB

Same pages count          - 0
Pages compacted           - 0
Free pages discarded      - 148670

Swap usage after the forced load

root@EA6350v3:~# stress --vm 4 --vm-bytes 250M --timeout 10s
stress: info: [21889] dispatching hogs: 0 cpu, 0 io, 4 vm, 0 hdd
stress: info: [21889] successful run completed in 11s
root@EA6350v3:~# swapon -s
Filename				Type		Size	Used	Priority
/dev/sdb1                               partition	4194300	0	-2
/dev/zram0                              partition	189436	49308	1

For the future release (nov 15, 2019) you can check all of that information by running zram status in your terminal/shell (however you call it).

This is a preview of the usage of the syscfg partition (OEM partition) for storage of packages and the configuration. In the current release (v0.19), commands like firstboot and the LuCI update page will not work as expected.
Because the image already contains a selection of software, this gives the user a plenty of room to install all packages needed.
The current version under testing (not yet public) works as expected under all conditions. It's not a normal extroot, it have many ad-hoc scripts designed to make OpenWrt understand the new scheme.

The VLAN patch works for me, VLAN ID3 on WAN port.

1 Like

As promised and after some testing and tweaking, a new version is available. This version may break your configuration so be careful.

An issue was found:
When performing the update using LuCI and keeping the "Keep Settings" mark, the firmware won't flash. In the sense that the device will reboot and look like it's upgrading while it's not. You can confirm that the firmware was not correctly written to the alternative partition by looking at the "Advanced Reboot" page and observing that the alternative partition does not show the new kernel version installed. Rebooting to the alternative partition will result in a bootloop that will revert to the latest working firmware.

This problem is mitigated by performing an upgrade without keeping your settings from the LuCI webpage. I'm to confirm if the sysupgrade command works, but what is for sure is that flashing and keeping your settings using LuCI does not.

I can confirm that this error happens only when using LuCI.

1 Like

In this "release" (157e17-v0.22), the last set of bugs were fixed. However, LuCI does not perform the upgrade correctly. I've attached a serial console to the device while upgrading from LuCI, but I was not able to find anything relevant in the output. This bug stills unresolved at the moment.

Anyway, this "release" includes the first "release candidate" (that means, this software has just upgraded from beta to "stable") of the Compressed Memory. This includes a new LuCI app, which you can test and provide the feedback in the linked thread.

Also, this version will include NTFS support out of the box and will disable some unused (never requested by users) features, nothing "visible" to the average user of this build (several kernel packages removed, for advanced users).

Some "verbose" output where reduced and some minor fixes where made for the run-once script (bootz) and the early boot script (prebootz). The 30_ubi_attach.sh preinit script is less verbose now (useful when debugging via the serial console).

1 Like

This is a manteinance "release". It's designed to update to the latest snapshot. Download link and information, as always, at the very first post.

In this "release": the Compressed Memory now have a special parameter checking in LuCI.

No further changes were done, only the update to the latest packages from the snapshot.

Hello! After reading a little I bought an ea6350v3 to run your firmware!

I have set it up to connect as a wifi client to relay to ethernet (installed relayd and luci-proto-relay from https://downloads.openwrt.org/releases/19.07.0/packages/arm_cortex-a7_neon-vfpv4/ as they were not available by default).

I had to completely disable odhcpd as the uci settings did not seem to work and clients kept getting wrong IP addresses!

I also installed iperf3 and get about 200 mbps to the router over AC wifi. Is this about right?

I wondered if all of the patches from here have made it into this build yet, and if not, whether they might make some difference?

Thanks @NoTengoBattery for supporting this, it's a really great firmware :slight_smile:

Hi. Normally, disabling odhcpd should do the trick. If you want, you can disable the boot script that runs odhcpd. Just don't disable the DHCP client (which is udhcp or something like that).

Wireless performance, as reported by other users, is near to ideal (the full 700+ Mbps with fast NAT enabled in the firewall), so it's actually unexpected, more known that the device is not natting or shaping the traffic.

The patches you attached are already in the build and I tried to use hardware acceleration, but the crypto module is actually way slower than the software solution (except for 512+ key length and block size, which I've never seen in the wild). So it's disabled by default because if the device is not thrashing the CPU, it's faster. Also, the encryption of the wireless is (normally) done inside the wireless chip, without CPU intervention.

But, you can probably see in the LuCI statistics page if the device is getting overloaded. If that's the case, maybe using the hardware crypto may help.

You can see some raw testing (the only ones made public) here:

Wow these results are indeed much faster than I am seeing. My laptop is AC1200 as well I think, and I am testing very close to the router, so it should not be limiting performance.

I have the latest overclocked firmware installed (2020_01_03_1de8f-v0.30.oc) but did not install any of the packages. Should I have irqbalance or something to improve performance? Is there anything obvious I could have misconfigured? I basically followed the guide here, but there were a couple of places where it is not completely clear.

The device does not seem to be overloaded, and I am not running any additional services besides relayd.

If I can improve performance I'd like to buy another to put elsewhere in my house, as I have a lot of machines without modern wifi cards (or wifi at all) and running cat6 around the house is not something I want to do at present.

Sorry, I am a complete noob with this. I will test again this evening and double check my settings. Thanks for your help.

EDIT: I've just been looking again at my settings, and everything looks OK, but the wireless status page shows that my laptop is only connected at 300mbps (n mode, I guess). It is ac capable (Intel Corporation Wireless 8260) but I can't figure out how to force it to use ac, or if there is a driver problem (running linux on the laptop, for what it's worth).

EDIT2: Cannot for the life of me figure out how to get my laptop to connect faster than 300mbps... so I decided to take a different approach and connected with an ethernet cable to my main wifi router to run iperf3 from my laptop to the ea6350v3:

Connecting to host, port 5201
[  4] local port 60278 connected to port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  60.6 MBytes   508 Mbits/sec    0    983 KBytes       
[  4]   1.00-2.00   sec  68.1 MBytes   571 Mbits/sec    0    983 KBytes       
[  4]   2.00-3.00   sec  68.5 MBytes   575 Mbits/sec    0    983 KBytes       
[  4]   3.00-4.00   sec  68.9 MBytes   578 Mbits/sec    0    983 KBytes       
[  4]   4.00-5.00   sec  69.0 MBytes   579 Mbits/sec    0    983 KBytes       
[  4]   5.00-6.00   sec  68.4 MBytes   574 Mbits/sec    0    983 KBytes       
[  4]   6.00-7.00   sec  69.0 MBytes   579 Mbits/sec    0    983 KBytes       
[  4]   7.00-8.00   sec  68.3 MBytes   573 Mbits/sec    0    983 KBytes       
[  4]   8.00-9.00   sec  68.5 MBytes   574 Mbits/sec    0    983 KBytes       
[  4]   9.00-10.00  sec  65.2 MBytes   547 Mbits/sec  103    757 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   674 MBytes   566 Mbits/sec  103             sender
[  4]   0.00-10.00  sec   671 MBytes   563 Mbits/sec                  receiver

Oddly, if I go in the other direction (with my laptop running as iperf3 server) I get less than 10mbps. But I can only assume that is not a problem of the ea6350v3 but something elsewhere.

Anyway, a massive improvement so I think I'll be getting a second ea6350v3 for another room! :smiley:

If you are willing to try something, you can rename your wireless to blabla for 2.45 GHz and blabla5 for 5.8 GHz and then manually connect to the later (you can, for example in macOS, select the priority only if the networks are named different).

Another thing worth trying is the calibration board file. In the discussion I liked you in my previous post, we were doing that: testing the calibrations. My image contains a script and all of the needed files to test one by one. There are reports of slightly different hardware and that's why Linksys added a bunch of different calibrations. I don't know how to automatically select them so the script can help you to do it manually.

Also, there is another thing worth trying: using the open source driver and the OEM firmware for the wireless chip instead of the Candela Technology version. I will be uploading the v0.31 soon with 2 versions of the overclocked firmware: one with the Linux drivers and other with the Candela drivers, so you can test deeply and report back for users with similar problems.

Beside from it, I see no other possible reason of what can be failing given that other users don't report the problem. Please let me know any questions or if you are interested in testing the alternatives I've talked about.

Thanks a lot, I appreciate your help. I already have the networks named differently (actually the 2.4GHz is disabled on the ea6350, but on my main router they are differently named as well). My laptop only gets about 200 Mbps to the ea6350 5GHz AP, but when I look on the luci wireless page I can see that it is only connecting at 300 Mbps and using 40 MHz bandwidth. It should support 867 Mbps (which I think would be 80 MHz bandwidth) but I think this is a problem with my laptop configuration, rather than the router. The ea6350 is connected as a client to my main router at 867 Mbps with 80MHz bandwidth, and I am getting almost 600 Mbps across that link as shown in my last post, so everything is mostly working fine except for my laptop configuration. I am happy with 600 Mbps, as my application here is to bridge my main wifi network to a bunch of ethernet devices connected to the ea6350, so my laptop was only being used for testing the link: Normally I disable the AP on the ea6350 completely and only use its wifi as a client to the main router.

However any improvement in performance above that 600 Mbps would also be great, so I will give the calibration files a try and also try the open source driver when you are ready to release it, and will report back my findings here.

It's worth noting that my main router is a closed box (bt business smart hub) so could be causing delays, though it gets good reviews and is rated at 1700 Mbits for the 5 GHz bands, so should be able to keep up.

fwiw, my Dell Win10 laptop has an Intel AC 7260 2x2 802.11ac wifi card. Windows and LuCI reports it connects at 867 Mbps to as low as around 585 Mbps with laptop being only 3m away from the router.

I've used an old snapshot r10269 as well as 19.07.rc1/2, though the hostapd 2.9 bug has since been fixed in 19.07.1 release.

I use my EA6350v3 as an Access Point. I eventually returned to using Linksys OEM firmware (AP 'bridge' mode), to fix wifi compatibility issues with an old 2.4GHz device, and also with Intel 6300 windows wireless card driver on other laptops I own.

Your issue with Intel 8260 wifi card sounds like another compatibility issue. Are you using Windows?

Bill, what's exactly your compatibility problem? I want to fix it and make it behave like OEM, if I can.