I received a kit for review last week with an ODROID-H5 SBC, a Type1 case, an M.2 10GbE module, and other accessories. In the first part of the review, I went through an unboxing, assembled the kit, and tested whether it could boot an M.2 NVMe SSD with Ubuntu 24.04 and Windows 11.
I’ve now updated the system to Ubuntu 26.04, run a few benchmarks, tested the two 10GbE RJ45 ports, as well as other features. I’ll report my experience about all that today.

Upgrading from Ubuntu 24.04 to Ubuntu 26.04
The 512GB M.2 NVMe SSD I use in the ODROID-H5 comes from a laptop, which I upgraded with a 2TB SSD. That means the operating systems were not upgraded for a few months. While Ubuntu 24.04 could boot, it would not show the two 10GbE interfaces.
That’s because the required drivers were not available in the version of Ubuntu 24.04 HWE on the SSD. I thought, no problem, I’ll just use a USB-C dock with built-in Ethernet. The only problem is that the ODROID-H5 doesn’t come with a USB-C port. I switched the USB-C to USB-C cable with a USB-C to USB-A (power and data) cable, but the USB-C dock (MINIX 480GB SSD) was not recognized with that cable. I ended up using the same USB cable with my Android smartphone and enabled USB tethering to update Ubuntu 24.04 to a more recent kernel (Linux 6.17) with RTL8127 drivers.
After that, both RTL8127-based 10Gbps Ethernet interfaces were recognized. Sp I disconnected the Android smartphone and upgraded from Ubuntu 24.04 to Ubuntu 26.04 over one of the Ethernet ports without major issues. That’s probably a unique case, and anybody installing Ubuntu 26.04 or the latest version of Ubuntu 24.04 should have both RJ45 ports working out of the box.
ODROID-H5 System Info on Ubuntu 26.04
Let’s check the system information in Settings->About.
We are shown a HARDKERNEL ODROID-H5 hardware model powered by an Intel Core i3-N300 octa-core processor paired with 16GB RAM and 512.1 GB storage running Ubuntu 26.04 LTS. The device name is CNX-LAPTOP-5 since it came from a laptop, and I’ll change that to CNX-ODROID-H5 shortly…

