We’ve had a sample of the Khadas Edge2 single board computer powered by Rockchip RK3588S octa-core Cortex-A76/A55 processor for a couple of weeks, and now that the board is officially launched we can post our review of the board with Ubuntu 22.04, and we’ll check out Android 12 later on.
Khadas Edge2 Pro accessories
The Khadas Edge2 comes in two variants: Basic and Pro, We received the Edge2 Pro SBC with 16GB RAM and 64GB flash that ships with two WiFi antennas by default, but the company also sent a low-profile fansink and thermal pad for cooling that in theory would be optional, but in practice, it is required as while the board runs fairly cool considering the performance it brings, it still needs a heatsink to prevent overheating and throttling. The fan may not really be necessary though as we’ll see below.
I’d recommend installing the antennas before the fansink. The MHF4 antenna connectors are tiny, and I find antennas really hard to insert on the board properly. They can detach easily too, and I ended up damaging one of the connectors, just like I did with the Khadas VIM4 featuring the exact same tiny connectors. The Khadas VIM1S SBC has a larger u.FL connector, and it’s much easier to install the single antenna that comes with the board. I wish Khadas could use those on all their boards, but space on the PCB may be an issue.
The board remains fairly slim even after the heatsink is installed. I measured the thickness to be about 11mm with a caliper.
Installing Ubuntu 22.04 with OOWOW system
Let’s connect the board to an HDMI connector and a keyboard because connecting it to a USB PD adapter to power it up. If you don’t like to mess around with MicroSD cards and/or USB cables together with Windows or command line tools, you’ll love the Khadas boards as they now come with the OOWOW system that allows the user to download and flash his/her selected OS image with an easy to use interface.
Upon the boot first, we are greeted with the OOWOW Wizard in order to configure WiFi, and then select an OS image.
At the time of testing, Android 11, Android 12, Ubuntu 22.04 Desktop and Ubuntu 22.04 Server were available. I went with the Ubuntu 22.04 (Gnome) Desktop image, and after a couple of minutes I was greeted with a login prompt.
The default password for the Khadas user is simply “khadas”. We are not asked to change the username or password upon the first login, so it might be something that needs to be implemented later to comply with some new regulations, especially openssh-server is enabled by default if I remember correctly. For the time being, we can just change the password manually.
Ubuntu 22.04 system info on Khadas Edge2
Let’s check out some system information starting with the kernel log obtained with dmesg.
After connecting to my WiFi router, I did a system upgrade, and rebooted the system. Let’s get more details:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
khadas@Khadas:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 DISTRIB_CODENAME=jammy DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS" khadas@Khadas:~$ uname -a Linux Khadas 5.10.66 #1.1.1 SMP Wed Sep 7 15:39:24 CST 2022 aarch64 aarch64 aarch64 GNU/Linux khadas@Khadas:~$ free -mh total used free shared buff/cache available Mem: 15Gi 524Mi 14Gi 33Mi 448Mi 14Gi Swap: 1.0Gi 0B 1.0Gi khadas@Khadas:~$ df -mh Filesystem Size Used Avail Use% Mounted on tmpfs 1.6G 11M 1.6G 1% /run /dev/mmcblk0p2 57G 3.4G 53G 7% / tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 7.7G 8.0K 7.7G 1% /tmp /dev/mmcblk0p1 217M 47M 161M 23% /boot tmpfs 1.6G 76K 1.6G 1% /run/user/117 tmpfs 1.6G 68K 1.6G 1% /run/user/1000 |
It’s running Ubuntu 22.04 on Linux 5.10.66, and we’ve got about 16 GB RAM and a 57GB root partition as expected. Let’s install and run inxi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
khadas@Khadas:~$ sudo inxi -Fc0 System: Host: Khadas Kernel: 5.10.66 aarch64 bits: 64 Console: pty pts/1 Distro: Ubuntu 22.04.1 LTS (Jammy Jellyfish) Machine: Type: ARM System: Khadas Edge2 details: N/A serial: 8a6cc05fd8d15662 CPU: Info: 3x 4-core model: N/A variant-1: cortex-a76 variant-2: cortex-a55 bits: 64 type: MCP AMP cache: L2: 3x 512 KiB (1.5 MiB) Speed (MHz): avg: 2052 min/max: 408/1800:2304 cores: 1: 1800 2: 1800 3: 1800 4: 1800 5: 2304 6: 2304 7: 2304 8: 2304 Graphics: Device-1: display-subsystem driver: rockchip_drm v: N/A Device-2: mali-bifrost driver: mali v: N/A Device-3: rk3588-dw-hdmi driver: dwhdmi_rockchip v: N/A Display: server: X.org v: 1.21.1.3 with: Xwayland v: 22.1.1 driver: gpu: rockchip_drm,mali,dwhdmi_rockchip note: X driver n/a tty: 80x24 resolution: 1280x800 Message: GL data unavailable in console for root. Audio: Device-1: simple-audio-card driver: N/A Device-2: hdmi driver: rk_hdmi_sound Device-3: simple-audio-card driver: asoc_simple_card Device-4: rk3588-dw-hdmi driver: dwhdmi_rockchip Device-5: simple-audio-card driver: asoc_simple_card Device-6: simple-audio-card driver: asoc_simple_card Sound Server-1: ALSA v: k5.10.66 running: yes Sound Server-2: PulseAudio v: 15.99.1 running: yes Sound Server-3: PipeWire v: 0.3.48 running: yes Network: Device-1: Broadcom driver: pcieh Device-2: wlan-platdata driver: wlan_platdata IF-ID-1: wlan0 state: up mac: 70:f7:54:b9:4f:73 Bluetooth: Device-1: rk3588-uart driver: dw_apb_uart Report: hciconfig ID: hci0 state: up address: 70:F7:54:B9:4F:74 bt-v: 3.0 Drives: Local Storage: total: 58.24 GiB used: 3.41 GiB (5.9%) ID-1: /dev/mmcblk0 model: CJTD4R size: 58.24 GiB Partition: ID-1: / size: 56.45 GiB used: 3.36 GiB (6.0%) fs: ext4 dev: /dev/mmcblk0p2 ID-2: /boot size: 216.5 MiB used: 46.8 MiB (21.6%) fs: ext4 dev: /dev/mmcblk0p1 Swap: ID-1: swap-1 type: zram size: 256 MiB used: 0 KiB (0.0%) dev: /dev/zram1 ID-2: swap-2 type: zram size: 256 MiB used: 0 KiB (0.0%) dev: /dev/zram2 ID-3: swap-3 type: zram size: 256 MiB used: 0 KiB (0.0%) dev: /dev/zram3 ID-4: swap-4 type: zram size: 256 MiB used: 0 KiB (0.0%) dev: /dev/zram4 Sensors: System Temperatures: cpu: 47.2 C mobo: N/A Fan Speeds (RPM): N/A Info: Processes: 284 Uptime: 2m Memory: 15.34 GiB used: 679.1 MiB (4.3%) Init: systemd runlevel: 5 Shell: Sudo inxi: 3.3.13 |
We can see the Cortex-A76 are clocked at up to 2304 MHz, and the Cortex-A55 cores up to 1,800 MHz, but more on that latter. ZRAM is also enabled (good!) although with 16GB we have plenty of physical memory.
Khadas Edge2 benchmarks in Linux
We can now run some Linux benchmarks on the Khadas Edge2 board to compare it to the Rockchip RK3588-powered ROCK 5B, Raspberry Pi 4, and other single board computers. Note that after a reboot, the CPU default to the performance governor.
1 2 3 4 5 6 7 8 9 |
khadas@Khadas:~$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor performance performance performance performance performance performance performance performance |
I started with the usual sbc-bench.sh from Thomas kaiser:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
khadas@Khadas:~$ sudo ./sbc-bench.sh Average load and/or CPU utilization too high (too much background activity). Waiting... Too busy for benchmarking: 13:02:47 up 4 min, 2 users, load average: 0.12, 0.10, 0.04, cpu: 2% Too busy for benchmarking: 13:02:52 up 4 min, 2 users, load average: 0.11, 0.10, 0.04, cpu: 0% Too busy for benchmarking: 13:02:57 up 4 min, 2 users, load average: 0.10, 0.10, 0.04, cpu: 0% Too busy for benchmarking: 13:03:02 up 4 min, 2 users, load average: 0.09, 0.10, 0.04, cpu: 0% sbc-bench v0.9.8 Installing needed tools: apt -f -qq -y install lshw, tinymembench, ramlat, mhz.. Done. Checking cpufreq OPP. Done (results will be available in 22-34 minutes). Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Checking cpufreq OPP. Done (23 minutes elapsed). Memory performance (different CPU cores measured individually): memcpy: 6246.4 MB/s memset: 21830.2 MB/s memcpy: 10855.0 MB/s memset: 29113.6 MB/s (0.6%) memcpy: 10849.5 MB/s memset: 29040.2 MB/s 7-zip total scores (3 consecutive runs): 16458,16469,16488 OpenSSL results (different CPU cores measured individually): type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 159159.98k 471394.54k 920594.26k 1219531.78k 1343911.25k 1354235.90k (Cortex-A55) aes-128-cbc 630376.10k 1255956.48k 1628019.54k 1746813.27k 1793103.19k 1797565.10k (Cortex-A76) aes-128-cbc 641552.95k 1274298.15k 1635059.46k 1751368.70k 1797278.38k 1802245.46k (Cortex-A76) aes-192-cbc 151839.98k 420351.79k 749525.76k 939204.95k 1013820.07k 1019740.16k (Cortex-A55) aes-192-cbc 593842.50k 1116928.60k 1384821.16k 1457585.49k 1498999.47k 1501959.51k (Cortex-A76) aes-192-cbc 599591.83k 1118869.76k 1385524.65k 1459217.75k 1499878.74k 1502866.09k (Cortex-A76) aes-256-cbc 147179.67k 386230.29k 647709.44k 784962.56k 835922.60k 840095.06k (Cortex-A55) aes-256-cbc 563814.41k 990876.86k 1197297.24k 1260580.86k 1284167.00k 1286427.99k (Cortex-A76) aes-256-cbc 571227.48k 994213.65k 1200338.09k 1261701.80k 1285199.19k 1287487.49k (Cortex-A76) Full results uploaded to http://ix.io/4a5U. |
If we look at the full results, we can see the measured frequency for the Corex-A76 cores is 2,257 MHz for one two-core cluster, and 2,259 for the other two-core cluster, as about the 2.25GHz advertised by Khadas. The system temperature never exceeded 61.9°C during the benchmark in a room with an ambient temperature of 28°C, so the cooling solution is perfectly suitable, and throttling did not occur. I initially thought the fan was never used, but looking closer the fan was indeed activated. It’s just close to silent.
The Khadas Edge2 SBC has about the same performance as the Rock 5B, as one would have expected, and is quite faster than the Khadas VIM4 powered by an Amlogic A311D2 processor, more than twice as fast as a Raspberry Pi 4. The ODROID-N2+ SBC based on the older Amlogic S922X processor @ 2.4 GHz is in the middle of the pack.
Let’s now switch to a browser benchmark with Speedometer 2.0.
I’m using a small 10.1-inch display with 1280×720 resolution, but I forced it to 1920×1080 with 125% fractional scaling before testing.
But just to make sure, I tested it again once while connected to a Full HD display with 1920×1080 resolution and no fractional scaling, and I got similar results at 78.84 points in Chromium and 53.14 in Firefox, so it’s not that different.
The Khadas Edge2 board is almost four times faster than an overclocked Raspberry Pi 4 in this particular benchmark. Note that improvements to Chromium and 3D graphics acceleration may play a role here too, but performance is nonetheless impressive. As seen with other Arm SBCs, Chromium performs quite better than Firefox with Speedometer 2.0.
Let’s run some benchmarks from the Phoronix TestSuite to compare Khadas Edge2 to UP 4000 SBC with an Intel Celeron N3350 dual-core Apollo Lake processor clocked at 2.4 GHz along as Jetson Nano and Raspberry Pi 4. You’ll find the full results on the Openbenchmarking website.
As we can some of the tests failed to complete:
1 2 3 4 5 6 7 8 9 10 11 12 |
LAME MP3 Encoding 3.100: pts/encode-mp3-1.7.4 [WAV To MP3] Test 9 of 15 Estimated Trial Run Count: 3 Estimated Test Run-Time: 3 Minutes Estimated Time To Completion: 35 Minutes [04:01 CDT] Started Run 1 @ 03:27:03 The test quit with a non-zero exit status. Started Run 2 @ 03:27:07 The test quit with a non-zero exit status. Started Run 3 @ 03:27:11 The test quit with a non-zero exit status. |
But the Khadas Edge2 Pro was outperforming all other platforms in all tests that were completed, except for SQLite. So I’d expect the Rockchip RK3588S to offer similar performance as some Gemini Lake or even Jasper Lake systems.
Note that the Khadas Edge2 was the only platform with the governor set to performance:
1 2 3 4 5 |
UP 4000 2GB: Scaling Governor: intel_pstate powersave - CPU Microcode: 0x28 - Thermald 1.9.1 UPboard 2GB: Scaling Governor: intel_pstate powersave - CPU Microcode: 0x411 - Thermald 1.9.1 Jetson Nano 4GB: Scaling Governor: tegra-cpufreq schedutil RPi4 4GB: Scaling Governor: cpufreq-dt ondemand Khadas Edge2 Pro 16GB: Scaling Governor: cpufreq-dt performance |
Phoronix provides an out-of-the-box “benchmark experience”, and it should be noted the scores of other systems may have been higher if the governor was set to performance, to what extent is hard to know.
3D graphics acceleration in Ubuntu 22.04
When I first tested 3D graphics supports, I ran glxinfo:
1 2 3 4 5 6 7 8 9 10 11 12 |
Extended renderer info (GLX_MESA_query_renderer): Vendor: Mesa/X.org (0xffffffff) Device: llvmpipe (LLVM 13.0.1, 128 bits) (0xffffffff) Version: 22.0.5 Accelerated: no Video memory: 15704MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 4.5 Max compat profile version: 4.5 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.2 |
It seems to indicate 3D graphics acceleration is not enabled as it’s relying on the llvmpipe software driver. But that command is only valid for X11, and Khadas’ Ubuntu 22.04 image is using Wayland windowing system instead.
So we need to use eglinfo instead, and we can see the Mali GPU driver is used:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
khadas@Khadas:~$ eglinfo EGL client extensions string: EGL_EXT_client_extensions EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_KHR_platform_gbm EGL_KHR_platform_wayland EGL_EXT_platform_wayland GBM platform: arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'. eglinfo: eglInitialize failed Wayland platform: EGL API version: 1.4 EGL vendor string: ARM EGL version string: 1.4 Valhall-"g6p0-01eac0" EGL client APIs: OpenGL_ES EGL extensions string: EGL_WL_bind_wayland_display EGL_NV_context_priority_realtime EGL_KHR_partial_update EGL_EXT_swap_buffers_with_damage EGL_KHR_swap_buffers_with_damage EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses EGL_IMG_context_priority EGL_KHR_no_config_context EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_yuv_surface EGL_EXT_pixel_format_float EGL_ARM_pixmap_multisample_discard EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image EGL_EXT_image_gl_colorspace EGL_EXT_create_context_robustness Configurations: bf lv colorbuffer dp st ms vis cav bi renderable supported id sz l r g b a th cl ns b id eat nd gl es es2 vg surfaces --------------------------------------------------------------------- 0x01 32 0 8 8 8 8 0 0 0 0 0x00-- a y y win,pb 0x02 32 0 8 8 8 8 24 0 0 0 0x00-- a y y win,pb 0x03 32 0 8 8 8 8 24 8 0 0 0x00-- a y y win,pb 0x04 32 0 8 8 8 8 24 8 4 1 0x00-- a y y win,pb 0x05 16 0 5 6 5 0 0 0 0 0 0x00-- y y y win,pb 0x06 16 0 5 6 5 0 24 0 0 0 0x00-- y y y win,pb 0x07 16 0 5 6 5 0 24 8 0 0 0x00-- y y y win,pb 0x08 16 0 5 6 5 0 24 8 4 1 0x00-- y y y win,pb 0x09 24 0 8 8 8 0 0 0 0 0 0x00-- y y y win,pb 0x0a 24 0 8 8 8 0 24 8 0 0 0x00-- y y y win,pb 0x0b 24 0 8 8 8 0 0 0 4 1 0x00-- y y y win,pb 0x0c 24 0 8 8 8 0 24 8 4 1 0x00-- y y y win,pb 0x0d 16 0 5 5 5 1 24 8 0 0 0x00-- a y y win,pb 0x0e 16 0 5 5 5 1 24 8 4 1 0x00-- a y y win,pb 0x0f 16 0 4 4 4 4 24 8 0 0 0x00-- a y y win,pb 0x10 16 0 4 4 4 4 24 8 4 1 0x00-- a y y win,pb 0x11 32 0 8 8 8 8 24 8 8 1 0x00-- a y y win,pb 0x12 16 0 5 6 5 0 24 8 8 1 0x00-- y y y win,pb 0x13 24 0 8 8 8 0 24 8 8 1 0x00-- y y y win,pb 0x14 32 0 8 8 8 8 24 8 16 1 0x00-- a y y win,pb 0x15 16 0 5 6 5 0 24 8 16 1 0x00-- y y y win,pb 0x16 24 0 8 8 8 0 24 8 16 1 0x00-- y y y win,pb 0x17 24 0 8 8 8 0 0 0 0 0 0x00-- y y pb 0x18 64 0 16 16 16 16 24 8 0 0 0x00-- y y pb 0x19 32 0 10 10 10 2 24 8 0 0 0x00-- a y y pb 0x1a 24 0 8 8 8 0 0 0 0 0 0x00-- y y y win,pb |
There’s an error in the output above, but I could confirm this works using glmark2-es2-wayland with instructions from Khadas. We are first asked to set to GPU governor to performance:
1 2 3 |
sudo sh -c 'echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor' sudo sh -c 'echo performance > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor' sudo sh -c 'echo performance > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor' |
Now we can install the program and run the program:
1 2 |
sudo apt install glmark2-es2-wayland glmark2-es2-wayland |
Here’s the output from glmark2-es2-wayland:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
khadas@Khadas:~$ glmark2-es2-wayland arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'. arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'. ======================================================= glmark2 2021.02 ======================================================= OpenGL Information GL_VENDOR: ARM GL_RENDERER: Mali-LODX GL_VERSION: OpenGL ES 3.2 v1.g6p0-01eac0.ba52c908d926792b8f5fe28f383a2b03 ======================================================= [build] use-vbo=false: FPS: 4355 FrameTime: 0.230 ms [build] use-vbo=true: FPS: 4991 FrameTime: 0.200 ms [texture] texture-filter=nearest: FPS: 5970 FrameTime: 0.168 ms [texture] texture-filter=linear: FPS: 5893 FrameTime: 0.170 ms [texture] texture-filter=mipmap: FPS: 5608 FrameTime: 0.178 ms [shading] shading=gouraud: FPS: 4256 FrameTime: 0.235 ms [shading] shading=blinn-phong-inf: FPS: 4327 FrameTime: 0.231 ms [shading] shading=phong: FPS: 4161 FrameTime: 0.240 ms [shading] shading=cel: FPS: 4104 FrameTime: 0.244 ms [bump] bump-render=high-poly: FPS: 2764 FrameTime: 0.362 ms [bump] bump-render=normals: FPS: 6402 FrameTime: 0.156 ms [bump] bump-render=height: FPS: 6343 FrameTime: 0.158 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 4992 FrameTime: 0.200 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 3499 FrameTime: 0.286 ms [pulsar] light=false:quads=5:texture=false: FPS: 5799 FrameTime: 0.172 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 1630 FrameTime: 0.613 ms [desktop] effect=shadow:windows=4: FPS: 4561 FrameTime: 0.219 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 556 FrameTime: 1.799 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 505 FrameTime: 1.980 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 856 FrameTime: 1.168 ms [ideas] speed=duration: FPS: 2402 FrameTime: 0.416 ms [jellyfish] <default>: FPS: 3955 FrameTime: 0.253 ms [terrain] <default>: FPS: 305 FrameTime: 3.279 ms [shadow] <default>: FPS: 3988 FrameTime: 0.251 ms [refract] <default>: FPS: 667 FrameTime: 1.499 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 5024 FrameTime: 0.199 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 4575 FrameTime: 0.219 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 5055 FrameTime: 0.198 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 4917 FrameTime: 0.203 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 4710 FrameTime: 0.212 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 4959 FrameTime: 0.202 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 5140 FrameTime: 0.195 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 4913 FrameTime: 0.204 ms ======================================================= glmark2 Score: 4005 ======================================================= |
A 4,005 score is quite impressive and four times the ODROID-N2+ score (970 points), and the Khadas Edge2 fares much better even after “optimizations” where the ODROID-N2+ board can get 1,244 points.
We can also play some games using the PPSSPP emulator:
1 2 |
wget https://dl.khadas.com/.test/.test/ppsspp_1.12.3-1138-g36bc7a3e6~jammy_arm64.deb sudo dpkg -i ppsspp_1.12.3-1138-g36bc7a3e6~jammy_arm64.deb |
Just type PPSSPP in the dash to launch the emulator and install some games.
The Tetris-like game above runs at 60 fps without issues. Finally, we were told SuperTuxkart would work fine, but it only showed in a quarter window, and changing the display settings within the game did not help.
The strange thing is that it works on Khadas’ side, and it’s unclear why it doesn’t for me.
There’s also one specific use case where 3D graphics acceleration does not work: dual display setups with one monitor connected to the HDMI, and the other through the USB-C port. In that case, the system will switch to the X11 windowing system, and 3D graphics acceleration is only supported with Wayland.
Khadas Edge2 NPU support
Another good news is that NPU support is working at launch with Python and C++ SDKs. I had to use the SDK and samples from a 7z file, but the code has now been released on Github.
We’ll first need to install dependencies and the NPU toolchain to run the Python samples:
1 2 3 4 5 6 7 |
git clone https://github.com/rockchip-linux/rknpu2/ sudo cp rknpu2/runtime/RK3588/Linux/librknn_api/aarch64/librknnrt.so /usr/lib wget https://dl.khadas.com/.test/.test/edge2npu.7z 7z x edge2npu.7z cd edge2npu/Python sudo apt install -y python3-dev python3-pip python3-opencv python3-numpy pip3 install ./wheel/rknn_toolkit_lite2-1.3.0-cp310-cp310-linux_aarch64.whl |
We can now try a sample such as resnet18:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ cd resnet18 $ python3 resnet18.py --> Load RKNN model done --> Init runtime environment I RKNN: [21:59:32.726] RKNN Runtime Information: librknnrt version: 1.4.0 (a10f100eb@2022-09-09T09:07:14) I RKNN: [21:59:32.726] RKNN Driver Information: version: 0.7.2 I RKNN: [21:59:32.726] RKNN Model Information: version: 1, toolkit version: 1.3.0-11912b58(compiler version: 1.3.0 (c193be371@2022-05-04T20:23:58)), target: RKNPU v2, target platform: rk3588, framework name: PyTorch, framework layout: NCHW done --> Running model resnet18 -----TOP 5----- [812]: 0.9996383190155029 [404]: 0.00028062646742910147 [657]: 1.632110434002243e-05 [833 895]: 1.015904672385659e-05 [833 895]: 1.015904672385659e-05 done |
The program basically loads the image “space_shuttle_224.jpg” and a pre-trained model and finds it’s the Space Shuttle or maybe just a spaceship with 99.96% probability against other pre-trained objects.
We can also try the face_mask demo:
1 2 3 4 5 6 7 8 9 10 11 |
$ cd ../face_mask/ $ python3 face_mask.py --> Load RKNN model done --> Init runtime environment I RKNN: [22:04:42.138] RKNN Runtime Information: librknnrt version: 1.4.0 (a10f100eb@2022-09-09T09:07:14) I RKNN: [22:04:42.139] RKNN Driver Information: version: 0.7.2 I RKNN: [22:04:42.139] RKNN Model Information: version: 1, toolkit version: 1.3.0-11912b58(compiler version: 1.3.0 (c193be371@2022-05-04T20:23:58)), target: RKNPU v2, target platform: rk3588, framework name: TensorFlow, framework layout: NHWC done --> Running model done |
There’s nothing interesting about the terminal output, but the Python program will generate an image (out.jpg) with a box to show where the face mask(s) is/are.
I’ve replaced the image in /data/img/face.jpg with a crowd wearing face masks to check out the results:
As you can see above, the resulting out.jpg does not come with any boxes meaning the program did not detect any masks in the photo. I think we would have to change a few parameters in the Python program to match our image:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
INPUT_SIZE = 260 NUM_RESULTS = 1917 NUM_CLASSES = 91 Y_SCALE = 10.0 X_SCALE = 10.0 H_SCALE = 5.0 W_SCALE = 5.0 feature_map_sizes = [[33, 33], [17, 17], [9, 9], [5, 5], [3, 3]] anchor_sizes = [[0.04, 0.056], [0.08, 0.11], [0.16, 0.22], [0.32, 0.45], [0.64, 0.72]] anchor_ratios = [[1, 0.62, 0.42]] * 5 |
I’m just not sure which ones, and Khadas was not able to help in time for this review. I’ll update this section if a solution is found.
Storage testing and benchmarks
I’ve installed iozone3 to first test the 64GB eMMC flash performance:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.489 $ Compiled for 64 bit mode. Build: linux Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 27232 32682 26385 26384 21000 31066 1024000 16 74798 86684 75798 75628 64568 84228 1024000 512 204519 210910 241968 241825 227516 208831 1024000 1024 212747 214321 269673 269612 256720 206418 1024000 16384 197618 203153 307716 308170 306382 200012 iozone test complete. |
We’ve got sequential reads up to 300 MB/s, writes up to 200 MB/s, and decent random R/W performance. For comparison, the eMMC flash in a Raspberry Pi CM4 is limited to 100MB/s.
Now let’s test the USB 3.0 Type-C (5Gbps) port with ORICO USB 3.2 Gen 1 enclosure fitted with an Apacer NVMe SSD capable of up to 1,800 MB/s reads, and 1,100 MB/s writes, and formatted with EXT-4.
1 2 3 4 5 6 7 8 9 |
khadas@Khadas:/media/sda1$ iozone -e -I -a -s 1000M -r 16384k -i 0 -i 1 Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 397606 398500 342547 342983 iozone test complete. |
I’ve repeated the test several times, with the same results. about 342 MB/s sequential reads and 398MB/s write speeds. I think that’s roughly what we should expect over a 5 Gbps USB port although some optimizations may push that over 400MB/s.
Networking (WiFi & 2.5GbE)
Let’s check out WiFi 6 performance bearing in mind I only have the larger antenna connected:
- Upload
12345678910111213141516$ iperf3 -t 60 -c 192.168.31.48 -i 10Connecting to host 192.168.31.48, port 5201[ 5] local 192.168.31.197 port 43180 connected to 192.168.31.48 port 5201[ ID] Interval Transfer Bitrate Retr Cwnd[ 5] 0.00-10.00 sec 543 MBytes 455 Mbits/sec 0 3.15 MBytes[ 5] 10.00-20.00 sec 539 MBytes 452 Mbits/sec 0 3.15 MBytes[ 5] 20.00-30.00 sec 540 MBytes 453 Mbits/sec 1 2.97 MBytes[ 5] 30.00-40.00 sec 488 MBytes 409 Mbits/sec 0 3.01 MBytes[ 5] 40.00-50.00 sec 489 MBytes 410 Mbits/sec 0 3.01 MBytes[ 5] 50.00-60.00 sec 576 MBytes 483 Mbits/sec 0 3.01 MBytes- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate Retr[ 5] 0.00-60.00 sec 3.10 GBytes 444 Mbits/sec 1 sender[ 5] 0.00-60.02 sec 3.10 GBytes 443 Mbits/sec receiveriperf Done. - Download
12345678910111213141516171819-----------------------------------------------------------Server listening on 5201-----------------------------------------------------------Accepted connection from 192.168.31.197, port 43182[ 5] local 192.168.31.48 port 5201 connected to 192.168.31.197 port 43184[ ID] Interval Transfer Bitrate Retr Cwnd[ 5] 0.00-10.00 sec 988 MBytes 829 Mbits/sec 0 3.03 MBytes[ 5] 10.00-20.00 sec 981 MBytes 823 Mbits/sec 0 3.03 MBytes[ 5] 20.00-30.00 sec 985 MBytes 826 Mbits/sec 0 3.03 MBytes[ 5] 30.00-40.00 sec 991 MBytes 832 Mbits/sec 0 3.03 MBytes[ 5] 40.00-50.00 sec 985 MBytes 826 Mbits/sec 0 3.03 MBytes[ 5] 50.00-60.00 sec 984 MBytes 825 Mbits/sec 0 3.03 MBytes[ 5] 60.00-60.02 sec 1.25 MBytes 663 Mbits/sec 0 3.03 MBytes- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate Retr[ 5] 0.00-60.02 sec 5.78 GBytes 827 Mbits/sec 0 sender-----------------------------------------------------------Server listening on 5201-----------------------------------------------------------
That’s pretty good, and the download speed is not that far from what we’d get with a Gigabit Ethernet port.
While Khadas Edge2 does not come with an Ethernet port at all, it’s still possible to add 2.5GbE through a 2.5GbE USB Type-C dongle.
Ultra-compact boards are nice, but as you can see, I had to remove the USB mouse and HDMI cable to test 2.5GbE. This could easily be resolved with an extension cable. Let’s get to the results:
- Upload
12345678910111213Accepted connection from 192.168.31.112, port 33996[ 5] local 192.168.31.48 port 5201 connected to 192.168.31.112 port 33998[ ID] Interval Transfer Bitrate[ 5] 0.00-10.00 sec 702 MBytes 589 Mbits/sec[ 5] 10.00-20.00 sec 1.40 GBytes 1.20 Gbits/sec[ 5] 20.00-30.00 sec 1.09 GBytes 936 Mbits/sec[ 5] 30.00-40.00 sec 472 MBytes 396 Mbits/sec[ 5] 40.00-50.00 sec 1.30 GBytes 1.11 Gbits/sec[ 5] 50.00-60.00 sec 480 MBytes 403 Mbits/sec[ 5] 60.00-61.30 sec 0.00 Bytes 0.00 bits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate[ 5] 0.00-61.30 sec 5.40 GBytes 757 Mbits/sec receiver - Download
12345678910111213Accepted connection from 192.168.31.112, port 33992[ 5] local 192.168.31.48 port 5201 connected to 192.168.31.112 port 33994[ ID] Interval Transfer Bitrate Retr Cwnd[ 5] 0.00-10.00 sec 509 MBytes 427 Mbits/sec 83 112 KBytes[ 5] 10.00-20.00 sec 460 MBytes 386 Mbits/sec 88 80.6 KBytes[ 5] 20.00-30.00 sec 479 MBytes 401 Mbits/sec 75 94.7 KBytes[ 5] 30.00-40.00 sec 507 MBytes 426 Mbits/sec 70 191 KBytes[ 5] 40.00-50.00 sec 500 MBytes 419 Mbits/sec 74 139 KBytes[ 5] 50.00-60.00 sec 470 MBytes 394 Mbits/sec 79 83.4 KBytes- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate Retr[ 5] 0.00-60.00 sec 2.86 GBytes 409 Mbits/sec 470 sender-----------------------------------------------------------
Truly horrific numbers, but I can see the cdc_ncm driver is loaded:
1 2 3 4 5 6 |
$ lsmod Module Size Used by cdc_mbim 16384 0 cdc_wdm 24576 1 cdc_mbim cdc_ncm 28672 1 cdc_mbim cdc_ether 16384 1 cdc_ncm |
I wanted to use the r8152 driver instead, but the method I used on my laptop somehow did not work, and I’m not ready to spend countless hours again making a Realtek 2.5GbE USB dongle work properly…
So I switched to a MINI USB-C dock with Gigabit Ethernet.
and it works well in both directions:
- Upload
12345678910111213Accepted connection from 192.168.31.104, port 40016[ 5] local 192.168.31.48 port 5201 connected to 192.168.31.104 port 40018[ ID] Interval Transfer Bitrate[ 5] 0.00-10.00 sec 1.09 GBytes 932 Mbits/sec[ 5] 10.00-20.00 sec 1.09 GBytes 933 Mbits/sec[ 5] 20.00-30.00 sec 1.09 GBytes 933 Mbits/sec[ 5] 30.00-40.00 sec 1.09 GBytes 933 Mbits/sec[ 5] 40.00-50.00 sec 1.09 GBytes 933 Mbits/sec[ 5] 50.00-60.00 sec 1.09 GBytes 933 Mbits/sec[ 5] 60.00-60.00 sec 437 KBytes 902 Mbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate[ 5] 0.00-60.00 sec 6.52 GBytes 933 Mbits/sec receiver - Download
12345678910111213Accepted connection from 192.168.31.104, port 40020[ 5] local 192.168.31.48 port 5201 connected to 192.168.31.104 port 40022[ ID] Interval Transfer Bitrate Retr Cwnd[ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec 0 645 KBytes[ 5] 10.00-20.00 sec 1.10 GBytes 942 Mbits/sec 0 987 KBytes[ 5] 20.00-30.00 sec 1.10 GBytes 942 Mbits/sec 0 987 KBytes[ 5] 30.00-40.00 sec 1.10 GBytes 942 Mbits/sec 0 987 KBytes[ 5] 40.00-50.00 sec 1.10 GBytes 942 Mbits/sec 0 987 KBytes[ 5] 50.00-60.00 sec 1.10 GBytes 942 Mbits/sec 0 987 KBytes- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate Retr[ 5] 0.00-60.00 sec 6.58 GBytes 942 Mbits/sec 0 sender-----------------------------------------------------------
Bluetooth
I’ve tried Bluetooth by connecting my phone to the Khadas Edge2 Pro board. The good news is that Bluetooth is enabled and the connection was successful.
I was not able to send files though, as the Khadas board only shows up as an audio device. So I tried to use it as a speaker through the connected HDMI display, and the audio would consistently cut.
I could also connect the board to a Bluetooth headset, but I had the same problem with the audio cutting regularly.
It might work better with Bluetooth HID devices, but I don’t have any to test.
GPIO testing
The GPIO situation is exactly the same as on the Rock 5B board.
1 2 3 4 5 6 7 |
khadas@Khadas:~$ ls -l /dev/gpiochip? crw------- 1 root root 254, 0 Sep 18 21:42 /dev/gpiochip0 crw------- 1 root root 254, 1 Sep 18 21:42 /dev/gpiochip1 crw------- 1 root root 254, 2 Sep 18 21:42 /dev/gpiochip2 crw------- 1 root root 254, 3 Sep 18 21:42 /dev/gpiochip3 crw------- 1 root root 254, 4 Sep 18 21:42 /dev/gpiochip4 crw------- 1 root root 254, 5 Sep 18 21:42 /dev/gpiochip5 |
and we can control those through sysfs:
1 2 3 4 5 6 |
cd /sys/class/gpio sudo sh -c 'echo 150 > export' cd gpio150 sudo sh -c 'echo out > direction' sudo sh -c 'echo 1 > value' sudo sh -c 'echo 0 > value' |
The main difference is on the hardware side since the Khadas Edge2 does not come with a typical female header, but instead two FPC connectors for I/O that require add-on boards.
I can also see WiringPiu library is installed, but could not test it due to time constraints:
1 2 3 |
khadas@Khadas:~$ ls /usr/local/lib/ libwiringPi.so libwiringPiDev.so python3.10 libwiringPi.so.3.13 libwiringPiDev.so.3.13 |
VPU (Video Processing Unit)
Khadas told me both hardware and software video decoding work on the Khadas Edge2. I first tried a 4K YouTube video in Firefox.
It’s relying on software decode considering the relatively high CPU usage, but a 4K video @ 30 fps plays fine without any frames dropped, except a few at the beginning.
We’ll need to use gstreamer to play an H.264 video with hardware decoding. I was given this command line:
1 |
$ gst-launch-1.0 filesrc location=big_buck_bunny_4k_H264_60fps.mp4 ! qtdemux name=d d.video_0 ! h264parse ! v4l2h264dec capture-io-mode=4 ! video/x-raw,format=NV12 ! waylandsink |
It just did not work for me:
1 |
WARNING: erroneous pipeline: no element "v4l2h264dec" |
That’s the tricky part of having to review a board before launch and without documentation…
We can try to find the proper decoder with gst-inpect:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ gst-inspect-1.0 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstrockchipmpp.so Plugin Details: Name rockchipmpp Description Rockchip Mpp Video Plugin Filename /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstrockchipmpp.so Version 1.14.4 License LGPL Source module gst-rockchip Binary package GStreamer Rockchip Plug-ins Origin URL Unknown package origin mpph264enc: Rockchip Mpp H264 Encoder mpph265enc: Rockchip Mpp H265 Encoder mppjpegdec: Rockchip's MPP JPEG image decoder mppjpegenc: Rockchip Mpp JPEG Encoder mppvideodec: Rockchip's MPP video decoder mppvp8enc: Rockchip Mpp VP8 Encoder |
It looks like mppvideodec should be used instead of v4l2h264dec, but I could not manage to find the right command…
[Update from Khadas:
Edge2 gstreamer hardware decoder under Ubuntu 22.04 still has some issues need to fix up, so at this moment it doesn’t work properly due to the waylans sink issue.
Power consumption
Some power consumption numbers for reference:
- Power off – 0.0 Watt
- Idle – 2.9 Watts
- 4K YouTube Video in Firefox (full screen) – 7.5 to 10.9 Watts
- Stress test on all 8 cores (stress -c 8) – 9.0 Watts
That’s quite a power-efficient board considering the processing power of the device. It also further illustrates the CPU is only part of the equation in modern complex SoCs, as 4K video playback’s peak power consumption is close to 11 Watts.
Summary
The Khadas Edge2 Pro performs well in Ubuntu 22.04, and features on Linux are better supported than I would have expected at that time, with great progress since I tested Debian 11 on the Rock 5B board just two months ago. I still have several issues here and there, but that should be expected considering I got the board before it launched.
The Khadas Edge2 has just launched as part of Khadas’ Autumn launch event both as a maker kit as reviewed here and an Arm mini PC with enclosure. Other products part of the launch include the entry-level Khadas VIM1S SBC, and devices for audiophiles: the Tone2 DAC and BT Magic module. You can purchase the Khadas Edge2 on Amazon or Khadas online store.
Khadas promises to ship the Edge2 Maker Kits ship within 2 days once the order is confirmed, and Edge2 ARM PCs will ship on or before mid-December 2022.
Continue reading Khadas Edge2 review with Android 12.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
As for the USB3 storage performance: since Rock 5B achieves 425/415 MB/s (write/read) Edge2 should do the same with appropriate USB-to-SATA bridge and of course appropriate settings as well (see these Rock5B suggestions though missing IRQ/SMP affinity settings there and in Khadas’s fenix-hardware-optimization service)
> Ilde – 2.9 Watts
With a display connected?
Honestly that’s quite high and most probably an indication for a few tunables missing or Khadas just playing safe with ‘benchmark optimized’ settings so far. Once they enable the dmc/dfi device-tree nodes DRAM will be clocked dynamically (600mW less in idle), changing cpufreq governor and checking ASPM (/sys/module/pcie_aspm/parameters/policy) is worth a look to.
Display and USB keyboard.
The governor is set to “performance” by default as well.
OK, (even blanked) display results in +300mW consumption and keyboard or not can make a real difference. 🙂
That’s my Rock 5B headless (just Gigabit Ethernet): 1280mW. And with an USB keyboard with integrated USB hub it’s 800mW more: 2070mW
What does cat /sys/module/pcie_aspm/parameters/policy say?
Note that my results are fairly lower than with Rock 5B. I also have a WiFi 6 connection which needs to be taken into account.
> default performance [powersave] powersupersave
Would be worth further tests with both default and performance whether Wi-Fi bandwidth improves (worsening idle consumption most probably). But you’ve just one antenna working :\
We have seen RK3588 boards now from Khadas, Pine64, Radxa and more (announcements and samples).
Are there boards available for users currently?
Khadas is taking orders and promises to ship the board within 2 days.
Radxa RK3588 is available to buy on Aliexpress
Yep, we’ve done the mass production run, and all the orders are able to be shipped out immediately.
Nice
$100-$140 more than the rock5. Is there something special about this board that I’m not seeing? I like that it ships in 3 days but not sure about the additional costs
SBCs from Vim is almost always pricier than the others
> $100-$140 more than the rock5. Is there something special about this board that I’m not seeing?
Probably Rock 5B using the more expensive RK3588 and not the RK3588s on Edge2? 😉
I’d have loved to run RHEL on an RK3588, but Still in 2022 this is hassle!
I’d rather go some low power Ryzens on which I can run what distro I want knowing it would use more power.
Reject ARM, return to x86.
If you are willing to manage the boot loader and kernel yourself you can run any arm distro you choose
wait for ryzen 7xxx. it has ~70% performance uplift vs ryzen 5xxx in 65w TDP. As for me, always underclock and undervolt itu to ~35W. I expect maybe ~40% perf uplift vs 5xxx ryzen in that tdp bracket.
It was useful to make some comparison with an Intel based device in the N3350 CPU from 2016.
However, when making the comment about it perhaps being comparable with Apollo Lake or Jasper Lake, then it is a little too vague because those ranges have variation in performances. So a more direct comparison test would be of more use because when you look at the Edge2 pricing, it is definitely in the Jasper lake territory, which may make the choice of the Edge2, even at the lowest price, difficult to justify in some areas.
I suspect, that from all of the general RK3588 reviews that I have seen so far, Android is where it is at right now, specially when it comes to hardware accelerated video playback.
The lack of Ethernet is a big downside for me and the lack of onboard support for M.2 NVME is is huge mistake.
Right now, the Rock 5B looks like being the one to have the overall functionality that most will want and like and as they start to get them out of the door soon (supposedly) then we will get some reviews to put it through its real world paces.
Bottom line for me is that the Edge2 doesn’t get a second thought based upon what I can see.
And on their buy it page, there is mention of the optional Edge2 Active Cooling Kit but no option to purchase or show a price, which is poor.
> M.2 NVME
Edge2 is not based on expensive RK3588 but on the crippled RK3588s that has almost no I/O. Just two PCIe Gen2 lanes (both pinmuxed with SATA/USB3): one is used for the Wi-Fi/BT chip, the other is USB3. There’s no PCIe signals you could route to an M.2 slot 🙂
> Active Cooling Kit
KAHS-E-F02 for an additional 25 bucks…
> I do not understand why you are fixated on the Rock5.
Huh? I just explained why there’s no M.2 slot on Edge2 which is the result of using the crippled RK3588 variant. Asides that there exists more than one use case in this world and your understanding of NVMe and PCIe seems not to be complete 🙂
There’s a lot more that can be done with RK3588’s five PCIe 3.0 controllers 🙂
> Again why would you want PCIe controllers everywhere
Oh boy… it’s about use cases and the ones I’m interested in are about I/O. For other people that’s totally different and everything’s fine.
M.2 is a connector with defined pinout and specific widths and the specs support various device lengths. I get a 256GB Samsung PM991 for 30€ (M.2 2242 that means 22mm wide, 42mm long). Compare with the $100 Khadas charges for the 8/32GB RAM/eMMC upgrade between ‘Basic’ and ‘Pro’ Edge2. eMMC storage per GB almost 10 times more expensive than NVMe, right?
Your claims about M.2 slot only usable for NVMe storage and this resulting in high consumption and generated heat… plain BS 🙁
You can route the PCIe signals to a ‘standard’ PCIe slot, RK3588 supports bifurcation down to 4 x x1 so a single M.2 slot could support four different PCIe devices (though so far e.g. Radxa only supports 2 x x2 since with only 5 PCIe controllers inside RK3588 this mode would result in no PCIe signals available in the 2nd key E M.2 slot)
Then: why did Apple started to use NVMe storage in their iPad Pro line already half a decade ago? To generate more heat and ruin battery life? Nope, exactly the opposite: race to idle, finishing everything I/O related in as less time as possible to send everything storage back to deep sleep immediately. To save power of course!
Think about this with consumer SSDs:
An appropriate driver/OS tries to keep this thing in state 3 most of the time so only 0.05W (!) are ‘wasted’.
This just for your (lack of) understanding about M.2, NVMe and PCIe. The Edge2 not having a M.2 slot is perfectly fine. I just explained why it’s impossible to have an M.2 slot (not to you but to Lucien) and I honestly don’t care because Edge2 is useless for every single use case I’m interested in. Which is fine too because there exists more than 1 use case in this world and fortunately more than 1 device as well.
> Khadas releases a product without the availability of I/O expansion boards
Huh? The so called ‘Edge2-IO Module’ is for UART, TF card, GPIOs, etc. – and the Pogo pads on both the bottom of the PCB and the enclosure carry USB2 and UART signals and provide 5V.
> tomorrow will be october
Huh?
The Edge2 is better suited to robotics and space-constrained embedded applications. Similar Jasper Lake platforms for those target markets might be quite more expensive than a typical Jasper Lake mini PC.
Nice to see proper software support from the hardware vendor and pretty good hardware too.
Not sure how difficult it would be but perhaps another addition to the distros could be KDE Neon as a KDE/flatpak out of the box solution, they do make Arm builds.
Did some testing to search for an easy way to lower Edge2’s idle consumption by 500-600mW while not harming performance too much: recipe should apply to all RK3588/RK3588s thingies.
Hello,
I ordered the Khadas 2 Pro from their Mainsite. I life in Germany and i know they are on Amazon too. But instead sending the Khadas 2 Pro + Extras (i paid 400 Euros) directly from Germany, they wanted to send it from China! So i paid 40 Euros extra for 3 day delivery, now i waiting 2 Weeks and tomorrow DHL said it is there! But they also wanted 90 Euros for Toll etc.! So i paid it. I am now by 530 Euro for Khadas 2 pro, the Ethernetboard and a power supply, there for i can buy many Raspberry Pi 5. So would i say buy it, you get a clear: NO! Never again! And i also would make a youtube video in german language about it and all the costs.
Greetings,
Tom