Custom firmware for R7800 to extend its functionality

417 posts / 0 new
Last post
Voxel
Custom firmware for R7800 to extend its functionality

I publish my custom firmware for R7800 owners. 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-a...

 

It is based on 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, more than 1800 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 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-initial-cortexa15.tar      https://yadi.sk/d/wgMUe9n7qpz8D

entware-cortex-a15.tar.gz           https://yadi.sk/d/z82gKbw_qpz8A

entware-initial-official.tar            https://yadi.sk/d/kXzTB9k2qpz8E

debian-jessie-armhf.tar.gz           https://yadi.sk/d/_JnHJaGBqpz7z

 

https://yadi.sk/d/QgH3jHNAtKLf9 My custom firmware 1.0.2.06SF

 

P.S.

Many thanks to dissent (http://myopenrouter.com/users/dissent) who tried my custom FW and provided several feedbacks allowing to improve it.

Voxel

Voxel
https://yadi.sk/i

https://yadi.sk/i/ipLqXywqqpz8b -more correct link to readme.docx

Voxel

 

HawkFest
The documentation mostly

The documentation mostly concerns theR7500 v1 issues... As such I find it odd that both are expanded concurrently, although they're disctinctivly based on completely different SoC microarchitecture. IMHO they shoul follow distinct dev. project paths.

Voxel
HawkFest,

HawkFest,

Sorry, I did not quite understand what you mean. Obviously R7500 and R7800 have differences in hardware and R7500 firmware cannot be installed to R7800 and firmware for R7800 cannot be installed to R7500. Of course I used stock firmware 1.0.2.04 for R7800 to create my custom firmware for R7800. Otherwise: router would be bricked.

But 90% of packages used in both routers in their stock firmware are identical. OpenVPN for R7800 == OpenVPN for R7500. OpenSSL for R7800 == OpenSSL for R7500. Differences are encapsulated in drivers. The last I did not touch. Drivers for R7800 are not used in FW for R7500 and vice versa.

Voxel.

lobyte
Please make SSH-access

Please make SSH-access without further action to the authorized_keys installation and add telnet.

How to unlock bind to the North American region and enable WiFi channels 12 and 13 for 2.4 MHz? These settings are stored in what mtd block?

 

How to make WiFi green mode (n or ac only)?

lobyte
Telnet enable: http://192.168

Telnet enable: http://192.168.1.1/debug.htm

Change region:

burnsku - does not work (Broadcom only)

artmtd -w regionset - no effect

lobyte
Unlock region: artmtd -w

Unlock region: artmtd -w region WW

Voxel
lobyte,

lobyte,

telnetenable is working in this FW, right. SSH with password: sorry, no. Authorization by SSH keys has more strict security. As you understand I use this FW too. I do not want to have additional security holes.

Regarding special actions to unlock the channels forbidden in your country by your country laws, again, sorry. Not with my help.

Regards,
Voxel.

Voxel
Hi all,

Hi all,

I publish new version of custom firmware: 1.0.2.07SF

 

The link is https://yadi.sk/d/YRuLxs2ttXWRq

What’s new (vs previous version):

1. swapon/swapoff/mkswap utilities are available in 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. OpenSSL 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

Voxel.

 

microchip
From personal experience with

From personal experience with most TCP congestion controls available in the kernel, nothing beats vegas and westwood+. I've no idea why you chose YeAH as default

Voxel
TCP congestion controls:

TCP congestion controls:

So many men, so many minds :-)

 

For me it practically does not matter. So I selected YeAH basing on this research article:

 

http://infocom.uniroma1.it/~vacirca/yeah/yeah.pdf
and practical personal experience of other guy :-)

Plus (you can browse R7500 discussion) both cubic and westwood+ was not OK for yet another guy who uses Time Warner Cable connection. Really unstabe. And with multiply connection drops.

You can correct /etc/sysctl.conf changing "yeah" to "vegas" for your own persona needs :-)

Regards,
Voxel.

Voxel
4. OpenSSL version is updated

4. OpenSSL version is updated. 2.3.10->2.3.11

Sorry, missprint. OpenVPN version is updates: 2.3.10->2.3.11

Voxel.