Ubuntu 26.04 LTS 64-bit ships with Linux 7.0 and defaults to Wayland windowing system as expected…
Let’s find out more details about the system using inxi utility:
|
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 |
jaufranc@CNX-ODROID-H5:~$ sudo inxi -Fc0 System: Host: CNX-ODROID-H5 Kernel: 7.0.0-15-generic arch: x86_64 bits: 64 Console: pty pts/1 Distro: Ubuntu 26.04 (Resolute Raccoon) Machine: Type: Desktop Mobo: HARDKERNEL model: ODROID-H5 v: 1.0 serial: N/A Firmware: UEFI vendor: American Megatrends LLC. v: 1.2 date: 04/09/2026 CPU: Info: 8-core model: Intel Core i3-N300 bits: 64 type: MCP cache: L2: 4 MiB Speed (MHz): avg: 700 min/max: 700/3800 cores: 1: 700 2: 700 3: 700 4: 700 5: 700 6: 700 7: 700 8: 700 Graphics: Device-1: Intel Alder Lake-N [UHD Graphics] driver: i915 v: kernel Display: unspecified server: X.org v: 1.21.1.22 with: Xwayland v: 24.1.10 driver: X: loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915 tty: 80x24 resolution: 1920x1080 API: EGL v: 1.5 drivers: iris,swrast platforms: gbm,surfaceless,device API: OpenGL v: 4.6 compat-v: 4.5 vendor: mesa v: 26.0.3-1ubuntu1 note: console (EGL sourced) renderer: Mesa Intel Graphics (ADL-N), llvmpipe (LLVM 21.1.8 256 bits) Info: Tools: api: eglinfo,glxinfo wl: swaymsg,wlr-randr x11: xdriinfo, xdpyinfo, xprop, xrandr Audio: Device-1: Intel Alder Lake-N PCH High Definition Audio driver: snd_hda_intel API: ALSA v: k7.0.0-15-generic status: kernel-api Network: Device-1: Realtek RTL8127 10GbE driver: r8169 IF: enp1s0 state: down mac: 00:1e:06:45:e4:cc Device-2: Realtek RTL8127 10GbE driver: r8169 IF: enp2s0 state: up speed: 2500 Mbps duplex: full mac: 00:1e:06:45:dc:2b IF-ID-1: docker0 state: down mac: 46:3e:46:34:b1:c2 Drives: Local Storage: total: 476.94 GiB used: 332.89 GiB (69.8%) ID-1: /dev/nvme0n1 vendor: Intel model: SSDPEKNU512GZ size: 476.94 GiB Partition: ID-1: / size: 369.97 GiB used: 332.79 GiB (90.0%) fs: ext4 dev: /dev/nvme0n1p5 ID-2: /boot/efi size: 256 MiB used: 103.7 MiB (40.5%) fs: vfat dev: /dev/nvme0n1p1 Swap: ID-1: swap-1 type: file size: 8 GiB used: 0 KiB (0.0%) file: /swapfile ID-2: swap-2 type: zram size: 7.43 GiB used: 0 KiB (0.0%) dev: /dev/zram0 Sensors: System Temperatures: cpu: 79.5 C mobo: N/A Fan Speeds (rpm): N/A Info: Memory: total: 16 GiB available: 14.86 GiB used: 3.97 GiB (26.7%) igpu: 60 MiB Processes: 284 Uptime: 2m Init: systemd Shell: Sudo inxi: 3.3.40 |
The Core i3-N300 features eight cores clocked at 700 to 3800 MHz, the two RTL8127 10GbE interfaces are detected once connected at 2.5 Gbps (expecting since the mini PC is connected to a 2.5GbE switch at this stage), and we’ve got 16GB RAM and a 476.94 GiB NVMe SSD. Everything looks good, except that a CPU temperature of 79.5°C is a bit worrying after updating a few packages in Ubuntu 26.04.
ODROID-H5 benchmarks
Let’s find out how the SBC performs with some benchmarks, all done at a room temperature of around 30 to 32°C.
I’ll start with the usual sbc-bench.sh script:
|
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
jaufranc@CNX-ODROID-H5:~$ sudo ./sbc-bench.sh -r Starting to examine hardware/software for review purposes... sbc-bench v0.9.72 Installing needed tools: apt-get -f -qq -y install powercap-utils links mmc-utils smartmontools stress-ng, p7zip 16.02, tinymembench, ramlat, mhz, cpufetch, cpuminer. Done. Checking cpufreq OPP. Done. Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Throttling test: heating up the device, 5 more minutes to wait. Done. Checking cpufreq OPP again. Done (12 minutes elapsed). Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * No swapping * Background activity (%system) OK * Too much other background activity: 0% avg, 4% max -> https://tinyurl.com/mr2wy5uv * Powercap detected. Details: "sudo powercap-info -p intel-rapl" -> https://tinyurl.com/4jh9nevj # HARDKERNEL ODROID-H5 1.0 / i3-N300 Tested with sbc-bench v0.9.72 on Sat, 30 May 2026 14:55:58 +0700. ### General information: Information courtesy of cpufetch: Name: Intel(R) Core(TM) i3-N300 Microarchitecture: Alder Lake Technology: 10nm Max Frequency: 3.800 GHz Cores: 8 cores AVX: AVX,AVX2 FMA: FMA3 L1i Size: 64KB (512KB Total) L1d Size: 32KB (256KB Total) L2 Size: 2MB (4MB Total) L3 Size: 6MB i3-N300, Kernel: x86_64, Userland: amd64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 700 3800 - 1 0 1 700 3800 - 2 0 2 700 3800 - 3 0 3 700 3800 - 4 0 4 700 3800 - 5 0 5 700 3800 - 6 0 6 700 3800 - 7 0 7 700 3800 - 15215 KB available RAM ### Policies (performance vs. idle consumption): Status of performance related policies found below /sys: /sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave ### Clockspeeds (idle vs. heated up): Before at 92.0°C: cpu0: OPP: 3800, Measured: 3786 After at 94.0°C (throttled): cpu0: OPP: 3800, Measured: 3638 (-4.3%) ### Performance baseline * memcpy: 10382.9 MB/s, memchr: 16875.8 MB/s, memset: 19661.3 MB/s * 16M latency: 104.2 91.02 104.0 91.47 103.8 87.02 85.24 91.69 * 128M latency: 111.0 107.6 111.4 108.1 111.3 104.2 103.7 107.3 * 7-zip MIPS (3 consecutive runs): 13754, 12460, 11069 (12430 avg), single-threaded: 3797 * `aes-256-cbc 636313.90k 942809.62k 1019438.34k 1045540.18k 1062128.30k 1053212.67k` * `aes-256-cbc 778920.92k 1068944.68k 1137494.19k 1157777.41k 1166417.92k 1164170.58k` ### PCIe and storage devices: * Intel Alder Lake-N [UHD Graphics] (Onboard - Video): driver in use: i915 * Intel Alder Lake-N Processor USB 3.2 xHCI (Onboard - Other): driver in use: xhci_hcd * Intel Alder Lake-N PCH USB 3.2 Gen 2x1 (10 Gb/s) xHCI Host (Onboard - Other): driver in use: xhci_hcd * Intel Alder Lake-N eMMC (Onboard - Other): driver in use: sdhci-pci * Intel Alder Lake-N PCH High Definition Audio (Onboard - Sound): driver in use: snd_hda_intel * Realtek RTL8127 10GbE: Speed 8GT/s, Width x2, driver in use: r8169, * Realtek RTL8127 10GbE: Speed 8GT/s, Width x2, driver in use: r8169, * 476.9GB "INTEL SSDPEKNU512GZ" SSD as /dev/nvme0: Speed 8GT/s, Width x2 (downgraded), 4% worn out, drive temp: 60°C, ASPM Disabled * Winbond W25Q128JV 16MB SPI NOR flash, drivers in use: spi-nor/intel-spi ### Challenging filesystems: The following partitions are NTFS: nvme0n1p3,nvme0n1p4 -> https://tinyurl.com/mv7wvzct ### Swap configuration: * /swapfile on /dev/nvme0n1p5: 8.0G (0K used) * /dev/zram0: 7.4G (0K used, lzo-rle, 4K streams, 74B data, 12K compressed, total) ### Software versions: * Ubuntu 26.04 LTS (resolute) * Compiler: /usr/bin/gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0 / x86_64-linux-gnu * OpenSSL 3.5.5, built on 27 Jan 2026 (Library: OpenSSL 3.5.5 27 Jan 2026) ### Kernel info: * `/proc/cmdline: BOOT_IMAGE=/boot/vmlinuz-7.0.0-15-generic root=UUID=39c940e2-b543-4242-a63b-816552412786 ro quiet splash crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M` * Vulnerability Reg file data sampling: Mitigation; Clear Register File * Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl * Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization * Vulnerability Vmscape: Mitigation; IBPB before exit to userspace * Kernel 7.0.0-15-generic / CONFIG_HZ=1000 Waiting for the device to cool down............... 94.0°C^C |
CPU throttling does occur, and the CPU temperature is ultra-high at all times. We can check a few data points from the full log.
Tinymembench memory benchmark is a single-thread benchmark and normally not challenging for the system, but the temperature was 94-95°C:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
System health while running tinymembench: Time CPU load %cpu %sys %usr %nice %io %irq Temp 14:44:12: 3433MHz 1.76 12% 0% 4% 6% 0% 0% 95.0°C 14:44:22: 3450MHz 1.64 12% 0% 12% 0% 0% 0% 95.0°C 14:44:33: 3253MHz 1.54 12% 0% 12% 0% 0% 0% 95.0°C 14:44:43: 3648MHz 1.46 12% 0% 12% 0% 0% 0% 94.0°C 14:44:53: 3157MHz 1.36 12% 0% 12% 0% 0% 0% 95.0°C 14:45:03: 3166MHz 1.30 16% 0% 12% 3% 0% 0% 95.0°C 14:45:13: 3208MHz 1.25 12% 0% 12% 0% 0% 0% 95.0°C 14:45:23: 3468MHz 1.21 12% 0% 12% 0% 0% 0% 94.0°C 14:45:33: 3662MHz 1.18 12% 0% 12% 0% 0% 0% 94.0°C |
cpuminer is much more demanding, and performance collapses with the CPU running as low as 800 MHz here:
|
1 2 3 4 5 6 7 8 9 10 |
System health while running cpuminer: Time CPU load %cpu %sys %usr %nice %io %irq Temp 14:51:01: 1100MHz 8.18 28% 0% 23% 3% 0% 0% 94.0°C 14:51:45: 800MHz 8.09 100% 0% 99% 0% 0% 0% 94.0°C 14:52:29: 1100MHz 8.12 100% 0% 99% 0% 0% 0% 96.0°C 14:53:12: 1148MHz 8.10 100% 0% 99% 0% 0% 0% 94.0°C 14:53:56: 1001MHz 8.13 100% 0% 99% 0% 0% 0% 94.0°C 14:54:40: 1045MHz 8.13 100% 0% 99% 0% 0% 0% 94.0°C 14:55:24: 800MHz 8.10 100% 0% 99% 0% 0% 0% 94.0°C |
Let’s check the power limits:
|
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 |
jaufranc@CNX-ODROID-H5:~$ sudo powercap-info -p intel-rapl enabled: 1 Zone 0 name: package-0 enabled: 1 max_energy_range_uj: 262143328850 energy_uj: 15967828873 Constraint 0 name: long_term power_limit_uw: 17000000 time_window_us: 27983872 max_power_uw: 7000000 Constraint 1 name: short_term power_limit_uw: 20000000 time_window_us: 2440 max_power_uw: 0 Constraint 2 name: peak_power power_limit_uw: 78000000 max_power_uw: 0 Zone 0:0 name: core enabled: 0 max_energy_range_uj: 262143328850 energy_uj: 4003726933 Constraint 0 name: long_term power_limit_uw: 0 time_window_us: 976 Zone 0:1 name: uncore enabled: 0 max_energy_range_uj: 262143328850 energy_uj: 1285824 Constraint 0 name: long_term power_limit_uw: 0 time_window_us: 976 |
PL1 and PL2 power limits were set to 17 and 20 Watts, respectively, fairly high values, and in Hardkernel’s “unlimited performance” mode.
That’s a problem, so we either have to lower the power limits or install a fan. Hardkernel does mention a fan is recommended on the product page:
While the generous onboard heatsink makes fanless operation technically feasible, we strongly advocate for the installation of an active cooling solution to preserve the peak performance of the H5 board’s 8-core architecture during sustained loads.
However, by sending the kit without a fan, they sent the wrong signal, and I assumed fanless operation would be fine. A quick email exchange confirmed I needed to add a fan. Luckily, I still have the 92mm fan from the ODROID-H4 Type 3 case I reviewed in 2024. So let’s turn off the system and install the PWM fan.
The fan is not particularly noisy (in a room with an air conditioner), and the idle CPU temperature is now much lower:
|
1 2 3 |
Sensors: System Temperatures: cpu: 43.5 C mobo: N/A Fan Speeds (rpm): N/A |
Let’s run sbc-bench.sh again:
|
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
jaufranc@CNX-ODROID-H5:~$ sudo ./sbc-bench.sh -r Starting to examine hardware/software for review purposes... sbc-bench v0.9.72 Installing needed tools: distro packages already installed. Done. Checking cpufreq OPP. Done. Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Throttling test: heating up the device, 5 more minutes to wait. Done. Checking cpufreq OPP again. Done (10 minutes elapsed). Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * No swapping * Background activity (%system) OK * Too much other background activity: 0% avg, 9% max -> https://tinyurl.com/mr2wy5uv * Powercap detected. Details: "sudo powercap-info -p intel-rapl" -> https://tinyurl.com/4jh9nevj # HARDKERNEL ODROID-H5 1.0 / i3-N300 Tested with sbc-bench v0.9.72 on Sat, 30 May 2026 16:25:51 +0700. ### General information: Information courtesy of cpufetch: Name: Intel(R) Core(TM) i3-N300 Microarchitecture: Alder Lake Technology: 10nm Max Frequency: 3.800 GHz Cores: 8 cores AVX: AVX,AVX2 FMA: FMA3 L1i Size: 64KB (512KB Total) L1d Size: 32KB (256KB Total) L2 Size: 2MB (4MB Total) L3 Size: 6MB i3-N300, Kernel: x86_64, Userland: amd64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 700 3800 Alder Lake 1 0 1 700 3800 Alder Lake 2 0 2 700 3800 Alder Lake 3 0 3 700 3800 Alder Lake 4 0 4 700 3800 Alder Lake 5 0 5 700 3800 Alder Lake 6 0 6 700 3800 Alder Lake 7 0 7 700 3800 Alder Lake 15215 KB available RAM ### Policies (performance vs. idle consumption): Status of performance related policies found below /sys: /sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave ### Clockspeeds (idle vs. heated up): Before at 44.0°C: cpu0: OPP: 3800, Measured: 3786 After at 59.0°C: cpu0: OPP: 3800, Measured: 3786 ### Performance baseline * memcpy: 12034.0 MB/s, memchr: 19681.9 MB/s, memset: 21967.5 MB/s * 16M latency: 103.9 91.07 104.3 91.01 103.6 86.84 84.47 89.69 * 128M latency: 110.2 107.1 110.3 107.5 109.6 103.1 102.4 103.4 * 7-zip MIPS (3 consecutive runs): 23742, 23860, 23872 (23820 avg), single-threaded: 4308 * `aes-256-cbc 1009051.44k 1316697.66k 1361145.00k 1372802.05k 1376116.74k 1375857.32k` * `aes-256-cbc 1026534.15k 1316796.59k 1361263.87k 1372716.71k 1375636.14k 1376447.15k` ### PCIe and storage devices: * Intel Alder Lake-N [UHD Graphics] (Onboard - Video): driver in use: i915 * Intel Alder Lake-N Processor USB 3.2 xHCI (Onboard - Other): driver in use: xhci_hcd * Intel Alder Lake-N PCH USB 3.2 Gen 2x1 (10 Gb/s) xHCI Host (Onboard - Other): driver in use: xhci_hcd * Intel Alder Lake-N eMMC (Onboard - Other): driver in use: sdhci-pci * Intel Alder Lake-N PCH High Definition Audio (Onboard - Sound): driver in use: snd_hda_intel * Realtek RTL8127 10GbE: Speed 8GT/s, Width x2, driver in use: r8169, * Realtek RTL8127 10GbE: Speed 8GT/s, Width x2, driver in use: r8169, * 476.9GB "INTEL SSDPEKNU512GZ" SSD as /dev/nvme0: Speed 8GT/s, Width x2 (downgraded), 4% worn out, drive temp: 36°C, ASPM Disabled * Winbond W25Q128JV 16MB SPI NOR flash, drivers in use: spi-nor/intel-spi ### Challenging filesystems: The following partitions are NTFS: nvme0n1p3,nvme0n1p4 -> https://tinyurl.com/mv7wvzct ### Swap configuration: * /swapfile on /dev/nvme0n1p5: 8.0G (0K used) * /dev/zram0: 7.4G (0K used, lzo-rle, 4K streams, 74B data, 12K compressed, total) ### Software versions: * Ubuntu 26.04 LTS (resolute) * Compiler: /usr/bin/gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0 / x86_64-linux-gnu * OpenSSL 3.5.5, built on 27 Jan 2026 (Library: OpenSSL 3.5.5 27 Jan 2026) ### Kernel info: * `/proc/cmdline: BOOT_IMAGE=/boot/vmlinuz-7.0.0-15-generic root=UUID=39c940e2-b543-4242-a63b-816552412786 ro quiet splash crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M` * Vulnerability Reg file data sampling: Mitigation; Clear Register File * Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl * Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization * Vulnerability Vmscape: Mitigation; IBPB before exit to userspace * Kernel 7.0.0-15-generic / CONFIG_HZ=1000 Waiting for the device to cool down...................................... 49.0°C |
It’s night and day. The frequency is stable (2600 MHz), and the CPU temperature maxes out at 67°C with cpuminer:
|
1 2 3 4 5 6 7 8 9 10 11 |
System health while running cpuminer: Time CPU load %cpu %sys %usr %nice %io %irq Temp 16:20:48: 2600MHz 7.20 31% 1% 29% 0% 0% 0% 65.0°C 16:21:30: 2600MHz 7.59 100% 0% 99% 0% 0% 0% 66.0°C 16:22:11: 2600MHz 7.85 100% 0% 99% 0% 0% 0% 67.0°C 16:22:53: 2600MHz 7.92 100% 0% 99% 0% 0% 0% 67.0°C 16:23:34: 2600MHz 7.96 100% 0% 99% 0% 0% 0% 67.0°C 16:24:16: 2600MHz 7.98 100% 0% 99% 0% 0% 0% 67.0°C 16:24:57: 2600MHz 7.99 100% 0% 99% 0% 0% 0% 67.0°C 16:25:39: 2600MHz 8.00 100% 0% 99% 0% 0% 0% 67.0°C |
You can check the full log for reference. Needless to say, the rest of the review was done with the cooling fan. We’ll compare benchmark results further below.
Geekbench 6.7.1 benchmark was used to check single-core and multi-core performance.
The octa-core Core i3-N300 SBC scored 1,349 points (single core) and 5,178 points (multi-core).
Let’s start testing the built-in GPU with Unigine Heaven Benchmark 4.0. Our (actively-cooled) ODROID-H5 rendered the benchmark scene at 18.9 FPS on average with 475 points at the standard 1920×1080 resolution.
We further tested the internal GPU (iGPU) by playing some YouTube videos starting in Firefox at 4K and 8K resolutions.
A VP9 video played smoothly at 4K 30FPS with only 3 frames dropped out of 3486 after playing the short video for about 2 minutes.
The same video at 8K 30FPS was more challenging. There were bursts of dropped frames from time to time, and at other times, the video would play smoothly. In any case, it was not watchable.
Another VP9 video played at 4K 60 FPS was watchable, although the number of dropped frames (1,795 out of 18,058) is worrying. It’s possible this video would have played more smoothly at a lower room temperature.
As one would have expected, the same video at 8K 60 FPS was a disaster with close to 100% dropped frames. I just played it for a few seconds…
I also tried to play the 8K 30 FPS video on Chrome, but the result was about the same as in Firefox. In summary, YouTube 4K video streaming is possible, but forget about 8K, which is not that important anyway since the video outputs are limited to 4K…
The WebGL Aquarium demo performed relatively well in Firefox, with 60 FPS rendering using 500/1000 fish, 30 FPS with 15,000 fish, and 25 FPS with 20,000 fish (see screenshot above).
Speedometer 2.0 can be used to estimate web browsing performance.
On Firefox, the board managed 174 runs per minutes.
On Chrome, it was 267 runs per minute. I used the older, deprecated Speedometer 2.0 instead of Speedometer 3.0 for the comparison with previous platforms. But let’s still run Speedometer 3.0 on Firefox for future reviews.
ODROID-H5 Ubuntu 26.04 benchmarks comparison against other Alder Lake-N systems
Now that we have benchmark results for the ODROID-H5 on Ubuntu 26.04, we can compare it to the previous-generation ODROID-H4+ (Intel N97) and the Weibu N10 (Intel Core i3-N305) mini PC.
Here are the basic specifications of the three systems:
| ODROID-H4+ | ODROID-H5 | Weibu N10 | |
|---|---|---|---|
| SoC | Intel Processor N97 | Intel Core i3-N300 | Intel Core i3-N305 |
| CPU | 4-core processor up to 3.6 GHz | 8-core processor up to 3.80 GHz | 8-core processor up to 3.80 GHz |
| GPU | 24EU Intel UHD Graphics @ 1.2 GHz | 32EU Intel HD Graphics @ 1.25 GHz | 32EU Intel HD Graphics @ 1.25 GHz |
| TDP | 12W | 7W | 15W |
| Memory | 32GB DDR5-5600 SO-DIMM (user installed) | 16GB DDR5-4800 SO-DIMM (user installed) | 8GB DDR4-3200 |
| Storage | 128GB M.2 NVMe SSD (user installed) | 512GB M.2 NVMe SSD (user installed) | 512GB NVMe SSD |
| Default OS | N/A | N/A | Windows 11 Pro |
| Linux OS | Ubuntu 24.04 | Ubuntu 26.04 | Ubuntu 22.04 |
And now the benchmark results.
| ODROID-H5 (fanless) | ODROID-H5 (actively cooled) | ODROID-H4+ | Weibu N10 Core i3-N305 | |
|---|---|---|---|---|
| sbc-bench.sh | ||||
| - memcpy | 10,382.9 MB/s | 12,034.0 MB/s | 12,400.1 MB/s | 9,949.4 MB/s |
| - memset | 19,661.3 MB/s | 21,967.5 MB/s | 13,755.9 MB/s | 8,991.6 MB/s |
| - 7-zip (average) | 12,430 | 23,820 | 14,030 | 17,615 |
| - 7-zip (top result) | 13,754 | 23,872 | 14,056 | 20,002 |
| - OpenSSL AES-256 16K | 1,164,170.58k | 1,376,447.15k | 1,303,565.65k | 1,377,211.73k |
| Geekbench 6 Single | Not tested | 1,389 | 1,332 | 1,177 (Geekbench 5) |
| Geekbench 6 Multi | Not tested | 5,178 | 3,429 | 4,856 (Geekbench 5) |
| Unigine Heaven score | Not tested | 475 | 433 | 451 |
| Speedometer 2.0 (Firefox) | Not tested | 174 | 164 | N/A |
The first conclusion is that the fan is definitely a necessity for the ODROID-H5, especially for CNX Software’s “tropical reviews” at relatively high ambient temperature, and for instance, the 7-zip performance doubled with the fan.
The ODROID-H5 offers a nice upgrade to the ODROID-H4+ if you care about multi-core performance. Compared to the Weibu N10, Geekbench results should be ignored since GB 5 and 6 scores can’t be compared, but overall the ODROID-H5 performs better, mostly because the cooling solution for the mini PC was not optimal, as shown in the 7-zip average vs top result fields. If you own an ODROID-H4 Ultra (we don’t) with an Intel Core i3-N305, you may get slightly better performance than the ODROID-H5, but it’s not available anymore due to supply issues.
Storage and USB testing
Note that the ODROID-H5 board does not come with any storage by default, so what I’ll do here is mostly test the NVMe interface (PCIe Gen3 x2) with the drive I installed. The theory is 16 GT/s… Let’s see what iozone3 reports:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
jaufranc@CNX-ODROID-H5:~$ sudo 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.508 $ Compiled for 64 bit mode. Build: linux-AMD64 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 131128 219380 204214 201769 52454 47841 1024000 16 41801 333729 280733 283841 164924 321783 1024000 512 1029101 989163 917811 945881 1001884 912225 1024000 1024 665333 31050 1000038 1031773 960903 41382 1024000 16384 1292577 1419928 1379885 1418714 1415326 83051 iozone test complete. |
Sequential read is 1.37 GB/s and sequential write is 1.29 GB/s. It’s acceptable for the Intel SSD used, although I would have accepted something closer to 1.5-1.6 GB/s.
The ODROID-H5 comes with three USB 2.0 ports and one USB 3.2 (10Gbps) port. I tested all four with lsusb and iozone using storage devices with EXT-4 file system. From top left to bottom right:
- USB 2.0 – 480 Mbps – Read: 42 MB/s
- USB 2.0 – 480 Mbps – Read: 42 MB/s
- USB 2.0 – 480 Mbps – Read: 42 MB/s
- USB 3.0 – 10,000 Mbps – Read: 948 MB/s
All work as advertised. I would have wished for one more USB 3.0 port, especially a full-function USB-C port, but that’s probably the cost of getting four M.2 PCIe sockets and a 10GbE RTL8127 chip on the board.
10GbE networking
Besides the four M.2 PCIe sockets, the most important features of the ODROID-H5 is it’s built-in 10GbE port implemented through a Realtek RTL8127 chipset. My system even has two because I was sent an M.2 10GbE module as part of the kit.
I’ll use the iKOOLCORE R2 Max mini PC running QWRT (OpenWrt fork) and equipped with four Ethernet ports (2x 10GbE and 2x 2.5GbE) on the other side.

