ODROID-H4 Plus review – Part 2: Intel N97 NAS Kit and fanless SBC tested in Ubuntu 24.04

In the first part of the ODROID-H4+ kit review, I checked out the hardware and showed how to install the Intel N97 SBC into the H4 Type 3 case taking up to four 2.5-inch SATA drives. I’ve now had time to test the ODROID-H4 Plus with Ubuntu 24.04 both as an actively cooled NAS kit and a fanless SBC and will report benchmark results, 2.5GbE and storage test results, 4K and 8K YouTube video playback capability, check IBECC memory support, measure power consumption, and more in the second part of the review.

ODROID-H4 Plus Ubuntu 24.04 review

Ubuntu 24.04 installation on ODROID-H4 Plus

The ODROID-H4 Plus SBC does not come with any preinstalled OS since there’s no storage by default, so I installed Ubuntu 24.04 on the 128GB M.2 NVMe SSD I inserted into the board. The installation went relatively smoothly, but in hindsight, I would have probably installed the OS before installing the SBC into the case along with the SATA drive because that made Ubuntu installation slightly more complicated.

Ubuntu 24.04 manual partitioning

That’s because two of my SATA drives already had Ubuntu installed on them, so I had to switch to “Manual partitioning” to understand what was going on and select the M.2 NVMe SSD as the installation medium. That M.2 SSD was also previously used to boot Raspberry Pi OS, so I deleted that partition and created a new one for Ubuntu. Somehow the M.2 drive was not selectable for the bootloader installation (not sure why, but I thought it might have been a space issue, more on that later), so I selected one of the hard drives. That means Grub is on one of the SATA hard drives and Ubuntu is on the M.2 drive. Not quite ideal, but that will do for now.

Ubuntu 24.04 system information

The rest of the installation went smoothly, so going to Settings->About confirms we have a HARDKERNEL ODROID-H4 with a quad-core Intel N97 processor, 32GB memory, and 128GB storage (NVMe only).

ODROID-H4 About Ubuntu 24.04

We can get a few more details in the command line:


The system is running Ubuntu 24.04 with Linux 6.8, and all three SATA drives are properly detected (/dev/sda, /dev/sdb, /dev/sdc) and mounted.

Further information can be had with the inxi program:


The idle temperature is reported to be 45°C. Note the large fan on top of the enclosure very seldomly rotates when idle.

ODROID-H4 Plus benchmarks on Ubuntu 24.04

Hardkernel implemented an “Unlimited Performance” mode for the ODROID-H3/H4 boards that can be enabled in the BIOS. As Hardkernel explains, the “Unlimited Performance” mode makes use of a new Power Limit 4 (PL4) introduced with 10th-generation Intel Core processors that sets the maximum power limit at the package level. I thought it was not enabled by default, but initially planned to test stock and “Unlimited Performance” mode, but going into the BIOS in Advanced->CPU – Power Management Control revealed that PL4 is already set to 0 or the so-called “Unlimited Performance” mode.

ODROID-H4 Unlimited Performance PL4 Zero

As usual, let’s start with Thomas Kaiser’s sbc-bench.sh script:


As we’ll see below the results are somewhat better than other Intel N97/N100 devices thanks to the higher PL4 power limit and large cooling fan.

We can also check the power limit.


Our Intel N97 is set to have a 12W PL1 power limit and a 25W PL2 power limit. Hardkernel explains that PL1 will be set to 15W for the Core i3-N305 found in the ODROID-H4 Ultra.

We’ve run Geekbench 6 with sbc-bench four times to check variances between runs.


Four results for single-core (SC) and multi-core (MC) results:

  1. SC: 1,331 points; MC: 3,413 points – See the full results on the Geekbench website
  2. SC: 1,332 points; MC: 3,429 points- See the full results on the Geekbench website
  3. SC: 1,333 points; MC: 3,438 points- See the full results on the Geekbench website
  4. SC: 1,332 points; MC: 3,415 points – See the full results on the Geekbench website
HARDKERNEL ODROID H4 Geekench 6.3.0 benchmarks
Third run of Geekbench 6.3.0

The single-core results are basically the same for all four runs. There’s more variance for the multi-core results, but nothing much. I took a break around the end of the third run and turned off the aircon as I forgot to let it run. With the aircon, the room temperature was about 28°C and without it, the room temperature slowly increased to about 30-31°C, which may explain why the latest multi-core run’s score is slightly lower. You can find more details including CPU temperature during testing in the full SBC-bench log.

