Dismiss Notice

Welcome To SNBForums

SNBForums is a community for anyone who wants to learn about or discuss the latest in wireless routers, network storage and the ins and outs of building and maintaining a small network.

If you'd like to post a question, simply register and have at it!

While you're at it, please check out SmallNetBuilder for product reviews and our famous Router Charts, Ranker and plenty more!

Entware-3x for new HND platform (GT-AC5300 and RT-AC86U) with asuswrt-merlin firmware

Discussion in 'Asuswrt-Merlin' started by zyxmon, Feb 2, 2018.

  1. zyxmon

    zyxmon Regular Contributor

    Joined:
    Feb 9, 2015
    Messages:
    137
    Entware-3x is new version of Entware optimized for 3.x and 4.x linux kernels. It is based on Entware-ng but can be used only on firmwares with 3.x and 4.x linux kernels. Entware-3x has more packages compared to Entware-ng because some packages cannot be compiled for old kernels, some Entware-3x packages have higher versions for the same reason. Entware-3x is used on many Metiatek routers, NASes, rooted android devices, DD-WRT devices starting from July 2016.

    Entware-3x is built for mips, mipsel, armv5, armv7, aarch64, x64 platforms.
    I have made a special installer for asuswrt (armv7 & aarch64) – it does not install busybox and adds /opt/bin & /opt/sbin to the end of PATH variable.
    Here you can find more info https://github.com/Entware-ng/Entware-ng/issues/772#issuecomment-331609759

    Asus GT-AC5300 and RT-AC86U have aarch64 architecture, and can run both armv7 (32 bit) and aarch64 (64 bit) binaries.

    Entware-3x can be easily installed on asuswrt-merlin with 4.1 kernel

    1) Copy /usr/sbin/entware-setup.sh script to /tmp folder
    2) Edit entware-setup.sh script
    - If you want to install 32 bit arm repo change
    Code:
    aarch64)
        PART_TYPES='ext2|ext3|ext4'
        INST_URL='http://pkg.entware.net/binaries/armv7/installer/entware_install.sh'
    
    To
    Code:
    aarch64)
        PART_TYPES='ext2|ext3|ext4'
        INST_URL=' http://entware-3x.zyxmon.org/binaries/armv7/installer/install_asuswrt.sh'
    
    - If you want to try 64 arm repo change the same lines to
    Code:
    aarch64)
        PART_TYPES='ext2|ext3|ext4'
        INST_URL=' http://entware-3x.zyxmon.org/binaries/armv8/installer/install_asuswrt.sh'
    
    (The only difference is 7 is replaced with 8)


    Run /tmp/entware-setup.sh script to install entware-3x


    More info on Entware-3x (Russian) is here http://forums.zyxmon.org/viewtopic.php?f=5&t=5399
    PS A couple of packages may need some adjustment, because busybox is not installed for asuswrt.
     
    Last edited: Feb 11, 2018
    TeHashX, joegreat, XIII and 2 others like this.
  2. thelonelycoder

    thelonelycoder Part of the Furniture

    Joined:
    Jan 23, 2014
    Messages:
    3,897
    Location:
    Switzerland
    TeHashX likes this.
  3. zyxmon

    zyxmon Regular Contributor

    Joined:
    Feb 9, 2015
    Messages:
    137
  4. sfx2000

    sfx2000 Part of the Furniture

    Joined:
    Aug 11, 2011
    Messages:
    12,065
    Location:
    San Diego, CA
    Congrats on the release - nicely done...

    Saw the HND thread - @RMerlin brings some interesting items...

    Thoughts...

    ARMv8 can run armv7-a and arm6 code just fine, just need to support kernel and the c-library - not all ARMv8's support legacy code, but many do, and the B53 does...

    Past work - did most of userland in armhf, essentially mirroring rasbian's repo's - that decision was made after benchmarking more than a few boards, and the delta's were close enough - most of the benefit was the kernel and glibc tuning to the chip itself. armv8, makes more sense with the big OOO cores like a57 and so forth, for the in-order cores (a53), not much benefit, and with >2GB ram, more of a hinderance.

    With regards to QCA's Kraits - A15 is so very similar to A9, wasn't worth the effort there, but I know of some (@Voxel) that did take some time to customize builds, and there were some incremental improvements. If one takes the time to optimize source for an OOO core like A8/A9, A15 and A17 will benefit without much impact to the A7 and A53 cores common in use.

    Consider A17, Rockchip's 3288 is a good example there...

    For armv8, the MachiattoBin board from SolidRun is an affordable example... GlobalScale's EspressoBin is a good A53 reference...

    Just from a code perspective - in private chats, HND is an odd-duck - mixed mode and a lot of object files/binaries...

    keeping things outside of /tmp is a good thing, but there's a fair amount of legacy with the platform in general, which is likely a headache for some now that we're seeing some modern cores and code in place...
     
  5. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    25,868
    Location:
    Canada
    Those have been resolved, as Busybox won't be installed by default, and the path will no longer override built-in versions either. This will ensure that add-on packages won't override built-in system, which could lead to functionality issues.
     
    hervon and sfx2000 like this.
  6. zyxmon

    zyxmon Regular Contributor

    Joined:
    Feb 9, 2015
    Messages:
    137
    I am testing aarch64 repo on QNAP TS-128A with Realtek RTD1295. I have also run it without problems on Amlogic S912 Tv Box (Android). Some android users will probably test it on MediaTek MT6753 smartfones in near future.
    As for Broadcom.... If aarch64 is not good, armv7 will work. Still I strongly recommend to switch from Entware-ng to Entware-3x on new kernel devices.

    PS Synology lowcost NASEs for 2018 year are now aarch64 based with Realtek RTD129x - https://originwww.synology.com/en-u...ial/General/What_kind_of_CPU_does_my_NAS_have
    Entware can be used also on aarch64 synos.
     
  7. Odkrys

    Odkrys Regular Contributor

    Joined:
    Jul 28, 2016
    Messages:
    142
    I am testing it now on my RT-AC86U. Some packages get improvement.
    For instance,
    ocserv (Openconnect vpn server) can reach 200Mbps. It was 70Mbps on armv7.
    Transmission also get more speed, nearly 30MB/s. It was 12MB/s on armv7.

    I'll try to do some more testing.

    Code:
    opkg list_installed
    asuswrt-opt - 1.0-4
    bash - 4.4.12-1
    certtool - 3.5.16-1
    dnscrypt-proxy - 1.9.5-7
    dnscrypt-proxy-resolvers - 1.9.5+git-20170530-60baef4-7
    fake-hwclock - 0.11-1
    findutils - 4.6.0-1
    haveged - 1.9.2-1
    iperf - 2.0.10-1
    iperf3 - 3.3-1
    libc - 2.25-8
    libcares - 1.13.0-1
    libcurl - 7.57.0-1
    libev - 4.22-1
    libevent2 - 2.0.22-1
    libgcc - 6.3.0-8
    libgmp - 6.1.2-1
    libgnutls - 3.5.16-1
    libhavege - 1.9.2-1
    libhttp-parser - 2.3.0-1
    libldns - 1.6.17-2
    libltdl - 2.4-2
    libmbedtls - 2.6.0-1
    libncurses - 6.0-1c
    libncursesw - 6.0-1c
    libnettle - 3.3-1
    libopenssl - 1.0.2n-1
    libpcre - 8.41-2
    libprotobuf-c - v1.2.1
    libpthread - 2.25-8
    libreadline - 7.0-1
    librt - 2.25-8
    libsodium - 1.0.16-1
    libssp - 6.3.0-8
    libstdcpp - 6.3.0-8
    locales - 2.25-8
    ocserv - 0.11.9-1
    opkg - 2011-04-08-9c97d5ec-17a
    shadowsocks-libev-config - 3.1.1-1
    shadowsocks-libev-ss-local - 3.1.1-1
    shadowsocks-libev-ss-server - 3.1.1-1
    shadowsocks-libev-ss-tunnel - 3.1.1-1
    simple-obfs - 0.0.5-1
    simple-obfs-server - 0.0.5-1
    strace - 4.20-1
    stunnel - 5.44-3
    terminfo - 6.0-1c
    transmission-daemon-openssl - 2.92+git-5
    transmission-remote-openssl - 2.92+git-5
    zlib - 1.2.11-1
    zoneinfo-asia - 2017c-1
    
     
  8. Odkrys

    Odkrys Regular Contributor

    Joined:
    Jul 28, 2016
    Messages:
    142
    @zyxmon
    Would you please let me know armv8 native gcc env ?
    Is this right ?

    Code:
    #!/bin/sh
    export LDFLAGS="-Wl,-rpath=/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux-aarch64.so.1 -L/opt/lib"
    export CFLAGS="-O2 -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt"
    
    Edit : never mind. I successfully installed the latest shadowsocks-libev (3.1.3) using native gcc.
     
    Last edited: Feb 3, 2018
  9. zyxmon

    zyxmon Regular Contributor

    Joined:
    Feb 9, 2015
    Messages:
    137
  10. Zentachi

    Zentachi Occasional Visitor

    Joined:
    Jan 17, 2018
    Messages:
    40
    @Odkrys did you install the 32bit or the 64bit aarch64?
     
  11. zyxmon

    zyxmon Regular Contributor

    Joined:
    Feb 9, 2015
    Messages:
    137
    @Odkrys has installed 64-bit version.
    BTW @Voxel 32-bit armv7 repo can be also used on HND platform. It will be faster than entware-ng and probably faster than standard 32-bit Entware-3x repo.
     
  12. Zentachi

    Zentachi Occasional Visitor

    Joined:
    Jan 17, 2018
    Messages:
    40
    Thanks, I have also installed it on my ac86u.
     
  13. Odkrys

    Odkrys Regular Contributor

    Joined:
    Jul 28, 2016
    Messages:
    142
    I compiled the latest tvheadend 4.2.5 using buildroot on my vps and it works well.
    I switch to Entware-3x completely. Thanks @zyxmon

    shadowsocks-libev iperf local benchmark here.

    armv7
    Code:
    aes-128-gcm 85 mbps
    aes-256-gcm 80 mbps
    chacha20-ietf-poly1305 245 mbps
    
    armv8
    Code:
    aes-128-gcm 130mbps
    aes-256-gcm 130mbps
    chacha20-ietf-poly1305 290mbps
    
    installed packages list
    Code:
    ar - 2.27-1
    asuswrt-opt - 1.0-4
    autoconf - 2.69-2a
    automake - 1.15-4
    bash - 4.4.12-1
    binutils - 2.27-1
    ca-certificates - 20170717
    certtool - 3.5.16-1
    dnscrypt-proxy - 1.9.5-7
    dnscrypt-proxy-resolvers - 1.9.5+git-20170530-60baef4-7
    fake-hwclock - 0.11-1
    findutils - 4.6.0-1
    gcc - 6.3.0-1a
    git - 2.15.1-1
    git-http - 2.15.1-1
    haveged - 1.9.2-1
    iperf - 2.0.10-1
    iperf3 - 3.3-1
    libbfd - 2.27-1
    libbz2 - 1.0.6-3
    libc - 2.25-8
    libcares - 1.13.0-1
    libcurl - 7.57.0-1
    libdb47 - 4.7.25.4.NC-5
    libev - 4.22-1
    libevent2 - 2.0.22-1
    libexpat - 2.2.5-1
    libexslt - 1.1.31-1
    libffi - 3.2.1-3
    libgcc - 6.3.0-8
    libgdbm - 1.11-1
    libgmp - 6.1.2-1
    libgnutls - 3.5.16-1
    libhavege - 1.9.2-1
    libhttp-parser - 2.3.0-1
    libiconv-full - 1.11.1-3
    libintl-full - 0.19.8.1-1
    libldns - 1.6.17-2
    libltdl - 2.4-2
    libmbedtls - 2.6.0-1
    libncurses - 6.0-1c
    libncursesw - 6.0-1c
    libnettle - 3.3-1
    libopcodes - 2.27-1
    libopenssl - 1.0.2n-1
    libpcre - 8.41-2
    libprotobuf-c - v1.2.1
    libpthread - 2.25-8
    libreadline - 7.0-1
    librt - 2.25-8
    libsodium - 1.0.16-1
    libsqlite3 - 3210000-1
    libssp - 6.3.0-8
    libstdcpp - 6.3.0-8
    libtool-bin - 2.4.6-2
    libxml2 - 2.9.7-1
    libxslt - 1.1.31-1
    locales - 2.25-8
    m4 - 1.4.18-1a
    make - 4.2.1-2
    objdump - 2.27-1
    ocserv - 0.11.9-1
    opkg - 2011-04-08-9c97d5ec-17a
    perl - 5.26.1-2
    perl-dev - 5.26.1-2
    perlbase-attributes - 5.26.1-2
    perlbase-base - 5.26.1-2
    perlbase-bytes - 5.26.1-2
    perlbase-class - 5.26.1-2
    perlbase-config - 5.26.1-2
    perlbase-cwd - 5.26.1-2
    perlbase-data - 5.26.1-2
    perlbase-dynaloader - 5.26.1-2
    perlbase-errno - 5.26.1-2
    perlbase-essential - 5.26.1-2
    perlbase-fcntl - 5.26.1-2
    perlbase-file - 5.26.1-2
    perlbase-filehandle - 5.26.1-2
    perlbase-getopt - 5.26.1-2
    perlbase-i18n - 5.26.1-2
    perlbase-integer - 5.26.1-2
    perlbase-io - 5.26.1-2
    perlbase-list - 5.26.1-2
    perlbase-locale - 5.26.1-2
    perlbase-params - 5.26.1-2
    perlbase-posix - 5.26.1-2
    perlbase-re - 5.26.1-2
    perlbase-scalar - 5.26.1-2
    perlbase-selectsaver - 5.26.1-2
    perlbase-selfloader - 5.26.1-2
    perlbase-socket - 5.26.1-2
    perlbase-symbol - 5.26.1-2
    perlbase-text - 5.26.1-2
    perlbase-thread - 5.26.1-2
    perlbase-threads - 5.26.1-2
    perlbase-tie - 5.26.1-2
    perlbase-unicore - 5.26.1-2
    perlbase-utf8 - 5.26.1-2
    perlbase-xsloader - 5.26.1-2
    python - 2.7.14-5
    python-base - 2.7.14-5
    python-codecs - 2.7.14-5
    python-compiler - 2.7.14-5
    python-ctypes - 2.7.14-5
    python-db - 2.7.14-5
    python-decimal - 2.7.14-5
    python-distutils - 2.7.14-5
    python-email - 2.7.14-5
    python-gdbm - 2.7.14-5
    python-light - 2.7.14-5
    python-logging - 2.7.14-5
    python-lxml - 4.1.1-1
    python-multiprocessing - 2.7.14-5
    python-ncurses - 2.7.14-5
    python-openssl - 2.7.14-5
    python-pip - 9.0.1
    python-pip-conf - 0.1-1
    python-pydoc - 2.7.14-5
    python-setuptools - 28.8.0
    python-sqlite3 - 2.7.14-5
    python-unittest - 2.7.14-5
    python-xml - 2.7.14-5
    simple-obfs - 0.0.5-1
    simple-obfs-server - 0.0.5-1
    strace - 4.20-1
    stunnel - 5.44-3
    terminfo - 6.0-1c
    transmission-daemon-openssl - 2.92+git-5
    transmission-remote-openssl - 2.92+git-5
    tvheadend - 4.2.5-1
    zlib - 1.2.11-1
    zoneinfo-asia - 2017c-1
    zoneinfo-europe - 2017c-1
    
     
  14. thelonelycoder

    thelonelycoder Part of the Furniture

    Joined:
    Jan 23, 2014
    Messages:
    3,897
    Location:
    Switzerland
    Good job @zyxmon , working error free so far on RT-AC86U with armv8 repo.
    Installs without a hitch with (unreleased) AB-Solution 4.

    Couple of remarks:
    /opt/bin has two links to missing binaries: ifconfig and route
    /opt/share/zoneinfo is installed but AFAIK not used by the router in Time Zone settings. Is there save a way to use it in Asuswrt-Merlin?
     
  15. zyxmon

    zyxmon Regular Contributor

    Joined:
    Feb 9, 2015
    Messages:
    137
    Timezone in Entware-3x is defined by /opt/etc/localtime file. It can be a symbolic link to /etc/localtime if firmware uses glibc as a system lib, or can be a symlink to your region:
    Code:
    /opt/etc/localtime -> /opt/share/zoneinfo/Europe/Moscow
    
    This is from uclibc based router!
     
    thelonelycoder likes this.
  16. zyxmon

    zyxmon Regular Contributor

    Joined:
    Feb 9, 2015
    Messages:
    137
    Last edited: Feb 3, 2018
  17. thelonelycoder

    thelonelycoder Part of the Furniture

    Joined:
    Jan 23, 2014
    Messages:
    3,897
    Location:
    Switzerland
    Code:
    [email protected]:/tmp/home/root# find / -name ifconfig
    /tmp/mnt/entware/entware/bin/ifconfig
    /sbin/ifconfig
    Code:
    [email protected]:/tmp/home/root# find / -name route
    /tmp/mnt/entware/entware/bin/route
    ....
    /sbin/route
     
  18. thelonelycoder

    thelonelycoder Part of the Furniture

    Joined:
    Jan 23, 2014
    Messages:
    3,897
    Location:
    Switzerland
    I'll test that later today, could be very helpful having an up-to-date database instead of the ancient one that Asus uses.
     
  19. thelonelycoder

    thelonelycoder Part of the Furniture

    Joined:
    Jan 23, 2014
    Messages:
    3,897
    Location:
    Switzerland
    /bin/netstat (symlink to BusyBox binary)
    /tmp/mnt/entware/entware/bin/netstat

    /bin/ip
    /tmp/mnt/entware/entware/bin/ip
    /usr/sbin/ip
     
  20. thelonelycoder

    thelonelycoder Part of the Furniture

    Joined:
    Jan 23, 2014
    Messages:
    3,897
    Location:
    Switzerland

Share This Page