dolphs Posted June 14, 2017 Posted June 14, 2017 Hi - I am trying to find out from the fora topics here as well the technical details page if the ODROID-C2 has an extension to the ARMv8 instruction set to improve the speed of applications, like openssl/openvpn, performing encryption and decryption. On the intel platforms this feature is known as AES-NI. Therefore is similar hardware on board and if so, which kernel module enables this feature please? Also when will " Armbian " stretch be available ( 17 July just like debian 9? ). Cheers
debianxfce Posted June 20, 2017 Posted June 20, 2017 https://en.wikipedia.org/wiki/AES_instruction_set " AES support with unprivileged processor instructions is also available in the latest SPARC processors (T3, T4, T5, M5, and forward) and in latest ARM processors. The SPARC T4processor, introduced in 2011, has user-level instructions implementing AES rounds.[13] These instructions are in addition to higher level encryption commands. The ARMv8-Aprocessor architecture, announced in 2011, including the ARM Cortex-A53 and A57 (but not previous v7 processors like the Cortex A5, 7, 8, 9, 11, 15[citation needed]) also have user-level instructions which implement AES rounds " You can upgrade Armbian to Debian testing by adding a new repository with Synaptic, by clicking Reload and by updating all packages. You can change the country code (de): deb http://ftp.de.debian.org/debian testing main Debian testing Xfce works fine with Sunvell T95Z Plus AmLogic S912. Use Chromium, Iceaweasel plays youtube videos really slow and without sound. Use Wicd and QasMixer and remove networkmanager, systemd networking.service and pulseaudio to speed up system and increasing system stability.
dolphs Posted July 7, 2017 Author Posted July 7, 2017 compiled today " ARMBIAN 5.32 user-built Debian GNU/Linux 8 (jessie) 4.12.0-odroidc2 " and outpur of " openssl speed -elapsed -evp aes-128-cbc " was a bit disappointing as it seems it does not use the hardware encryption. Just built the default, however might check later if module needs to be compiled in ( or modprobed ) root@odroidc2:~# openssl speed -elapsed -evp aes-128-cbc You have chosen to measure elapsed time instead of user CPU time. Doing aes-128-cbc for 3s on 16 size blocks: 9017781 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 64 size blocks: 2785443 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 256 size blocks: 746427 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 1024 size blocks: 189960 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 8192 size blocks: 23811 aes-128-cbc's in 3.00s OpenSSL 1.0.1t 3 May 2016 built on: Fri Jan 27 00:08:40 2017 options:bn(64,64) rc4(ptr,char) des(idx,cisc,16,int) aes(partial) blowfish(ptr) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes aes-128-cbc 48094.83k 59422.78k 63695.10k 64839.68k 65019.90k root@odroidc2:~# openssl speed -elapsed aes-128-cbc You have chosen to measure elapsed time instead of user CPU time. Doing aes-128 cbc for 3s on 16 size blocks: 10634655 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 64 size blocks: 2917504 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 256 size blocks: 753598 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 1024 size blocks: 190469 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 8192 size blocks: 23818 aes-128 cbc's in 3.00s OpenSSL 1.0.1t 3 May 2016 built on: Fri Jan 27 00:08:40 2017 options:bn(64,64) rc4(ptr,char) des(idx,cisc,16,int) aes(partial) blowfish(ptr) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes aes-128 cbc 56718.16k 62240.09k 64307.03k 65013.42k 65039.02k root@odroidc2:~$ lsmod Module Size Used by cfg80211 282624 0 rfkill 32768 1 cfg80211 cpufreq_powersave 16384 0 cpufreq_userspace 16384 0 cpufreq_conservative 16384 0 meson_drm 45056 0 drm_kms_helper 172032 1 meson_drm drm 393216 2 meson_drm,drm_kms_helper meson_rng 16384 0 meson_gxbb_wdt 16384 0 rng_core 16384 1 meson_rng fuse 98304 1 ipv6 401408 26 btrfs 962560 0 xor 20480 1 btrfs zlib_deflate 28672 1 btrfs raid6_pq 106496 1 btrfs dwmac_generic 16384 0 realtek 16384 1 dwmac_meson8b 16384 0 stmmac_platform 20480 2 dwmac_generic,dwmac_meson8b stmmac 110592 3 stmmac_platform,dwmac_generic,dwmac_meson8b According to my info crypto engine has AES block cipher with 128/192/256 bits keys, standard 16 bytes block size and streaming ECB, CBC and CTR modes. ( Paragraph 3.3 Crypto Engine ). So I upgraded debian jessie to stretch ( which has openssl1.1.0f instead of openssl1.0.1t ) and yet the hardware seems to do some acceleration but still hoped for more ... openssl speed -elapsed -evp aes-128-cbc You have chosen to measure elapsed time instead of user CPU time. Doing aes-128-cbc for 3s on 16 size blocks: 8240239 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 64 size blocks: 2872650 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 256 size blocks: 802740 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 1024 size blocks: 206766 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 8192 size blocks: 26072 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 16384 size blocks: 13041 aes-128-cbc's in 3.00s OpenSSL 1.1.0f 25 May 2017 built on: reproducible build, date unspecified options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr) compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/aarch64-linux-gnu/engines-1.1\"" The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 43947.94k 61283.20k 68500.48k 70576.13k 71193.94k 71221.25k root@odroidc2:/home/ykoot# openssl speed -elapsed aes-128-cbc You have chosen to measure elapsed time instead of user CPU time. Doing aes-128 cbc for 3s on 16 size blocks: 9273969 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 64 size blocks: 2507648 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 256 size blocks: 645224 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 1024 size blocks: 162484 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 8192 size blocks: 20352 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 16384 size blocks: 10176 aes-128 cbc's in 3.00s OpenSSL 1.1.0f 25 May 2017 built on: reproducible build, date unspecified options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr) compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/aarch64-linux-gnu/engines-1.1\"" The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128 cbc 49461.17k 53496.49k 55059.11k 55461.21k 55574.53k 55574.53k
Da Xue Posted September 19, 2017 Posted September 19, 2017 https://libre.computer/products/boards/aml-s905x-cc/ This supports the ARM crypto extensions but doesn't have gigabit ethernet.
Recommended Posts