What's new

Custom firmware build for R7800

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

thiggins

Mr. Easy
Staff member
[Ed note: I am posting this for Voxel since he had problems.]

Hi all,
I publish my custom firmware for R7800 owners. People using my firmware suggested me to start topic here, in this forum. Open Router forum is not so friendly for participants and sometimes people are just unable to publish their posts.
I included modifications similar to what I already did for R7500v1 (and plus something more):

http://myopenrouter.com/forum/modified-firmware-r7500v1-use-entware-ng-and-debian

Topic in the Open Router forum (my firmware) is here:

https://www.myopenrouter.com/forum/custom-firmware-r7800-extend-its-functionality

This custom firmware is based on the stock firmware but with following advantages:

Compiled with optimization for Cortex A15 CPU (IPQ8065 is Krait, so its architecture is practically the same as Cortex A15, the same set of extended instructions vs generic ARMv7-a)

Compiled with “-O2” optimization for all projects, plus “-O3” optimization for several key packages (performance)i

New toolchain (compilation tools) is used (stability, more optimal codes)

SSH server is included (dropbear)

Possibility to extend the functionality of router with additional software packages (Entware-ng/Entware-3x, more than 2000 additional packages and/or chroot-ed Debian)

OpenSSL is optimized with assembler optimization, so OpenVPN should work much faster

Possibility to use own CA/CERT/KEY/DH files for OpenVPN (your own OpenVPN server settings)

Additional packages such as e.g. Transmission, bittorent cient with its GUI, dnscrypt-proxy (your privacy) etc.

Updated a lot of old packages used in stock FW to most recent versions taken from OpenWRT

Several bugs in stock FW are corrected

Etc. etc. etc

If somebody wants to try, start with readme.docx first (how-to)
The links are:
readme.docx https://yadi.sk/i/ipLqXywqqpz8b
setssh.tar https://yadi.sk/d/Y8l57YP2qpz8h
entware-cortex-15-3x-initial.tar.gz https://yadi.sk/d/YROkl3T5xeCpR
entware-cortex-a15-3x.tar.gz https://yadi.sk/d/DTr4u2IRxe8AF
entware-initial-official.tar https://yadi.sk/d/kXzTB9k2qpz8E
debian-jessie-armhf.tar.gz https://yadi.sk/d/_JnHJaGBqpz7z

My custom firmware 1.0.2.21SF: https://yadi.sk/d/KEqUa7j738b72u

P.S.
The file readme.docx refers to Entware-NG, but it is suggested to use more advanced version of Entware, i.e. Entware-3x. Links are above.

P.P.S.

Full changes log of my firmware versions:

1.0.2.21SF
1. Integration with stock 1.0.2.20.
From Netgear notes to 1.0.2.12:
New Features and Enhancements:
* Opens the DFS channel for Japan.
* Supports the access control feature when the router operates in AP mode.
Bug Fixes:
* Fixes the issue in which the IPV6 SPI-filter doesn't work when IPv6 use same PPPoE session as IPv4.
* Fixed some minor bugs.
Additional changes (found during my integration):
* ReadyCLOUD version is upgraded.
* Qualcomm drivers (firmware) are upgraded (5GHz).
* GPIO driver is changed (kernel level).
* Kernel signal scheme (interaction with Busybox) is added.
* WebGUI is optimized a bit.
* Netgear Downloader is optimized a bit.
2. ethtool version is upgraded 3.4.1->4.8.
3. e2fsprogs versinon is upgraded 1.43.1->1.43.3.
4. Changes several scripts to use direct path to firmware /bin/opkg (to avoid conflicts with opkg from Entware).
5. Bug with HiLink modem mode switch is correctd (tested by Vladlenas with Huawei E3372 HiLink modem).
6. Minor Netgear's bugs are fixed.


1.0.2.16SF
(Internal release)

1.0.2.15SF
1. Samba: config file is optimized.
2. OpenVPN: version is upgraded 2.3.13->2.3.14.
3. Toolchain: GCC compiler version is changed and its most recent OpenWRT & Debian patches are used.
4. Toolchain: uClibc most recent patches are added.
5. Toolchain: several host tools are upgraded.
6. Uhttpd: cyassl is changed to openssl (speed).
7. Cyassl: lib is removed to save space (not used now).
8. Transmission: bug in /etc/init.d/transmission is fixed.
9. Transmission: now user can use own config files in directory "transmission" kept on the root of external disk or in /etc/transmission.
10. Kernel codes are a bit optimized (acpuclock-ipq806x.c acpuclock-krait.c acpuclock.h).
11. If /.nocloud or /.nokwilt files are present, update and install of ReadyCLOUD/Kwilt will be disabled.
12. Several Netgear's minor bugs are fixed.

1.0.2.14SF
(internal release)

1.0.2.13SF
1. Integration with stock 1.0.2.12.
From Netgear notes to 1.0.2.12:
New Features and Enhancements:
* Added WiFi 5G band support for FCC DFS channels 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140.
* Upgraded OpenSSL cryptography library from V1.0.0 to v1.0.2h.
Bug Fixes:
* Fixes security issue in which TCP port 80 and port 443 were always opened in IPv6 environment.
* Fixes security issue in which remote management interface still could be accessed even if it was disabled when the request
* Fixes security issue in which R7800 reboots when using $(reboot) as user name to register ReadyCLOUD.
* Fixes the issue in which the flash drive connected to USB port2 cannot be added into approved USB devices list.
* Fixes the issue in which the desktop genie was unable to access R7800 remotely.
* Fixed other minor bug fixes.
2. New Netgear's ReadyCLOUD installer archive is moved from FW to external download to save space (installed automatically from Google drive).
3. OpenVPN version is updated 2.3.12->2.3.13.
4. zipsplit/zipnote/zipcloack are removed to save space (not used).
5. sqlite-cli package is removed to save space (not used).
6. libvorbisenc/libvorbisfile are removed to save space (not used).
7. /bin/config and /bin/readycloud_nvram are now symlinks to /bin/nvram
8. dnscrypt-resolvers.csv is updated.
9. Added possibility to use UVC webcam (changes in kernel header).

1.0.2.12SF
1. QoS script is updated to allow settings own download/upload limits (problem reported by UK Sentinel).
2. Missing patch in Netgear's GPL is added to fcgi package, extracted from old stock 1.0.0.40 (the same QoS problems).

1.02.11SF
(Internal release, 2 versions)
1. TCP congestion control is changed back to YeAH (more fast accordingto my tests).
2. ntpclient is changed to support LTE modem connection.
2. sqlite version is updated. 3120200->3130000
3. tar version is updated. 1.28->1.29
4. libusb version is updated. 1.0.19->1.0.20
5. libxml version is updated. 2.9.3->2.9.4
6. wget version is updated. 1.17.1->1.18
7. dnsmasq.conf is changed to allow use of /etc/hosts file.
8. dnscrypt-resolver.csv is updated.
9. Cosmetic changes: now /etc/dnscrypt.conf and /etc/netwall.conf can be used instead of /root/dnscrypt-list and /root/netwall-rules. Similar use.
10. Changed logic of LTE modem detection.

1.0.2.10SF
1. TCP congestion controls:
a. Now the following algorithms are available, user can select: westwood+ reno cubic vegas yeah Illinois.
b. Default algorithm is weswood+.
2. Some minor bugs made by Netgear are corrected.
3. OpenSSL version is updated. 1.0.2h->1.0.2j
4. OpenVPN version is updated. 2.3.11->2.3.12
5. Beta support of LTE modem in hostless mode, i.e. HiLink (when plugged into your computer, it appears as an Ethernet device rather than a USB device). I.e. you use your browser to control this modem by its WebGUI, not "Connection Manager"
To use it you should attach modem to USB port. If no LTE modem is attached, router will operate as usual.
6. minidlna: The string "root_container=B" is added to default minidlna.conf.
7. Correction of problem with ReadyCLOUD reported by Zeljko1234.
8. I updated build tools to more fresh version. It is internal purposes (to build firmware). But might be something will be more stable.

