Build for Netgear R7800


Don't confuse the driver with the firmware, the ath10k-ct driver works pretty well imho.
The ct-firmware still got bugs, but the known dealbreaking ones are very close to getting fixed. I run a test firmware now and it seems to work for me.


I am confused (and curious now). Can you mix driver and firmware from -ct and non-ct?


You can run the official firmware and CT firmware with the ath10k-ct driver
However you cannot run the CT firmware with the normal ath10k driver.

So if you want to switch between firmwares (official/ct) by uploading them manually to the router, just run the ath10k-ct driver.


Any way to turn off the Power LED via software or is it hard-wired? It's nice there's a button for the rest on the back, but still the power LED is too bright and it also leaks through the front grill and it's very annoying when the router is close to a TV.
If not possible, I may have to open it up and put a layer or two fo LightDims on it or paint it.



Add these lines to /etc/config/system :

config led 'led_power'
        option name 'Power'
        option sysfs 'r7800:white:power'
        option default '0'

NB : I'm using the 18.06.2 release


@sohka Thank you! Now let's see, for bonus points, would I be able to trigger it with the switch on the back that turns off the other LEDs or if not with either the WPS or WiFi buttons which I'm not using for their intended functions?

Edit: Looking under /sys, I found brightness. If that works, how does one use it?
Ah, it doesn't work, it's either off (0) or on (any other number 1-255).

I think this is a solution, turn the power LED off after boot and just use the switch on the back to turn the rest of the LEDs off when watching a movie. They serve as power indication when they are on so the power LED is kinda useless (except during boot, fail safe, etc)


Do you actually turn off the router? If you don't, there's really no need to have the LEDs on, I mean if they annoy you that much.
Only time I actually look at the router is when flashing new images, and now I've moved to another room so I don't see it from my desktop.

EDIT: Spelling


True, the lights don't need to be on as long as it all works OK, but I like to see that it's still alive when I walk by and use one of the lights as an indicator that Guest SSID is on for example. I was thinking of using the amber WAN light as a Guest SSID indicator, I run the R7800 in plain AP mode.
The bright lights do make for a nice nightlight though :slight_smile: I wish we could control the brightness level, not just on/off.


the newest -ct build has a new version of the -ct firmware that was merged today. According to the author, there are several stability fixes.;a=commit;h=5a8d03ceebaf50e82ac21dc5f2111387cc361ba0


Yes, works fine for me now. I think the most critical ones were bug 54 and 58 mentioned in that link, caused random fw crashes.


i got this error on boot with version OpenWrt SNAPSHOT r9257-5a8d03ceeb / LuCI Master (git-19.035.52233-21b29f3)

[   51.619071] ------------[ cut here ]------------
[   51.619147] WARNING: CPU: 0 PID: 2296 at /Openwrt/r7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x/ath10k-ct-2018-12-20-118e16da/ath10k-4.19/htt_rx.c:903 ath10k_htt_t2h_msg_handler+0xf2c/0x2650 [ath10k_core]
[   51.622770] Modules linked in: pppoe ppp_async ath10k_pci ath10k_core ath pptp pppox ppp_mppe ppp_generic mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_helper xt_esp xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_HL xt_FLOWOFFLOAD xt_DSCP xt_CT xt_CLASSIFY usbserial slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4 nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack_netlink iptable_raw iptable_mangle iptable_filter ipt_ah ipt_ECN ip_tables crc_ccitt compat chaoskey fuse sch_cake act_skbedit act_mirred em_u32 cls_u32 cls_tcindex
[   51.691308]  cls_flow cls_route cls_fw sch_tbf sch_htb sch_hfsc sch_ingress ledtrig_usbport xt_set ip_set_list_set ip_set_hash_netiface ip_set_hash_netport ip_set_hash_netnet ip_set_hash_net ip_set_hash_netportnet ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink ip6t_NPT ip6t_MASQUERADE nf_nat_masquerade_ipv6 ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 nf_nat nf_conntrack ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables x_tables msdos ip_gre gre ifb sit tunnel4 ip_tunnel tun vfat fat hfsplus cifs nls_utf8 nls_iso8859_15 nls_iso8859_1 nls_cp850 nls_cp437 nls_cp1250 sha1_generic md5 md4 usb_storage leds_gpio
[   51.762118]  xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_of_simple ohci_platform ohci_hcd phy_qcom_dwc3 ahci ehci_platform sd_mod ahci_platform libahci_platform libahci libata scsi_mod ehci_hcd gpio_button_hotplug ext4 jbd2 mbcache exfat crc32c_generic
[   51.784396] CPU: 0 PID: 2296 Comm: hostapd Not tainted 4.14.97 #0
[   51.806429] Hardware name: Generic DT based system
[   51.812611] [<c030f58c>] (unwind_backtrace) from [<c030b7a4>] (show_stack+0x14/0x20)
[   51.817296] [<c030b7a4>] (show_stack) from [<c0791958>] (dump_stack+0x88/0x9c)
[   51.825193] [<c0791958>] (dump_stack) from [<c0318ecc>] (__warn+0xf0/0x11c)
[   51.832219] [<c0318ecc>] (__warn) from [<c0318fb8>] (warn_slowpath_null+0x20/0x28)
[   51.839094] [<c0318fb8>] (warn_slowpath_null) from [<bf7f5fbc>] (ath10k_htt_t2h_msg_handler+0xf2c/0x2650 [ath10k_core])
[   51.846806] [<bf7f5fbc>] (ath10k_htt_t2h_msg_handler [ath10k_core]) from [<bf7f61ac>] (ath10k_htt_t2h_msg_handler+0x111c/0x2650 [ath10k_core])
[   51.857436] [<bf7f61ac>] (ath10k_htt_t2h_msg_handler [ath10k_core]) from [<bf7f7558>] (ath10k_htt_t2h_msg_handler+0x24c8/0x2650 [ath10k_core])
[   51.870280] [<bf7f7558>] (ath10k_htt_t2h_msg_handler [ath10k_core]) from [<bf7f7de4>] (ath10k_htt_txrx_compl_task+0x6f8/0xbb8 [ath10k_core])
[   51.883031] [<bf7f7de4>] (ath10k_htt_txrx_compl_task [ath10k_core]) from [<bf846040>] (ath10k_pci_napi_poll+0x7c/0x11c [ath10k_pci])
[   51.895794] [<bf846040>] (ath10k_pci_napi_poll [ath10k_pci]) from [<c0690240>] (net_rx_action+0x144/0x31c)
[   51.907658] [<c0690240>] (net_rx_action) from [<c03015c8>] (__do_softirq+0xf0/0x264)
[   51.917120] [<c03015c8>] (__do_softirq) from [<c031d00c>] (do_softirq.part.2+0x74/0x84)
[   51.925016] [<c031d00c>] (do_softirq.part.2) from [<c031d0e4>] (__local_bh_enable_ip+0xc8/0xec)
[   51.932758] [<c031d0e4>] (__local_bh_enable_ip) from [<bf8138a0>] (ath10k_ce_completed_send_next+0x40/0x54 [ath10k_core])
[   51.941445] [<bf8138a0>] (ath10k_ce_completed_send_next [ath10k_core]) from [<bf845488>] (ath10k_pci_hif_exchange_bmi_msg+0x2f4/0x754 [ath10k_pci])
[   51.952559] [<bf845488>] (ath10k_pci_hif_exchange_bmi_msg [ath10k_pci]) from [<bf810000>] (ath10k_bmi_execute+0x84/0xfc [ath10k_core])
[   51.965594] [<bf810000>] (ath10k_bmi_execute [ath10k_core]) from [<bf7ef400>] (ath10k_send_suspend_complete+0x2f0/0x60c [ath10k_core])
[   51.977745] [<bf7ef400>] (ath10k_send_suspend_complete [ath10k_core]) from [<bf7ef938>] (ath10k_core_start+0x21c/0xf4c [ath10k_core])
[   51.989810] [<bf7ef938>] (ath10k_core_start [ath10k_core]) from [<bf7e5df4>] (ath10k_start+0xcc/0x61c [ath10k_core])
[   52.001916] [<bf7e5df4>] (ath10k_start [ath10k_core]) from [<bf71a0b0>] (drv_start+0x4c/0x64 [mac80211])
[   52.012495] [<bf71a0b0>] (drv_start [mac80211]) from [<bf72d158>] (ieee80211_do_open+0x18c/0x8a8 [mac80211])
[   52.021919] [<bf72d158>] (ieee80211_do_open [mac80211]) from [<c069127c>] (__dev_open+0xb4/0x118)
[   52.031700] [<c069127c>] (__dev_open) from [<c0691588>] (__dev_change_flags+0xe0/0x184)
[   52.040464] [<c0691588>] (__dev_change_flags) from [<c0691650>] (dev_change_flags+0x24/0x64)
[   52.048278] [<c0691650>] (dev_change_flags) from [<c0708d20>] (devinet_ioctl+0x308/0x7fc)
[   52.056965] [<c0708d20>] (devinet_ioctl) from [<c066fc70>] (sock_ioctl+0x2e0/0x340)
[   52.065038] [<c066fc70>] (sock_ioctl) from [<c04004c8>] (do_vfs_ioctl+0x884/0x908)
[   52.072497] [<c04004c8>] (do_vfs_ioctl) from [<c040058c>] (SyS_ioctl+0x40/0x74)
[   52.080137] [<c040058c>] (SyS_ioctl) from [<c0307e60>] (ret_fast_syscall+0x0/0x54)
[   52.087428] ---[ end trace 5ca48214a3567847 ]---


You should report that at the ath10k-ct bug tracker do that @greearb notices it.

There may even be a bug report about that issue. Please check there.


To make a proper bugreport you also need the full log, from where it says "firmware crashed".
EDIT: Seems like I hit the same thing, I've reported it.


My R7800 recently started behaving erratically. Both on old LEDE builds as new ones.

It only happens when one client is connected (server). It runs for a minute and then reboots.
Tried turning on/off adblock, ipblock, sqm...
What could cause the router to crap out like that?


a) Self induced.... overlooking that something has been added to your setup practices in recent times which was never done before.....

b) New external trigger / general network environment ( i.e. now have a client that sends jumbo frames.... Does something which wasn't being done before )

c) Genuine hardware fault / glitch / inconsistency

d) Not sure about that model..... but if an internal partition that holds drivers / uboot vars / uboot itself / dtb.... was modified in a previous flash....... then unless a proceeding flash overwrites that data, then it will always influence what is happening now on the device.


Jumbo frames from that client. Check the MTU in that client, and decrease it to 1500..
There have been reports about crashes after kernel log shows a few gmac-dwmac error.
Errors like:

ipq806x-gmac-dwmac 37200000.ethernet eth0: len 1675 larger than size (1536)


Solved! Thank you.

Also thank you for your continued effort on these builds.


@hnyman Perhaps I should ask elsewhere but I use your build scripts so here it goes.
For some reason it says is changed, I tried to git checkout on that script but it still says it's changed, I know it used to work previously but not this time for some reason, ideas?


just git stash it for the pull
git stash
git pull
git stash pop
(and "git add" the necessary files back)

and then manual editing of conflicts, if any.
If I remember right, there were no actual conflicts this time.