We started GPU performance testing with Unigine Heaven Benchmark 4.0.

ODROID-H4 Plus Unigine Heaven Benchmark 4.0

That would be 17.2 fps and a 433 score 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.

ODROID-H4 Plus YouTube 4K 2160p 30 fps Firefox Ubuntu 24.04
4K 30 FPS in Firefox

4K 30 fps YouTube video streaming works great with only 10 frames dropped out of 6589 while watching a video for over 9 minutes. Four of those were while taking the screenshot.

ODROID-H4 Plus YouTube 8K 4320p 30 fps Firefox Ubuntu 24.04
8K 30 FPS in Firefox

Switching to 8K resolution (4320p) but at 60 fps is still smooth with just 3 frames dropped over a little 3 minutes of watching.

ODROID-H4 Plus YouTube 4K 2160p 60 fps Firefox Ubuntu 24.04
4K 60 FPS in Firefox

4K 60 FPS videos are still watchable, but the number of dropped frames increased to 238 out of 48907 while streaming the video for over 13 minutes.

ODROID-H4 Plus YouTube 8K 4320p 60 fps Firefox Ubuntu 24.04
8K 60 FPS in Firefox

8K 60 FPS is often a challenge, but the ODROID-H4 Plus handles that relatively well, although not perfectly, with 380 frames dropped out of 18241 while watching the video for about 5 minutes, or a 2% dropped rate. It will be acceptable to some, but not others, so I tried again with Google Chrome.

Intel N97 8K 60FPS YouTube Chrome Ubuntu 24.04
8K 60 FPS in Chrome

I did have to test that part for too long because it was an immediate and complete disaster with well over 50% frame dropped and the video was unwatchable. I noticed 100% CPU usage on all four cores, so I went to check whether video decoding hardware acceleration was enabled and it was.

Chrome GPU Video Decode

I quickly tried with 4Kp60 and it worked just as well as in Firefox. So the issue in Google Chrome is only with 8K 60 FPS which most people will likely not use. Note that both Firefox and Chrome used AV1 video codec for all tested resolutions and frame rates.

Let’s use the Firefox web browser again to evaluate the performance with Speedometer 2.0.

ODROID H4 Plus NAS Kit Speedometer 2.0 Benchmark
That’s 164 runs per minute. We can repeat the same test in Google Chrome.

ODROID-H4 Plus Speedometer 2.0 Ubuntu Chrome

At 198 runs per minute, Google Chrome is quite faster than Firefox this time around.

Speedometer 2.0 will be deprecated, so I also ran Speedometer 3.0 to get some data for future reviews.

Mozilla Firefox

ODROID-H4 Plus Speedometer 3.0 Ubuntu Firefox

The new score is obviously not comparable and is expressed in points. ODROID-H4 Plus achieved 8.15 points in Firefox on Ubuntu 24.04. The detailed view is much more informative than before as well.

Speedometer 3.0 details

Google Chrome

ODROID-H4 Plus Speedometer 3.0 Ubuntu Chrome

Google Chrome confirms the higher web-rendering performance over Firefox on the ODROID-H4 Plus with 12.2 points.

ODROID H4 Plus benchmarks comparison against other Alder Lake-N platforms

Let’s now compare ODROID H4 Plus’ Ubuntu 24.04 benchmark results against other Alder Lake-N platforms running Ubuntu 22.04/Fedora 39, namely Blackview MP80 (N97) mini PC, MINIX Z100-0dB fanless mini PC (N100), GEEKOM Mini Air12 mini PC (N100), and Weibu N10 mini PC (Core i3-N305) whose main specifications are shown in the table below.