A first quick check shows that both Ethernet interfaces are connected at 10,000 Mbps.
I’ll test each individually, starting with the built-in 10GbE port.
- Upload
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
jaufranc@CNX-ODROID-H5:~$ iperf3 -t 60 -c 192.168.4.1 -i 10 Connecting to host 192.168.4.1, port 5201 [ 5] local 192.168.4.169 port 52144 connected to 192.168.4.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.01 sec 11.0 GBytes 9.41 Gbits/sec 0 1.95 MBytes [ 5] 10.01-20.01 sec 11.0 GBytes 9.41 Gbits/sec 0 2.56 MBytes [ 5] 20.01-30.01 sec 11.0 GBytes 9.41 Gbits/sec 0 2.56 MBytes [ 5] 30.01-40.00 sec 11.0 GBytes 9.41 Gbits/sec 0 2.56 MBytes [ 5] 40.00-50.01 sec 11.0 GBytes 9.41 Gbits/sec 0 2.56 MBytes [ 5] 50.01-60.00 sec 11.0 GBytes 9.41 Gbits/sec 0 2.56 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 65.8 GBytes 9.41 Gbits/sec 0 sender [ 5] 0.00-60.00 sec 65.8 GBytes 9.41 Gbits/sec receiver iperf Done. |
- Download
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jaufranc@CNX-ODROID-H5:~$ iperf3 -t 60 -c 192.168.4.1 -i 10 -R Connecting to host 192.168.4.1, port 5201 Reverse mode, remote host 192.168.4.1 is sending [ 5] local 192.168.4.169 port 58094 connected to 192.168.4.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.01 sec 11.0 GBytes 9.41 Gbits/sec [ 5] 10.01-20.01 sec 11.0 GBytes 9.41 Gbits/sec [ 5] 20.01-30.01 sec 11.0 GBytes 9.42 Gbits/sec [ 5] 30.01-40.00 sec 11.0 GBytes 9.41 Gbits/sec [ 5] 40.00-50.01 sec 11.0 GBytes 9.42 Gbits/sec [ 5] 50.01-60.01 sec 11.0 GBytes 9.41 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.01 sec 65.8 GBytes 9.41 Gbits/sec 0 sender [ 5] 0.00-60.01 sec 65.8 GBytes 9.41 Gbits/sec receiver iperf Done. |
- Full-duplex/bidirectional:
|
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 |
jaufranc@CNX-ODROID-H5:~$ iperf3 -t 60 -c 192.168.4.1 -i 10 --bidir Connecting to host 192.168.4.1, port 5201 [ 5] local 192.168.4.169 port 38018 connected to 192.168.4.1 port 5201 [ 7] local 192.168.4.169 port 38034 connected to 192.168.4.1 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.01 sec 10.9 GBytes 9.36 Gbits/sec 0 2.71 MBytes [ 7][RX-C] 0.00-10.01 sec 10.8 GBytes 9.27 Gbits/sec [ 5][TX-C] 10.01-20.01 sec 10.9 GBytes 9.35 Gbits/sec 0 2.71 MBytes [ 7][RX-C] 10.01-20.01 sec 10.7 GBytes 9.19 Gbits/sec [ 5][TX-C] 20.01-30.01 sec 10.9 GBytes 9.37 Gbits/sec 0 2.71 MBytes [ 7][RX-C] 20.01-30.01 sec 10.8 GBytes 9.30 Gbits/sec [ 5][TX-C] 30.01-40.01 sec 10.9 GBytes 9.38 Gbits/sec 0 2.71 MBytes [ 7][RX-C] 30.01-40.01 sec 10.8 GBytes 9.28 Gbits/sec [ 5][TX-C] 40.01-50.01 sec 10.9 GBytes 9.36 Gbits/sec 0 2.71 MBytes [ 7][RX-C] 40.01-50.01 sec 10.7 GBytes 9.21 Gbits/sec [ 5][TX-C] 50.01-60.01 sec 10.9 GBytes 9.36 Gbits/sec 0 2.71 MBytes [ 7][RX-C] 50.01-60.01 sec 10.6 GBytes 9.14 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.01 sec 65.4 GBytes 9.36 Gbits/sec 0 sender [ 5][TX-C] 0.00-60.01 sec 65.4 GBytes 9.36 Gbits/sec receiver [ 7][RX-C] 0.00-60.01 sec 64.5 GBytes 9.23 Gbits/sec 289 sender [ 7][RX-C] 0.00-60.01 sec 64.5 GBytes 9.23 Gbits/sec receiver iperf Done. |
Upload and download tests are both maxed out at 9.41 Gbps. The full-duplex test is still pretty good, but slightly below the theoretical limit. In the review of the iKOOLCORE R2 Max (Intel N100), we noted that the bottleneck can be the CPU.
So I can iperf3 full-duplex again on with two parallel streams to use more than one core:
|
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 59 60 61 62 63 64 |
jaufranc@CNX-ODROID-H5:~$ iperf3 -t 60 -c 192.168.4.1 -i 10 --bidir -P 2 Connecting to host 192.168.4.1, port 5201 [ 5] local 192.168.4.169 port 50932 connected to 192.168.4.1 port 5201 [ 7] local 192.168.4.169 port 50946 connected to 192.168.4.1 port 5201 [ 9] local 192.168.4.169 port 50956 connected to 192.168.4.1 port 5201 [ 11] local 192.168.4.169 port 50970 connected to 192.168.4.1 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.01 sec 5.47 GBytes 4.70 Gbits/sec 0 1.55 MBytes [ 7][TX-C] 0.00-10.01 sec 5.48 GBytes 4.70 Gbits/sec 0 1.54 MBytes [SUM][TX-C] 0.00-10.01 sec 10.9 GBytes 9.40 Gbits/sec 0 [ 9][RX-C] 0.00-10.01 sec 5.46 GBytes 4.69 Gbits/sec [ 11][RX-C] 0.00-10.01 sec 5.46 GBytes 4.69 Gbits/sec [SUM][RX-C] 0.00-10.01 sec 10.9 GBytes 9.38 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 5][TX-C] 10.01-20.01 sec 5.47 GBytes 4.70 Gbits/sec 0 1.64 MBytes [ 7][TX-C] 10.01-20.01 sec 5.47 GBytes 4.70 Gbits/sec 0 1.63 MBytes [SUM][TX-C] 10.01-20.01 sec 10.9 GBytes 9.40 Gbits/sec 0 [ 9][RX-C] 10.01-20.01 sec 5.47 GBytes 4.70 Gbits/sec [ 11][RX-C] 10.01-20.01 sec 5.46 GBytes 4.69 Gbits/sec [SUM][RX-C] 10.01-20.01 sec 10.9 GBytes 9.39 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 5][TX-C] 20.01-30.01 sec 5.47 GBytes 4.70 Gbits/sec 0 1.64 MBytes [ 7][TX-C] 20.01-30.01 sec 5.47 GBytes 4.70 Gbits/sec 0 1.63 MBytes [SUM][TX-C] 20.01-30.01 sec 10.9 GBytes 9.40 Gbits/sec 0 [ 9][RX-C] 20.01-30.01 sec 5.46 GBytes 4.69 Gbits/sec [ 11][RX-C] 20.01-30.01 sec 5.47 GBytes 4.70 Gbits/sec [SUM][RX-C] 20.01-30.01 sec 10.9 GBytes 9.39 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 5][TX-C] 30.01-40.01 sec 5.47 GBytes 4.70 Gbits/sec 0 1.64 MBytes [ 7][TX-C] 30.01-40.01 sec 5.47 GBytes 4.70 Gbits/sec 0 1.63 MBytes [SUM][TX-C] 30.01-40.01 sec 10.9 GBytes 9.40 Gbits/sec 0 [ 9][RX-C] 30.01-40.01 sec 5.47 GBytes 4.70 Gbits/sec [ 11][RX-C] 30.01-40.01 sec 5.47 GBytes 4.70 Gbits/sec [SUM][RX-C] 30.01-40.01 sec 10.9 GBytes 9.39 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 5][TX-C] 40.01-50.01 sec 5.47 GBytes 4.70 Gbits/sec 0 2.53 MBytes [ 7][TX-C] 40.01-50.01 sec 5.47 GBytes 4.70 Gbits/sec 0 3.22 MBytes [SUM][TX-C] 40.01-50.01 sec 10.9 GBytes 9.40 Gbits/sec 0 [ 9][RX-C] 40.01-50.01 sec 5.47 GBytes 4.70 Gbits/sec [ 11][RX-C] 40.01-50.01 sec 5.46 GBytes 4.69 Gbits/sec [SUM][RX-C] 40.01-50.01 sec 10.9 GBytes 9.39 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ 5][TX-C] 50.01-60.01 sec 5.47 GBytes 4.70 Gbits/sec 0 2.53 MBytes [ 7][TX-C] 50.01-60.01 sec 5.47 GBytes 4.70 Gbits/sec 0 3.22 MBytes [SUM][TX-C] 50.01-60.01 sec 10.9 GBytes 9.40 Gbits/sec 0 [ 9][RX-C] 50.01-60.01 sec 5.46 GBytes 4.69 Gbits/sec [ 11][RX-C] 50.01-60.01 sec 5.48 GBytes 4.70 Gbits/sec [SUM][RX-C] 50.01-60.01 sec 10.9 GBytes 9.39 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.01 sec 32.8 GBytes 4.70 Gbits/sec 0 sender [ 5][TX-C] 0.00-60.01 sec 32.8 GBytes 4.70 Gbits/sec receiver [ 7][TX-C] 0.00-60.01 sec 32.8 GBytes 4.70 Gbits/sec 0 sender [ 7][TX-C] 0.00-60.01 sec 32.8 GBytes 4.70 Gbits/sec receiver [SUM][TX-C] 0.00-60.01 sec 65.6 GBytes 9.40 Gbits/sec 0 sender [SUM][TX-C] 0.00-60.01 sec 65.6 GBytes 9.40 Gbits/sec receiver [ 9][RX-C] 0.00-60.01 sec 32.8 GBytes 4.69 Gbits/sec 190 sender [ 9][RX-C] 0.00-60.01 sec 32.8 GBytes 4.69 Gbits/sec receiver [ 11][RX-C] 0.00-60.01 sec 32.8 GBytes 4.69 Gbits/sec 199 sender [ 11][RX-C] 0.00-60.01 sec 32.8 GBytes 4.69 Gbits/sec receiver [SUM][RX-C] 0.00-60.01 sec 65.6 GBytes 9.39 Gbits/sec 389 sender [SUM][RX-C] 0.00-60.01 sec 65.6 GBytes 9.39 Gbits/sec receiver iperf Done. |
That would be 9.40 Gbps Tx and 9.39 Rx, close to perfect.
Let’s now focus our attention on the M.2 10GbE module
- Upload:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
jaufranc@CNX-ODROID-H5:~$ iperf3 -t 60 -c 192.168.4.1 -i 10 Connecting to host 192.168.4.1, port 5201 [ 5] local 192.168.4.122 port 47024 connected to 192.168.4.1 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.01 sec 11.0 GBytes 9.41 Gbits/sec 0 2.10 MBytes [ 5] 10.01-20.01 sec 11.0 GBytes 9.41 Gbits/sec 0 2.10 MBytes [ 5] 20.01-30.00 sec 11.0 GBytes 9.41 Gbits/sec 0 3.86 MBytes [ 5] 30.00-40.01 sec 11.0 GBytes 9.41 Gbits/sec 0 3.86 MBytes [ 5] 40.01-50.01 sec 11.0 GBytes 9.41 Gbits/sec 0 3.86 MBytes [ 5] 50.01-60.01 sec 11.0 GBytes 9.41 Gbits/sec 0 3.86 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.01 sec 65.8 GBytes 9.41 Gbits/sec 0 sender [ 5] 0.00-60.01 sec 65.8 GBytes 9.41 Gbits/sec receiver iperf Done. |
- Download:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jaufranc@CNX-ODROID-H5:~$ iperf3 -t 60 -c 192.168.4.1 -i 10 -R Connecting to host 192.168.4.1, port 5201 Reverse mode, remote host 192.168.4.1 is sending [ 5] local 192.168.4.122 port 34616 connected to 192.168.4.1 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.01 sec 11.0 GBytes 9.40 Gbits/sec [ 5] 10.01-20.01 sec 11.0 GBytes 9.41 Gbits/sec [ 5] 20.01-30.01 sec 10.9 GBytes 9.40 Gbits/sec [ 5] 30.01-40.01 sec 11.0 GBytes 9.41 Gbits/sec [ 5] 40.01-50.01 sec 11.0 GBytes 9.41 Gbits/sec [ 5] 50.01-60.01 sec 11.0 GBytes 9.41 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.01 sec 65.7 GBytes 9.41 Gbits/sec 1 sender [ 5] 0.00-60.01 sec 65.7 GBytes 9.41 Gbits/sec receiver iperf Done. |
- Full-duplex bidirectional:
|
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 |
jaufranc@CNX-ODROID-H5:~$ iperf3 -t 60 -c 192.168.4.1 -i 10 --bidir Connecting to host 192.168.4.1, port 5201 [ 5] local 192.168.4.122 port 56306 connected to 192.168.4.1 port 5201 [ 7] local 192.168.4.122 port 56312 connected to 192.168.4.1 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.01 sec 10.9 GBytes 9.37 Gbits/sec 0 2.70 MBytes [ 7][RX-C] 0.00-10.01 sec 10.8 GBytes 9.23 Gbits/sec [ 5][TX-C] 10.01-20.01 sec 10.9 GBytes 9.36 Gbits/sec 0 2.70 MBytes [ 7][RX-C] 10.01-20.01 sec 10.7 GBytes 9.17 Gbits/sec [ 5][TX-C] 20.01-30.01 sec 10.9 GBytes 9.39 Gbits/sec 0 2.70 MBytes [ 7][RX-C] 20.01-30.01 sec 10.9 GBytes 9.39 Gbits/sec [ 5][TX-C] 30.01-40.01 sec 10.9 GBytes 9.39 Gbits/sec 0 2.70 MBytes [ 7][RX-C] 30.01-40.01 sec 10.9 GBytes 9.39 Gbits/sec [ 5][TX-C] 40.01-50.01 sec 10.9 GBytes 9.39 Gbits/sec 0 2.70 MBytes [ 7][RX-C] 40.01-50.01 sec 10.9 GBytes 9.39 Gbits/sec [ 5][TX-C] 50.01-60.01 sec 10.9 GBytes 9.39 Gbits/sec 0 2.70 MBytes [ 7][RX-C] 50.01-60.01 sec 10.9 GBytes 9.40 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.01 sec 65.6 GBytes 9.38 Gbits/sec 0 sender [ 5][TX-C] 0.00-60.01 sec 65.6 GBytes 9.38 Gbits/sec receiver [ 7][RX-C] 0.00-60.01 sec 65.2 GBytes 9.33 Gbits/sec 194 sender [ 7][RX-C] 0.00-60.01 sec 65.2 GBytes 9.33 Gbits/sec receiver iperf Done. |
Excellent even on one core, so I won’t try parallel streams here.
Triple display testing
The ODROID-H5 supports up to three displays thanks to its HDMI port and two DisplayPort connectors.
I connected the HDMI port to a 14-inch Crowview portable laptop monitor (Full HD), one of the DisplayPort to a KTC A32Q8 4K Google TV monitor using a DisplayPort cable, and the other DisplayPort connector to another KTC A32Q8 display with a DisplayPort to HDMI cable.
No problem here with one 1080p60 portable display and two 2160p60 monitors.
ODROID-H5 power consumption
I measured the ODROID-H5 power consumption with a wall power meter as follows:
- Power off – 1.0 – 1.1 Watts
- Idle
- 1x 2.5GbE – 11.5 – 11.6 Watts
- 1x 2.5GbE + 1x 10GbE – 12.9 – 13.2 Watts
- 2x 10GbE – 14.2 – 14.6 Watts
- YouTube 4Kp60 (Firefox) – 32.1 – 36.2 Watts
- Stress test – 40.8 – 41.4 Watts
- iperf3 over 1x 10GbE full-duplex – 29.8 – 30.5 Watts
The ODROID-H5 was connected to an HDMI display, a USB RF dongle for a keyboard and mouse combo, and 2.5 Gbps Ethernet unless otherwise noted.
[Update: You can lower the idle power consumption somewhat by going to Chipset in the BIOS and selecting PCI Express Configuration inside PCH-IO.
Then for each available PCI Express Root Port set ASPM from disabled to Auto. Hardkernel disabled it due to some incompatible SSDs, but it increases power consumption when enabled.
Here are the updated idle power consumption numbers (and delta):
- 1x 2.5GbE – 9.1 – 9.2 Watts (down ~2.4 Watts)
- 1x 2.5GbE + 1x 10GbE – 10.5 – 10.6 Watts (down ~2.4 Watts)
- 2x 10GbE – 11.6 – 11.8 Watts (down ~2.6 Watts)
Note that the fan was active during measurements, likely because it’s hot in here. In a cooler climate, you can probably shave 0.5 Watts of the results above.
]
I also measured some relevant power consumption numbers on the iKOOLCORE R2 max (Intel N100):
- Idle – 2.5GbE (WAN) + 10GbE (WAN) – 15.3 Watss
- iperf3 over 1x 10GbE full-duplex
- Server mode – 25.6 Watts
- Client mode – 24.3 Watts
I was expecting the Marvell AQC113C-B1-C 10GbE controller on the R2 max to consume more than the Realtek RTL8127 controller on the ODROID-H5, but I suppose the Intel N100 vs Core i3-N300 and Ubuntu Desktop vs OpenWrt (headless) may impact results more than expected. Two other things were connected to the ODROID-H5 that were not on the R2 Max: an HDMI cable and a USB RF dongle, but those only account for a couple of Watts at most. The ODROID-H5 appears to still consume a little less at idle with 10GbE and 2.5GbE despite having a fan, but when running iperf3, the R2 Max consumes less for some reason.
Conclusion
The ODROID-H5 works great under Ubuntu 26.04 with excellent performance (once I connected a 92mm fan), and all features are working as expected, including the HDMI and DisplayPort connectors for triple display setup, the two 10GbE interfaces, and the USB ports.
The board is not really suitable for fanless operation, and most people will require a fan unless they lower the power limits and operate the device in cool temperatures. I found YouTube to struggle more than usual. Videos play fine at 4K 30 FPS, and are somewhat watchable at 4K 60 FPS (still 10% dropped frames), but 8K is very choppy. I also like the flexibility of the whole ecosystem around the ODROID-H5, as users can add network interfaces, SATA interfaces, NVMe storage, AI accelerators, and select among two cases (for now) to build what they need.
I’d like to thank Hardkernel for sending an ODROID-H5 SBC and accessories for review. Here’s the price breakdown of the kit I received:
- ODROID-H5 SBC – $250
- H5 Case Type 1 – $11
- LED Power Button – $5.99
- 15V/4A PSU (US plug) – $11
- M.2 10GbE card – $76
- 16GB DDR5 SO-DIMM – $220
The total is $573.99 before shipping and taxes, and doesn’t include the required 92mm fan (only $4 though). You can probably optimize the price a little bit by shopping around. The first three items must be purchased from Hardkernel or distributors, but you can potentially find a 10GbE M.2 card and 16GB RAM locally at lower prices. The full price doesn’t include the NVMe SSD, so the total should be quite over $600.

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. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.




