1.0.2.09SF
(Internal release, partial changes for public release)

1.0.2.08SF
(Internal release, partial changes for public release)

1.0.2.07SF
1. swapon/swapoff/mkswap utilities are added to firmware. Now it is not necessary to install Entware-ng to make and enable swap file for Transmission, so you can use Transmission w/o Entware-ng installed. Swap file is enabled automatically if it is in: /opt/swap or /mnt/sda1/swap or /mnt/sdb1/swap (i.e. in the root of you external drive or in /opt). Independence from Entware-ng
2. Cache is added to dnsmasq config file (thanks to Robysax for his suggestion).
3. dropbear version is updated (a lot of security fixes). 2016.73->2016.74
4. OpenVPN version is updated. 2.3.10->2.3.11
5. e2fsprogs version is updated to most fresh version (June 2016).
6. sysctl is updated with the sting:
net.ipv4.tcp_congestion_control = yeah

1.0.2.06SF
(First public release based on stock 1.0.2.04).
1. Integration with stock 1.0.2.04 GPL.
2. Added use of own CA/KEY/DH with OpenVPN server.
3. Packages misssed in 1.0.2.04 GPL are restored (extracted from binary FW).

1.0.1.32SF
(Initial internal release based on stock 1.0.1.30).
1. Kernel codes are patched to remove "777-access" problem of Netgear.
2. 44 packages total are updated to new versions including fresh build tools (compiler, gdb, binutils etc).
3. Compilation flags are changed to use optimization of IPQ806x CPU and general optimization (-O2)
4. Several new packages are added including dropbear, transmission, dnscrypt-proxy etc.
5. WebGUI bug (incorrect TZ) is corrected.
6. Support of Entware.
7. A lot of chages similar to changes for R7500v1.

Voxel
 
Thank you for letting us know about this firmware. It looks interesting...

I will try it when I am able to take my R7800 router off line to update.

I usually keep checking on this forum on a regular basis. In the past when I have looked at "www.myopenrouter.com", the only R7800 Firmware I saw was the Kong DD-WRT Firmware and not this one. I wonder why I never found this one.
 
Hi rbird2,

My firmware is there in openrouter forum downloads, but it is not so easy to find. I guess that Netgear dislikes my job ;-) So it is additional why I try to change to this forum.

Voxel.
 
"These custom firmwares are based on the official stock FW versions for NG Nighthawk X4 R7500 v1 router and Nighthawk X4S R7800 router. The goal of modification is to extend the functionality of these routers and to use full power of CPU and FPU of IPQ806x processor, limited in official firmware".
 
Small add-on to my firmware, UVC webcam support, some kind of IP camera made from R7800:

Who wants to use USB webcam with R7800 for live streaming (Linux-UVC compatible webcams are supported, my last FW 1.0.2.21SF should be flashed):

https://yadi.sk/d/sQtrSsQW33VyRy

1. Download archive from the link above, unpack and copy the following files:

kmod-uvc-video_3.4.103-1_ipq806x.ipk
libwebcam_0.2.5_ipq806x.ipk
mjpg-streamer_r182-8_ipq806x.ipk
uvcdynctrl_0.2.5_ipq806x.ipk

to your R7800.

2. Install kernel modules for UVC-video support from console (use full path to opkg):

/bin/opkg install kmod-uvc-video_3.4.103-1_ipq806x.ipk

3. Install mjpeg-streamer (use full path to opkg):

/bin/opkg install mjpg-streamer_r182-8_ipq806x.ipk