dissent
microchip, no idea where did

microchip, no idea where did you get it from, that vegas is a good choice for home use. The only choice the common(!) user has is Westwood or yeah depending on level of congestion, bandwidth and model of usage. Other algos won't give you any benefit or make your experience worse as a home user. Every algo has its target use, like hybla is for satellite, but for general home broadband use are those mentioned.

microchip
@dissent

@dissent

I didn't "get it" from anywhere, but from testing various congestion control modules available in the kernel. Both vegas and westwood+ came out performing "the best". Worst was HTCP for me and with the new CDG, I noticed a lot of delays but since it's quite new and not intended for home use, that may be the cause. I'm running now on vegas for more than a year and everything is smooth here

dissent
Microchip, that's exactly

Microchip, that's exactly what I mean by target model of usage. Seems that under 'best' you consider improving delay, that is not much of a problem for common use. But you should take into consideration, that slightly improving delay you are giving up on bandwidth that is usually more crucial, again, for a home user. Westwood and YeAH are a golden middle for general use now and if you want something special then you are going for different algo that meets your special needs :)

microchip
delay has never been much

delay has never been much issue in my testing. I wanted strong fairness which both vegas and westwood+ provide. if giving up a bit of bandwidth provides me with a "guarantee", I'm happy to take it. I'm not sure why you spend your time trying to convince me that vegas is not suited while it is from what I saw from my testing (granted that was more than a year ago, but it still applies since not much has changed in my network)

dissent
Such a mess, you are jumping

Such a mess, you are jumping from one criteria to another, first delay, then fairness... if Vegas suits your personal needs then it doesn't mean that it can be cleanly extrapolated on others right?

Besides I don't get it why one should use Vegas if Westwood provides better experience in your particular case and needs? 

microchip
I'm not jumping. Read my

I'm not jumping. Read my posts carefully. I said I noticed CDG gave me a lot of delay. I didn't say I was shooting to lower delays IN GENERAL. Just that during testing, CDG stood out in the delay department. This may have something to do with CDG being just out when I did my tests, or something else, but I didn't investigate further.

if vegas was that bad and not recommended, then none of the open source firmware will support it such as DD-WRT, Tomato and I think OpenWRT too (not sure on that one). I use vegas because it provides the smoothest experience here, slightly better than westwood. 

Since you seem to shoot for against vegas, I can also say that your experience doesn't extrapolate on others, right? I see clear benefits in using vegas. If you don't, then that's fine. 

Voxel
Interesting...

Interesting...

Well, guys, let's start from the end: I'll add Westwood+ to the next release of firmware. Vegas and YeAH are already available. So everyone can select what is more preferable for him.

The question was: why YeAH. IMO I clarified this. Let's do not forget that more modern YeAH (2006-2007 if I am not mistaken) is based on the same relatively old Vegas (mid of 1990) and even use it in own codes:-) For example I select just YeAH w/o Vegas in kernel configuration.

Some quotation from benchmark article:

Comparing the congestion control algorithms to each other

shows that whilst some of the algorithms can co-exist, others

cannot. TCP-Vegas consistently had a low mean throughput

of about 10 Mbps against all other TCP variants. TCP-Vegas

is perhaps the algorithm that is most sensitive to network

congestion, as it gives up bandwidth the most easily.

The most aggressive algorithms are HTCP, Westwood, Illinois,

BIC and Scalable. Of these four, Westwood is the most

greedy, taking nearly all available bandwidth for itself. It is

perhaps the most insensitive to congestion on the network.

YeAH, HighSpeed, LP, Hybla, Reno, CUBIC, and Reno

share the available bandwidth more or less equally among

themselves.

Most of the congestion control algorithms that were investigated

in this paper are intended for high speed networks with

large RTTs namely HTCP, Illinois, Scalable, BIC, CUBIC,

YeAH, and HighSpeed. Since these algorithms all try to exploit

large amounts of bandwidth by rapidly increasing the size

of their congestion windows, it is to be expected that they

would not share bandwidth well with other TCP connections.

The exception is CUBIC and YeAH, which form part of

the well-behaved group. These high speed congestion control

algorithms seem particularly effective at not overwhelming