ODROID-H4 PlusBlackview MP80 (N97)MINIX Z100-0dBGEEKOM Mini Air12Weibu N10
SoCIntel Processor N97Intel Processor N97Intel Processor N100Intel Processor N100Intel Core i3-N305
CPU4-core processor up to 3.6 GHz4-core processor up to 3.6 GHz4-core processor up to 3.4 GHz4-core processor up to 3.4 GHz8-core processor up to 3.80 GHz
GPU24EU Intel UHD Graphics @ 1.2 GHz24EU Intel UHD Graphics @ 1.2 GHz24EU Intel HD Graphics @ 750 MHz24EU Intel HD Graphics @ 750 MHz32EU Intel HD Graphics @ 1.25 GHz
TDP12W12W6W6W15W
Memory32GB DDR5-5600 SO-DIMM (user installed)16GB LPDDR5 SDRAM 16 GB DDR4-320016GB DDR5-48008GB DDR4-3200
Storage128GB M.2 NVMe SSD (user installed)512GB M.2 SATA SSD512GB NVMe SSD512GB NVMe SSD512GB NVMe SSD
Default OSN/AWindows 11 ProWindows 11 ProWindows 11 ProWindows 11 Pro
Linux OSUbuntu 24.04Fedora 39Ubuntu 22.04Ubuntu 22.04Ubuntu 22.04

There’s a mixture of OS with Ubuntu 22.04, Ubuntu 24.04, and Fedora Workstation 39 so that’s not ideal, but it will still give an idea of the relative performance, so here are the Linux benchmark results.

ODROID-H4 Plus
"Unlimited Performance" mode
Blackview MP80 (N97)MINIX Z100-0dBGEEKOM Mini Air12Weibu N10 Core i3-N305
sbc-bench.sh
- memcpy12400.1 MB/s8989.0 MB/s9,572.6 MB/s,10,459.3 MB/s9,949.4 MB/s
- memset13755.9 MB/s12881.2 MB/s8,552.2 MB/s10,665.4 MB/s8,991.6 MB/s
- 7-zip (average)14,03013,23010,68013,94017,615
- 7-zip (top result)14,05613,27012,32413,97620,002
- OpenSSL AES-256 16K1303565.65k1302822.91k1,232,743.08k1,233,283.75k1,377,211.73k
Geekbench 6 Single1,3321,2511,2431,213
1,177 (Geekbench 5)
Geekbench 6 Multi3,4293,1413,1893,2724,856 (Geekbench 5)
Unigine Heaven score433
404294303451
Speedometer 2.0 (Firefox)164
152146149N/A

The ODROID-H4 Plus performs quite better than other quad-core Alder Lake-N systems. ODROID-H4 Plus has higher memory bandwidth likely due to the faster Samsung 32GB DDR5-5600 SO-DIMM. Note this is user-installed memory and you’d have to use the same type of RAM to get a similar level of performance. 7-zip score is also notably higher and increases with runs (13984 -> 14045 -> 14056) meaning the cooling solution is more than adequate, and maybe caching helps improve results over time. The octa-core Weibu N10 mini PC is still faster in this multi-core test. Note the ODROID-H4 Plus comparison is not entirely fair as it’s a larger system than other mini PCs and also benefits from a large fan missing from other systems. Geekbench 6 confirms the excellent single-core and multi-core performance of the system. and 3D graphics is also pretty good considering we’re using an entry-level SoC with integrated graphics.

We’re not quite finished with benchmarks, as we’ll run some more performance tests with IBECC enabled and in fanless mode after taking the SBC out of the enclosure near the end of the review.

Storage testing

Note that the ODROID-H4 boards do not come with any storage by default, so what I’ll do here is mostly test the interfaces with drives that won’t max out the bandwidth.

Let’s start with the NVMe SSD (MAKERDISK 128GB drive) rated for 1,800 MB/s read and 560 MB/s write speeds:


Something is very wrong for writes (about 2,000 MB/s) unless Cytron wrongly advertised the write speed of their drives, but the read speed is about as advertised (1867325 KB/s or 1823 MB/s).

I’ll now test three of the four SATA interfaces. Two are fitted with SATA drives whose performance should be around 100MB/s and the remaining one with a low-end SATA SSD which we previously tested in the MINIX NEO Z100-0dB mini PC with about 252 MB/s reads and 144MB/s writes.

/dev/sda2 (SATA HDD – EXT-4 partition):


/dev/sdb1 (SATA SSD – exFAT partition):


/dev/sdc2 (SATA HDD – EXT-4 partition):


All within expectation for the drives used.

2.5GbE benchmarks and stability testing

Let’s now test 2.5GbE performance on both RJ45 jacks using iperf3 and UP Xtreme i11 Edge mini PC (192.168.31.12) at the other end.

Left RJ45 jack:

  • Upload

  • Download

  • Full duplex (bidirectional)


Perfect! Since the left RJ45 worked well, we’ll go straight to full-duplex testing for the right RJ45 jack:


All good.

Usually, I’d stop Ethernet testing here, but several people noted a potential issue with Intel 2.5GbE controllers when ASPM is enabled and there’s low or no traffic. Hardkernel tested it successfully for over 400+ hours on the ODROID-H4 and ping Google every 30 minutes, and the ODROID-H4+ with a 2-second ping, as a first test failed after 6 hours potentially due to a bad cable connection (TBC).

But maybe they were lucky, so I’ll repeat that test for over 24 hours on the ODROID-H4 with a 10-second ping to cnx-software.com. But first, we have to make sure ASPM is enabled with:


Curious minds can also find the full output of the lspci command on pastebin. The important part is that ASPM is enabled, so let’s start pinging CNX Software every 60 seconds while connected to the right RJ45 jack through a 2.5GbE TP-Link switch using the following script:


I did not get any connection issues during that test:


The IP address changed but that’s not unexpected as CNX Software is behind Cloudflare.

I’ve also configured two SAMBA shares on the ODROID-H4 Plus: one of the NVMe SSD and the other on the SATA SSD, since the latter is not quite fast enough to saturate a 2.5GbE connection.  I’ll access those from the UP Xtreme i11 mini PC:


I copied the latest Ubuntu 24.04 Desktop ISO (5.7GB) in each share:


and transferred the file to /dev/null from each share:


Similar results, or about a 280 MB/s (2,240 Mbps) transfer rate. I’d expect that from the NVMe SSD, but not so much from the SATA SSD (about 240MB/s reads with iozone). That’s because when we have 32GB of RAM, two 5.7GB files get easily cached, so let’s reboot the system, and try again:


That’s slightly slower, but still pretty good about 249MB/s (1,991 Mbps).

Stress test and CPU temperature

I ran a stress test while checking the CPU temperature to see how well the ODROID H4 Plus with the Type 3 enclosure cools the Intel Processor N97 quad-core CPU.

ODROID-H4 Plus Stress Test CPU Temperature

The CPU temperature maxes out at 57°C and stabilizes at 54-55°C, so the system operates nice and cool under load and we are in “Unlimited Performance” mode. sbc-bench.sh reports the CPU runs at 2900 MHz. The idle CPU temperature was about 37-39°C in a room with an ambient temperature of around 28°C. By comparison, the much smaller Blackview MP80 (N97) mini PC got quite a lot hotter at 79°C while the CPU was still running at 2900MHz. We’ll try again with the ODROID-H4 Plus in “fanless SBC” mode later.

ECC memory testing

ECC memory is not often supported on low-end hardware, but Hardkernel modified the BIOS to add support for IBECC (In-band ECC), so let’s try it, and see what impact it may have on the system.

Let’s look at the output of the free command before doing anything:


Now let’s enter the BIOS and go to Chipset -> System Agent (SA) Configuration -> Memory Configuration. In-Band ECC Support is set to Disabled as expected.

BIOS In-Band ECC Support Disabled

We can change that to Enable, and a new “In-Band ECC Operation Mode” option shows up. It’s set to 2 by default meaning “Make all requests protected and ignore range checks”.

ODROID-H4 Plus enable ECC BIOS

Time to go back into Ubuntu 24.04 and run the free command again:


The amount of memory has decreased from 32605440 to 31573252, or about 3.16% which happens to be abound 1/32 (0.03125). This makes sense due to the added parity bit for 32-bit data. There’s nothing else that changed in the system from the user’s perspective. In theory, we can get ECC errors with rasdaemon:


CE standard for Correctable Errors, and UE for Uncorrectable Errors, But I won’t be able to test that since I don’t have the equipment to generate bitflips on the RAM, and software hacks to do the same are not obvious

What I can do is run some benchmarks to see if the performance was impacted. I’ll go with sbc-bench.sh, Geekbench 6.3, and Unigine Heaven Benchmark 4.0 since 3D graphics applications are bandwidth-sensitive.


I used sbc-bench.sh to run Geekbench 6.3:


ODROID-H4 Plus Geekbench ECC IBECC

The average scores of the two runs are 1,305 points (single) and 3,266 points (multi-core). Full results can be found on the Geekbench website.

ODROID-H4 Plus ECC memory Unigine Heaven Benchmark 4.0

Let’s compare those results to the one with IBECC disabled, both in “Unlimited Performance” mode.

ODROID-H4 Plus
IBECC disabled
ODROID-H4 Plus
IBECC enabled
Delta
sbc-bench.sh
- memcpy12400.1 MB/s11,353.5 MB/s-8.44%
- memset13755.9 MB/s10534.9 MB/s-23.38%
- 7-zip (average)14,03013,660-2.64%
- 7-zip (top result)14,05613,698-2.55%
- OpenSSL AES-256 16K1303565.65k1303767.72k+0.015%
Geekbench 6 Single1,3321,305-2.03%
Geekbench 6 Multi3,4293,266-4.75%
Unigine Heaven score433
409-5.54%

As one should have expected, memory bandwidth benchmarks are the most impacted, but regular benchmarks not so much. Unigine Heaven experienced a loss of about 5.5%.

Fan noise with H4 Type 3 case

While the ODROID-H4 SBC is a fanless SBC, I installed it in the H4 Type 3 case with a large fan on the top. Before I switched to “Unlimited Performance” mode, the PWM fan came on and off during idle and may be off most of the time in cooler rooms.  But right now, the fan is constantly rotating even after I close all user programs. It’s still audible about 2 meters away whether at idle or under load.

I still measured the noise with a sound level meter placed approximately 5 cm from the top case:

  • Idle (fan active) –  46 – 47 dBA
  • Stress test on 4 cores – 46 – 47 dBA

The meter reports 37.5 – 38.5 dBA in a quiet room.

That’s with the default settings, and you can modify the behavior of the fan by software especially since we have plenty of legroom when it comes to CPU temperature.

ODROID-H4 Plus power consumption (Multimedia NAS mode)

Let’s now check the ODROID-H4 Plus power consumption while the system is still inside the enclosure. The system is still in “Unlimited Performance” mode and with IBECC enabled, and I’ll test it as a “multimedia NAS” with SATA drives, 2.5GbE, an HDMI display, and two RF dongles for a wireless keyboard and a wireless mouse.

  • Power Off – 0.4 to 0.5 Watt
  • Idle
    • 8.3 – 8.4 Watts (Fan off)
    • 10.5 – 10.9 Watts (Fan active)
    • Note: the fan is active most of the time in my environment.
  • File transfer (SAMBA SATA SSD drive) – 15.9-16.5 Watts
  • Video playback – 19.4 – 22.5 Watts (YouTube 8K60fps in Firefox)
  • CPU stress test (stress -c 4) – 24.4 -24.8 Watts

Let’s now remove some items one by one to measure idle power consumption (fan off):

  • Remove HDMI – 7.3 -7.4 Watts
  • Remove USB RF dongles – 6.3 – 6.4 Watts
  • Remove Ethernet cable – 5.5 – 5.6 Watts

I’ll now go to the BIOS and disable Unlimited Performance (PL4=0) mode, but first let’s check if ASPM is enabled for all our devices:


Everything appears to have ASPM enabled. I went back to the BIOS to set PL4 back to 30000 and disable IBECC. I then checked idle power consumption with the same peripherals as above attached to the device:

  • Idle (fan off) – 8.8 – 8.9 Watts
  • Idle (fan active) – 9.0 to 9.1 Watts
  • Remove HDMI – 7.2 – 7.4 Watts (fan off)
  • Remove USB RF dongles – 6.3 – 6.4 Watts (fan off)

There’s not that much difference, except for the fan active mode where maybe the fan rotates more slowly in that test…

Fanless SBC – benchmarks, power consumption, and GPIO testing

So far, I’ve reviewed the ODROID-H4 Plus in the H4 Type 3 enclosure with active cooling. I’ll now take it out of the enclosure to use it as a fanless SBC and revert the BIOS to PL4=0 before running benchmarks, checking thermal performance, measuring power consumption, and quickly testing some of the pins on the GPIO header.

I had to reinstall Ubuntu 24.04 on the ODROID-H4 Plus since the EFI partition was on one of the SATA drives. The first time, I could not select the NVMe SSD because the EFI binaries are over 1GB and I did not leave enough space…

Ubuntu 24.04 manual partitioning FAT32 EFI

This time around, I cleared everything from the drive and created the bootloader partition before creating the rootfs partition.

ODROID-H4 Plus Intel Processor N97 fanless SBC with Ubuntu 22.04

ODROID-H4 Plus “fanless” benchmarks

Let’s go through the same list of benchmarks in fanless mode.