4. Enable mjpeg-streamer to be started automatically after reboot:

/etc/init.d/mjpeg-streamer enable

5. Reboot your router and check if you can see your webcam picture (mjpeg-streamer example page), i.e. open in your browser IP of your router, port 8080, e.g. http://192.168.1.1:8080

You can change the resolution and FPS modifying /etc/init.d/mjpeg-streamer file. I set 864x480, 30fps.

You can also use other optional Webcam Video Surveillance packages from Entware, for example motion, not using mjpeg-streamer. But mjpeg-streamer above does not require Entware installation.

uvcdynctrl_0.2.5_ipq806x.ipk and libwebcam_0.2.5_ipq806x.ipk are needed to install uvcdynctrl (camera control tools) if you need to change default camera controls such as focus, exposure, white balance temperature etc. Install first libwebcam then uvcdynctrl.

I checked with my two Logitech webcams (C525 and C920HD). Should work with other Linux-UVC compatible webcams).

Voxel.
 
Thank you for letting us know about this firmware. It looks interesting...

I will try it when I am able to take my R7800 router off line to update.

I usually keep checking on this forum on a regular basis. In the past when I have looked at "www.myopenrouter.com", the only R7800 Firmware I saw was the Kong DD-WRT Firmware and not this one. I wonder why I never found this one.
Does this firmware include fq_codel in QOS? Ddwrt has this, but my wifi signal decreased when I installed it.
 
Been hoping for more third-party firmware for the R7800...good news that this is available and feedback from users is good.

Thanks Voxel, appreciate your work!
 
Csection:

fq_codel should be a part of Netgear’s “intellectual” QoS. I do not like any QoS and do not use it, and did not investigate it in deep, but there are several references in GPL of stock firmware (and thus in my modification) to fq_codel, e.g. top config:

CONFIG_NET_SCH_FQ_CODEL=m
(i.e. kernel object FQ_CODEL is set to be built)

then, init files for QoS:

40_qdiscman:

# $1: dev
# $2: parent
# $3: handle
# $4: qdisc type (default = fq_codel)
# $5: extra opts

and a lot of other references in codes. So I can conclude that it is a part of Netgear’s QoS available in my FW too. I did not get any reports from users of my FW that QoS enabled influences to Wi-Fi signal.

RogerSC:

Thanks for your thanks ;-) In general I started with this for myself, when I realized that two of my R7500v1 got the status “end-of-life” by Netgear and there will not be any WRT for them. So I have to either shelve them and forget about wasted money because of stock FW limitations or to do something myself to justify a hole in family budget ;-) So when I succeed, I just shared my results. And when I could get R7800 instead of one from R7500, I continued with R7800.

Voxel.
 
"These custom firmwares are based on the official stock FW versions for NG Nighthawk X4 R7500 v1 router and Nighthawk X4S R7800 router. The goal of modification is to extend the functionality of these routers and to use full power of CPU and FPU of IPQ806x processor, limited in official firmware".


And? Maybe my English is not good enough? What is not clear?

Voxel.
 
After flashing and your settings, you need to have SSH access to router.

Is this if you want make/paste some scripts or is this always needed to do?
Is the flashing procedure the same as for the chk files?
And if some one want go back to stock, how they do that?
 
pege63:

SSH access is set once and is kept until new firmware flashing. Usual scheme with authorization by keys for SSH (/root/.ssh/authorized_keys). After you flash your router again (for example by my new release), this file (/root/.ssh/authorized_keys) is erased from overlay, so you should either repeat this procedure with USB stick or restore it from your own backup manually using telnet (enabling telnet e.g. in http://routerlogin.net/debug.htm). After this you will get an access by SSH. Not spoiled by reboot or so and workable until next flshing.

In my build if there is a script named post-mount.sh on the root of USB stick/disk in the directory autorun/scripts then it is executed when you insert tjis USB to router. Some kind of autoexec.bat for old DOS or autorun.inf for CD/DVD for Windows. This scheme is used for initial creation of /root/.ssh/authorized_keys.

Flashing itself is similar to flashing stock firmware, just from WebGUI. Back to stock is also the same: just select stock firmware file from WebGUI and flash it. No TFTP or so is needed. Like you would have a stock firmware.

Voxel.
 
But do i need the SSH access to router to get in to the GUI at 192.168.x.x and change the FW?
As this is a UNIX-based command interface and protocol for securely getting access to a remote computer.
 
Use of SSH is optional. You can use my firmware w/o setting SSH. Just as it would be a stock version. SSH is needed for those who want to use Entware or Debian or to get additional support of WebCam. Just imagine that it is stock FW (with hidden additional features ;-) GUI will work without SSH access.

Voxel.
 
But can we still use the full power of the CPU and FPU of the IPQ806x processor, that is limited in the official FW?
 
Last edited:
Yeah ;-)

Well, some technical details. Netgear uses old toolchain (2012 year) and not optimal compiler options. They are workable of course, but resulting compiled binary cannot use full power of IPQ806x. The last is Krait, so de facto it is Cortex A-15, with extended sets of instructions, when Netgear’s programs are compiled for just generic ARM-v7 (Cortex-A15 instructions are superset of ARM-v7).

I use more fresh compiler and toolchain with patches up to 2016, optimized for Cortex A-15. Plus “-O2” options for compilation (“-O3” for key packages such as OpenSSL, OpenVPN, ZLIB etc). And a lot of renewed packages instead of obsolete analogs used in stock FW. For example, my version of OpenSSL is faster then Netgear’s variant in up to 10 times (for some tests). Etc., etc., etc.

So even if you use only GUI, router should operate faster. Using almost all advantages of its CPU.

Regarding FPU: not so optimal as it could be, but more optimal than in stock firmware. I have to deal with Netgear’s GPL where some packages are pre-compiled binaries, and they sometimes use “-soft” option, when they could use “-mfloat-abi=hard”. So because of “soft” and “hard” are not compatible, I have to use “-mfloat-abi=softfp” to keep workability of Netgear’s pre-compiled binaries. You can see details of options (if interesting) here:

https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html

Voxel.
 
Last edited:
Wath about Qualcomm Streamboost schedule update "QoS" in FW, is it NG own as in stock?
 
Not at all ;-) I understand your worry: some unknown guy, newbie in this forum, puts his firmware and declares that it is better then stock FW. I'd wait when others try to flash to avoid brick of own router ;-)

P.S.
Well, to say true, I expected replies whille only from "mine" users (myopenrouter forum), who suggested me to use snbforums because myopenrouter is not so friendly to me and them.

Voxel.
 
Csection:

fq_codel should be a part of Netgear’s “intellectual” QoS. I do not like any QoS and do not use it, and did not investigate it in deep, but there are several references in GPL of stock firmware (and thus in my modification) to fq_codel, e.g. top config:

CONFIG_NET_SCH_FQ_CODEL=m
(i.e. kernel object FQ_CODEL is set to be built)

then, init files for QoS:

40_qdiscman:

# $1: dev
# $2: parent
# $3: handle
# $4: qdisc type (default = fq_codel)
# $5: extra opts

and a lot of other references in codes. So I can conclude that it is a part of Netgear’s QoS available in my FW too. I did not get any reports from users of my FW that QoS enabled influences to Wi-Fi signal.

RogerSC:

Thanks for your thanks ;-) In general I started with this for myself, when I realized that two of my R7500v1 got the status “end-of-life” by Netgear and there will not be any WRT for them. So I have to either shelve them and forget about wasted money because of stock FW limitations or to do something myself to justify a hole in family budget ;-) So when I succeed, I just shared my results. And when I could get R7800 instead of one from R7500, I continued with R7800.

Voxel.
Thanks for the reply!
 

Latest threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top