the network, and sharing available bandwidth with other TCP

connections.

Regards,
Voxel.

Zeljko1234
Thx a lot Voxel for building

Thx a lot Voxel for building custom firmware for R7800. Everything seems to works except Readyshare. With your firmware is imppossible to register. If router is register with stock, works fine. After upgrade to your firmware, appears offline.

Would be nice if you can fix it. If you need any logs or testing, just let me know.

lobyte
Voxel, please add string

Voxel, please add string "root_container=B" in minidlna.conf

Voxel
Hi guys,

Hi guys,

Zeljko1234:

Thanks for you thanks. But sorry, I did not quite understand you. What namely does not work in ReadyShare? This Netgear’s ReadyShare consists of samba, ftp, http and (somehow) media servers (minidlna, itunes). I use samba, ftp, also tried http and minidlna. I use samba and ftp every day. So what does not work? What do you mean under  “register”?

lobyte:

I’ll check/test it. Is it really necessary? It work for me w/o this. Meanwhile you can correct /sbin/cmddlna, i.e. script which creates the config file for minidlna. Adding your string. And reboot router after your changes.

 

Regards,
Voxel.

Zeljko1234
Thx you for answering. My

Thx you for answering. My mistake, I ment ReadyCLOUD. Router cannot be registered using your firmware. After entering username/pass and clicking on register just return back to the same page. With stock works fine. I can make screenshots but later today after work.

Voxel
Zeljko1234:

Zeljko1234:

Try to remove symbol link /opt. As far as I remember this ReadyCLOUD uses "/opt" directory. So if /opt exists as a link it cannot create directory.

 

I.e.

1) Enter to your R7800 console by SSH or by telnet with telnetenable

2) Run the command:
 

rm /opt

 

then try again with ReadyCLOUD. Maybe reboot will be needed.

I am not in home, so cannot check, but IMO it should work.

 

Regards,
Voxel.

lobyte
ReadyShare USB read - speed

ReadyShare USB read - speed 80 MB/s (NTFS)

miniDLNA USB speed - about 10 MB only!

Zeljko1234
No luck. Upgraded to your

No luck. Upgraded to your build, factory reset, then deleted /opt, rebooted and still cannot register.

Zeljko1234
Voxel suggested me solution

Voxel suggested me solution in private message and it works. So here is it:

cd /usr/lib
ln -sf libssl.so.1.0.0 libssl.so.0.9.8
ln -sf libcrypto.so.1.0.0 libcrypto.so.0.9.8

Thank you Voxel!

Now would be nice to figure out how to disable usb hdd spin down. Just checked with Seagate Dashboard and it was already set to never (but I turned off led, at least).

 

p.s.

Stock telnet banner is cooler then in your custom firwmare ;)

Voxel
Sometimes I cannot write here

Sometimes I cannot write here in forum. Unclear probems.
 

Zeljko1234:

You can stop hd-idle service manually:

/etc/init.d/hd-idle stop

Or maybe disable it at all.

P.S. Banner: I prefer primitivism but not impressionism :-) 

Voxel.

Zeljko1234
I just disable it. Will

I just disable it. Will report does it work.

Any simple solution to configure transmission to use openVPN or PPTP? Just transmission, rest of the internet traffic can and preferably should go directly (for now).

Zeljko1234
Hmm, no way to edit post?!

Hmm, no way to edit post?!

Looks like that I'm going to need PPTP first...

Zeljko1234
Thx again for PM. Didn't have

Thx again for PM. Didn't have time to try it yet.

Btw, why swap is needed for transmission? I forgot to enable and worked fine. Maybe because file was about 200 MB.

Anyway, just tried to enable swap and everything worked (when corrected small mistyping) except the last step:

root@R7800:/opt$ dd if=/dev/zero of=swap bs=1024 count=524288
524288+0 records in
524288+0 records out
root@R7800:/opt$ mkswap swap
Setting up swapspace version 1, size = 536866817 bytes
root@R7800:/opt$ chmod 0600 swap
root@R7800:/opt$ swapon swap
swapon: swap: Invalid argument
root@R7800:/opt$

 

I made smaller swap because system complained about "chmod: swap: No space left on device"

Pages