Voxel
Part of the Furniture
Initial custom firmware build for Orbi RBK50 2.5.0.42SF-HW.
It is based on the stock firmware v. 2.5.0.40
What was changed, only major changes (vs stock 2.5.0.40):
1. Kernel: CVE-2019-11477, CVE-2019-11478, CVE-2019-11479 security fixes are added.
3. Kernel: RNDIS kernel object compilation is added.
4. Kernel: NG/DNI changes to set 777 permission rights for all file (ext2/ext3/ext4 filesystems) are removed to provide normal Linux native security.
5. Toolchain: GCC 5.2.0 compiler is updated to GCC 5.5.0 (plus all patches from OpenWRT).
6. Toolchain: Binutils Linaro 2.24.0-2014.09 is updated to GNU version 2.32.
7. Toolchain: GDB Linaro 7.6-2013.05 is updated to GDB 8.3.1.
8. Compilation: Default compiler options are changed from
-Os -pipe -march=armv7-a -mtune=cortex-a7 -mfloat-abi=soft
to
-O2 -pipe -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=neon-vfpv4 -funsafe-math-optimizations -mfloat-abi=softfp
(Common performance: higher level of optimization, using neon SIMD instructions, Cortex-A7 extended instructions and true hardware floating-point instructions [instead of pure software floating-point emulation and pure ARMv7-A instructions])
9. OpenSSL 1.0.2 is significantly changed. This needs in detailed explanations.
11. OpenVPN server is upgraded to v. 2.4.8. Plus optimization of servers/clients configs and using external liblz4 (boost).
12. samba package is upgraded to version 3.6.25 with all available patches. Plus: samba is enabled by default so if you have MBR USB disk/dongle attached to router/satellite its first partition will be used for samba sharing automatically after reboot and you can map it to e.g. your Windows PC. Sharename is “USB”. For example \\192.168.1.1\USB. It could be mapped for an user: guest (no password, read-only access), admin (your HTTP password, ordinary user’s write access according to permissions of folders on USB), root (your HTTP password, full root access to all files/disks).
13. zlib package is upgraded to version 1.2.11.
14. redis package is upgraded to version 2.6.17.
15. dbus package is upgraded to version 1.12.12.
16. lzo package is upgraded to version 2.10.
17. dnsmasq package is upgraded to version 2.80 with specific NG/DNI changes.
18. expat package is upgraded to version 2.2.9.
19. tar package is upgraded to version 1.32.
20. unzip package is upgraded to version 6.0.
21. wget package is upgraded to version 1.20.3.
22. util-linux package is upgraded to version 2.34.
23. lua package is changed (adding some patches).
24. gettext package is upgraded to version 0.19.8.1.
25. ncurses package is upgraded to version 6.1.
26. e2fsprogs package is upgraded to version 1.44.5.
27. libjson-c package is upgraded to version 0.13.1.
28. curl/libcurl package is upgraded to version 7.66.0.
29. britge-utils package is upgraded to version 1.6.
30. libmnl package is upgrade to version 1.0.4.
31. jansson package is upgraded to version 2.12.
32. liblz4 package version 1.9.2 is added (used by OpenVPN).
33. avahi package version 0.7 is added (used by samba).
34. libdaemon package version 0.14 is added (used by avahi).
35. gdbm package version 1.18.1 is added (used by avahi).
36. DNSCrypt-Proxy-2 package version 2.0.33 is added.
38. unbound package version 1.9.5 is added (used by stubby).
39. getdns package version 1.5.2 is added (used by stubby).
40. yaml package version 0.2.2 is added (used by stubby).
41. haveged package version 1.9.8 is added.
42. ca-certificates package version 20190110 is added.
43. usb-modeswitch package version 2017-12-19 is added with database 20170806.
44. libusb package version 1.0.22 is added.
45. libusb-compat package version 0.1.5 is added.
46. mp707 package is added.
47. dropbear package version 2019.78 is added.
48. iperf3 package is added (testing connection speed).
49. hotplug2 package is enabled and changed (allowing use of Entware from USB disk and /overlay partition on USB allowing changes of files/dirs.).
50. alsalib, px5g, polarssl/mbedtls, libevent2, sqlite3, mxml, libjpeg/jpeg-tools, cyassl, uclibcxx, libnice, glib2, libffi and some others are disabled (because of they are not used now, to save a space).
51. Several bugs are fixed. Yet several packages are changed/optimized/corrected.
52. Etc. etc.
NOTE: Your WebGUI could display after time passed that “New version of firmware is available”. Beware: it is not my message, but from NETGEAR server (new stock version) and if you start upgrading newer version it will flash the new stock version.
The link is:
https://www.voxel-firmware.com/Downloads/Voxel/html/browse.html
(thanks to vladlenas for his help with hosting).
Thanks to W1lliam for his help in testing.
Voxel.
It is based on the stock firmware v. 2.5.0.40
What was changed, only major changes (vs stock 2.5.0.40):
1. Kernel: CVE-2019-11477, CVE-2019-11478, CVE-2019-11479 security fixes are added.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11477
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11478
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11479
2. Kernel: Congestion Control Algorithms: Westwood+, YeAH, HSTCP, Vegas are added (CCA Westwood+ is set as default).https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11478
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11479
3. Kernel: RNDIS kernel object compilation is added.
4. Kernel: NG/DNI changes to set 777 permission rights for all file (ext2/ext3/ext4 filesystems) are removed to provide normal Linux native security.
5. Toolchain: GCC 5.2.0 compiler is updated to GCC 5.5.0 (plus all patches from OpenWRT).
6. Toolchain: Binutils Linaro 2.24.0-2014.09 is updated to GNU version 2.32.
7. Toolchain: GDB Linaro 7.6-2013.05 is updated to GDB 8.3.1.
8. Compilation: Default compiler options are changed from
-Os -pipe -march=armv7-a -mtune=cortex-a7 -mfloat-abi=soft
to
-O2 -pipe -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=neon-vfpv4 -funsafe-math-optimizations -mfloat-abi=softfp
(Common performance: higher level of optimization, using neon SIMD instructions, Cortex-A7 extended instructions and true hardware floating-point instructions [instead of pure software floating-point emulation and pure ARMv7-A instructions])
9. OpenSSL 1.0.2 is significantly changed. This needs in detailed explanations.
(a) Upgraded to latest version 1.0.2t.
(b) ASM/Neon SIMD accelerations are added. Benchmarks (OpenSSL utility):
Stock 2.5.0.40 (openssl speed aes-256-cbc -elapsed)
My version:
So my version is almost twice faster.
(c) Hardware acceleration is enabled (use of /dev/crypto hardware). It seems that NG and/or DNI had the intentions to add such acceleration (probably design by QCA) but they failed; so de facto hardware acceleration of OpenSSL does not work in the stock fw. Benchmarks (OpenSSL utility):
Stock 2.5.0.40 (openssl speed -evp aes-256-cbc -elapsed)
My version:
I.e. for example for 8KB blocks my version is in 7 times faster, thus hardware acceleration is working.
[NOTE: Specific of crypto device (it is PCI device) is that when using small blocks (less than 1KB) it will be slower vs ordinary version. But as far as I can guess OpenSSL 1.0.2 is used for connection of router with satellites and is using not less that 1KB blocks. At least my tests with iperf3 do not show any degradation of router <- - -> satellite speed when using hardware acceleration of OpenSSL 1.0.2, rather vice versa]
10. OpenSSL 1.1.1 is added (latest version 1.1.1d) . Currently it is used by OpenVPN, wget and stubby/getdns (TLS 1.3). Hardware acceleration of OpenSSL 1.1.1 is not enabled (but only ASM/Neon SIMD) because of its primary goal its using by OpenVPN and OpenVPN works faster w/o hardware acceleration of OpenSSL 1.1.1.(b) ASM/Neon SIMD accelerations are added. Benchmarks (OpenSSL utility):
Stock 2.5.0.40 (openssl speed aes-256-cbc -elapsed)
Code:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-256 cbc 7052.33k 7076.09k 7229.18k 7222.48k 6976.13k
My version:
Code:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-256 cbc 12696.43k 13449.48k 13707.96k 13952.61k 13862.75k
(c) Hardware acceleration is enabled (use of /dev/crypto hardware). It seems that NG and/or DNI had the intentions to add such acceleration (probably design by QCA) but they failed; so de facto hardware acceleration of OpenSSL does not work in the stock fw. Benchmarks (OpenSSL utility):
Stock 2.5.0.40 (openssl speed -evp aes-256-cbc -elapsed)
Code:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-256-cbc 6515.24k 6907.97k 6751.23k 7051.95k 7097.00k
My version:
Code:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-256-cbc 228.46k 857.39k 3464.87k 13802.84k 49010.01k
[NOTE: Specific of crypto device (it is PCI device) is that when using small blocks (less than 1KB) it will be slower vs ordinary version. But as far as I can guess OpenSSL 1.0.2 is used for connection of router with satellites and is using not less that 1KB blocks. At least my tests with iperf3 do not show any degradation of router <- - -> satellite speed when using hardware acceleration of OpenSSL 1.0.2, rather vice versa]
11. OpenVPN server is upgraded to v. 2.4.8. Plus optimization of servers/clients configs and using external liblz4 (boost).
12. samba package is upgraded to version 3.6.25 with all available patches. Plus: samba is enabled by default so if you have MBR USB disk/dongle attached to router/satellite its first partition will be used for samba sharing automatically after reboot and you can map it to e.g. your Windows PC. Sharename is “USB”. For example \\192.168.1.1\USB. It could be mapped for an user: guest (no password, read-only access), admin (your HTTP password, ordinary user’s write access according to permissions of folders on USB), root (your HTTP password, full root access to all files/disks).
13. zlib package is upgraded to version 1.2.11.
14. redis package is upgraded to version 2.6.17.
15. dbus package is upgraded to version 1.12.12.
16. lzo package is upgraded to version 2.10.
17. dnsmasq package is upgraded to version 2.80 with specific NG/DNI changes.
18. expat package is upgraded to version 2.2.9.
19. tar package is upgraded to version 1.32.
20. unzip package is upgraded to version 6.0.
21. wget package is upgraded to version 1.20.3.
22. util-linux package is upgraded to version 2.34.
23. lua package is changed (adding some patches).
24. gettext package is upgraded to version 0.19.8.1.
25. ncurses package is upgraded to version 6.1.
26. e2fsprogs package is upgraded to version 1.44.5.
27. libjson-c package is upgraded to version 0.13.1.
28. curl/libcurl package is upgraded to version 7.66.0.
29. britge-utils package is upgraded to version 1.6.
30. libmnl package is upgrade to version 1.0.4.
31. jansson package is upgraded to version 2.12.
32. liblz4 package version 1.9.2 is added (used by OpenVPN).
33. avahi package version 0.7 is added (used by samba).
34. libdaemon package version 0.14 is added (used by avahi).
35. gdbm package version 1.18.1 is added (used by avahi).
36. DNSCrypt-Proxy-2 package version 2.0.33 is added.
to enable it run from telnet console the commands
37. stubby (DNS-Over-TLS) package version 0.2.6 is added.
Code:
nvram set dnscrypt2=1
nvram commit
reboot
to enable it run from telnet console the commands
If both DNSCrypt-Proxy-2 and stubby are enabled, only stubby will be used.
Code:
nvram set stubby=1
nvram commit
reboot
38. unbound package version 1.9.5 is added (used by stubby).
39. getdns package version 1.5.2 is added (used by stubby).
40. yaml package version 0.2.2 is added (used by stubby).
41. haveged package version 1.9.8 is added.
42. ca-certificates package version 20190110 is added.
43. usb-modeswitch package version 2017-12-19 is added with database 20170806.
44. libusb package version 1.0.22 is added.
45. libusb-compat package version 0.1.5 is added.
46. mp707 package is added.
47. dropbear package version 2019.78 is added.
48. iperf3 package is added (testing connection speed).
49. hotplug2 package is enabled and changed (allowing use of Entware from USB disk and /overlay partition on USB allowing changes of files/dirs.).
50. alsalib, px5g, polarssl/mbedtls, libevent2, sqlite3, mxml, libjpeg/jpeg-tools, cyassl, uclibcxx, libnice, glib2, libffi and some others are disabled (because of they are not used now, to save a space).
51. Several bugs are fixed. Yet several packages are changed/optimized/corrected.
52. Etc. etc.
NOTE: Your WebGUI could display after time passed that “New version of firmware is available”. Beware: it is not my message, but from NETGEAR server (new stock version) and if you start upgrading newer version it will flash the new stock version.
The link is:
https://www.voxel-firmware.com/Downloads/Voxel/html/browse.html
(thanks to vladlenas for his help with hosting).
Thanks to W1lliam for his help in testing.
Voxel.
Last edited: