ODROID-H2 Review – Part 2: Ubuntu 19.04

ODROID-H2 ReviewAfter many months of delays due to Intel not mass-producing Gemini Lake processors, Hardkernel started selling ODROID-H2 again, more exactly ODROID-H2 Rev. B, and the end of last month, and the company sent me a full kit for evaluation. You can check out ODROID-H Rev. B with Type 3 case and the assembly instructions in the first part of the review.

I’ve now had time to play with the board using the pre-installed Ubuntu 19.04 operating systems so I’ll report my experience in this second part. Note that ODROID-H2 does not rely on a custom version of Ubuntu, and instead you can download and flash Ubuntu 18.04 or 19.04 ISO directly from Ubuntu website.

First Boot and System Information

I had already connected two SATA drives inside the enclosure, one SSD and one HDD, but before booting the device I connected an HDMI cable, one Ethernet cable, USB keyboard & mouse, as well as the power supply. The board booted automatically when I connected the power supply the first time, but later one, you’ll need to press the power button to start it up. I mention this, as while Hardkernel told me they’d add the LED power button to be placed in the round hole shown in the top photo, I was unable to find it in the package. That means I had to use a pair of tweezers to press the small power push button on the board itself.

odroid h2 ubuntu 19.04

But apart from this small detail, everything works well. I also run the usual upgrade command to make sure I had the very latest version of the OS:

You can check out the full boot log, as well some system information below:

Ubuntu 19.04 with Linux 5.0, the 32GB eMMC flash has a root partition with 19GB free, and 7.6GB RAM is detected with 1.3 GB swap enabled as well. Some people may consider enabling ZRAM for better performance in case your system swaps often.

The two internal SATA drives and their partition are properly detected, but as we can see from the df command above they did not mount automatically.

So just launched DISKS to mount all three partition manually, and next time (meaning next reboot) they’d also just mount automatically. The photo below shows the eMMC flash module is detected as an SD card reader.

ODROID H2 eMMC Flash Ubuntu disks
Click to Enlarge

User Experience with ODROID-H2 Rev.B

As usual, I tested some of the supported features of Ubuntu 19.04 on the board to see how well it would work as a desktop machine:

  • Multi-tasking – Launch Firefox, Thunderbird, LibreOffice Write and Gimp in sequence from a cold boot
  • Web browsing with Firefox and Chromium – Opening multiple tabs, Youtube 1080p, 1440p, and 2160p (4K), Candy Crush Saga in Facebook, and WebGL demos: Quake + Aquarium
  • H.264, H.265, and VP9 Video Playback in Kodi 18.3 and VLC from USB 3.0 hard drive
  • Office applications – Open odt “word” file in LibreOffice, open large PDF (ODROID Magazine 2018) in Evince

With a fast eMMC flash and 8GB of memory, all four programs almost launched instantly, and multi-tab web browsing works very well. I installed h264ify plugin in Firefox because YouTube will default to VP9 which does not play smoothly. When I first tried I could play 1080p videos just fine with AVC, but while shooting the video review (see below) it was limited to 720p with AV1 codec only. I switched to Chrome without h264ify to show how 4K (2160p) videos would not play very smoothly.  At 1440p resolution video playback is  acceptable.

Candy Crush Saga took a while to load as usual, and audio cuts can be heard when a level is loading, but not such problem during playback. WebGL demos worked fine by at a rather low 12 to 15 fps. It’s still better than on most Arm platforms that often fail to load some WebGL demo due to the use of OpenGL ES instead of OpenGL on PC based hardware.

I played various 4K videos in VLC and they all played fine except some stuttering at the beginning, and 10-bit H.264 is not supported (black screen). This was done with video output set to 1080p60 however. So I switched to 3840×2160 resolution that is limited to 30 fps over HDMI. If you’d like 4K 60 fps, the DisplayPort output should work. I played the 4K videos again, and they were not very smooth. Later I noticed the display was automatically set back to 23.98 Hz, so that may explain since all tested videos were either 30 and 60 fps. I switched to Kodi 18.3 to see if I could get any improvement, and the results were equally disappointing. I set automatically rate switching in Kodi, but it did not seem to work. H.265, H.264, and VP9 videos were decoded with hardware video decoding in Kodi, so I suspect the main issue is the output frame rate, and going with DisplayPort should improve the results.

You can checkout by yourself in the video below.

ODROID-H2 Benchmarks

3D graphics

I’ve also run some benchmarks starting with glmark2 using 1920×1080 resolution:

ODROID H2 glmark2
Click to Enlarge

ODROID-H2 got 1,091 points in glmark2. I’m not sure if this can be compared to glmark2-es2 scores I usually get on Arm platforms, and are highly variable depending on settings. For reference, an Nvidia Jetson TX2 board achieved 1,218 points on Ubuntu 16.04 at the same resolution (1920×1080) according to results posted on OpenBenchmarking.

SBC Bench

I then switched to sbc-bench that’s mostly useful for server workloads (as opposed to desktop workloads):

I got some error messages while monitoring CPU frequency:

It turns out in Ubuntu 19.04 at least, /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq is expected instead, so I changed the code in line 180 of the script to remove “cpufreq/” from the string as a quick fix, and started the benchmark again:

The numbers I got for ODROID-H2 are a little lower than the ones reported for the board in SBC Bench results page, despite no throttling being detected. Swap was used only 5MB, and %iowait was at 0.21, so I doubt it has much of an effect.

Beside checking out the performance, sbc-bench script is also very useful to monitor the temperature and frequency during operation. The most demanding task, cpuminer, made the processor go up to 84°C, or a little over 20°C from the junction temperature (105°C) of the Pentium J4150 processor. The heatsink does a good job of keeping everything cool, and the fan does not appear to be needed.


I also repeated the other benchmarks I used for ODROID-XU4 review with  Ubuntu 18.04. Both boards should serve different purposes, but since both are made by Hardkernel, and ODROID-H2 costs over twice as much I thought it’d be fun to compare the results to see if you’d get at least twice the performance.

While I built Linux for ODROID-XU4 natively in the board, I cross-compiled Linux for ODROID-XU4 in the EXT-4 partition of the SSD connected to ODROID-H2:

Results for ODROID-XU4Q:

It took 25 minutes and 48 seconds to cross-compile on ODROID-H2, while ODROID-XU4 did the same in 38 minutes and 47 seconds. Much faster, but not quite twice as fast. Note that the code base will have changed slightly since May 2018 when I did ODROID-XU4Q review.

I tested software transcoding with ffmpeg/avconv converting and MPEG4 video to H.264:

ODROID-H2 took 36.952 seconds to complete the tasks, while ODROID-XU4Q did so in 1m34.676s. Advanced SSE & AVX instructions on the Intel processor likely helped a lot here. Also note the video is 45 seconds long, so Celeron J4105 SBC can handle real-time Full HD transcoding, while the Exynos 5422 board cannot.

Storage Benchmarks

I installed iozone to evaluate storage performance:

Starting with the 32GB eMMC flash module:

Around 321 MB/s sequential read, 108 MB/s sequential write, and excellent random I/O numbers as well.

I then tested the 120GB CHUANG JIU SSD that I got with CubieTruck kit,  and connected over SATA (EXT-4 partition):

While not outstanding, read (242MB/s) and writes (152 MB/s) speeds are OK  with the limiting factor likely being the cheap SSD here. For some reasons, rewrites are awful with 16K. Again, no issues with random I/O.

Finally, I checked the USB 3.0 hard drive to checkout nothing bad happened over USB 3.0 using the EXT-4 partition (sequential read/write only):

About 91MB/s write and 92 MB/s which is roughly what I’d expect from this mechanical drive.


If you’ve checked out the kernel log output much earlier in the post, you’ll see Ethernet connected at 100Mbps Ethernet. That because I have several Ethernet cables that are only good for 100Mbps. After changing the Ethernet cable to a better one, I had no troubles and got a proper Gigabit Ethernet connection.

  • Full duplex with iperf2:

Excellent, one of the best result I’ve ever gotten with this test.

  • Download:

  • Upload:

Gigabit Ethernet just works as it should.

A look at I/Os and RTC

Many Intel SBCs do not expose any I/O header for expansion at all, but ODROID-H2 does better in that respect with a 20-pin connector exposing several I2C and UART ports. There’s also an option 16-port GPIO extender that connects to I2C.

I don’t have the latter, but I just quickly had a look at I2C by installing I2C tools:

We can run the following command line to find out more.

The user-accessible I2C interfaces are on port 5 and 6, and properly detected.

It’s also possible to use UART. I haven’t done it due to time contraints, but as explained in the wiki, you could send commands over /dev/ttyS0 or /dev/ttyS1 devices, as well as use RTS/CTS pins as GPIOs.

My kit included an RTC battery as well, so I ran the usual hwclock command to make sure I could read the time from the RTC:

I also disconnect the Ethernet in order to remove any connection to the Internet and rebooted the board. The time and date were still correct, as one would expect from any PC hardware.

Final words

Overall I’m satisfied with my experience with ODROID-H2 running Ubuntu 19.04, most things I tested worked well, and performance was roughly as expected for a Gemini Lake platform. Cooling works well with the larger heatsink provided and I did not experience any throttling. HDMI is limited to 4K @ 30 Hz, so depending on your video library it may not be suitable as a 4K HTPC [Update August 2019: ODROID-H2 is supposed to support 4K @ 60 Hz over HDMI, so I suspect an incompatiblity with my TV. See comment]. DisplayPort should support 4K @ 60Hz however.

Hardkernel does not customize the software for the board, meaning you can just download and install ISO from Ubuntu or other Linux distribution website. You could also install Windows 10 if you please, so in a sense, it’s just like any Gemini Lake mini PC. The advantages of ODROID-H2 are mostly in terms of support with the Wiki, community forum, and the many accessories that allow you to customize your board. For example, the Type 3 case I received makes it a good platform for a simple NAS with two 2.5″ SATA drives and could be used as a gateway/firewall/router thanks to the two Gigabit Ethernet ports and USB expansions available.

Price is also affordable, with the kit I received going for $215.70 plus shipping. This included the $111 SBC, 8GB DDR4 memory, a 32GB eMMC flash, 15V/4A power supply, Type 3 enclosure, SATA cables, RTC battery, and the fan. As mentioned in the post, you’ll likely want to add $4.90 to get the LED power button to you order, unless you’re fine with booting it up with a toothpick or a pair of tweezers.

ODROID-H2 and its accessories can be purchased directly on Hardkernel, or one of the distributors such as Ameridroid. I’ll take the opportunity to remind readers that we have a few coupons for Ameridroid, including CNXSUPPORTER10 that will shave off $10 of purchases, meaning ODROID-H2 can be had for $101.95.

Support CNX Software - Donate via PayPal or become a Patron on Patreon
Notify of
newest most voted
1 year ago

I got two from the first batch. Replaced two espressobins I had for routing, NFS, apt cache, gitolite etc.. Other than the in-kernel driver for the realtek ethernet not playing well with interface bonding and needing to be replaced with the vendor dkms packaged one they’ve been perfect since day one.

1 year ago

sbc-bench detailed output reported several ‘hardware errors’ via dmesg. It might be worth a try to do the following, repeat the benchmark and then look what appeared in /var/log/mcelog:

1 year ago

> mcelog is gone

Ouch, I wasn’t aware of this. That’s bad news for non server-grade x86 hardware: http://mcelog.org/manpage.html 🙁

> ras-mc-ctl: drivers not loaded

Well… from the launchpad link wrt mcelog: ‘Nevertheless I took the package from Xenial and installed on Bionic, nothing breaks dependencies’. Installing mcelog_128+dfsg-1_amd64.deb via dpkg -I might be worth a try…

1 year ago

> I’ve install the package manually, and… nothing

No /var/log/mcelog now?

1 year ago

Shouldn’t you perform an edit to the article about 4K @ 60fps over HDMI?

1 year ago

Ordered mine on AmeriDroid, it would have been good to know about the coupon. I did not expect H2 to perform well in video playback. I will use it as a server anyway. Nice review as always. Maybe you can test video playback on Windows 10, if you can. I doubt it will be significantly better.

Fake name
Fake name
1 year ago

Every time I see one of these things, I ask myself: where are the AMD counterparts, but I always remember: oh yeah they are very inefficient. This time I go further and check the AMD processor specifications list, and it was impossible to find a perfect match for the Celeron J4105, but to be fair there are 2 processors that almost mach the description: the FX-7500 and the A6-5200 they have a TDP of 20W and 25W, the thing is that they are made on a 28nm process which means if they were made on 14nm or 12nm maybe we… Read more »

Michael Schwarz
11 months ago

I’m running mint mate and having no problems with video. In the BIOS I set the southbridge to LINUX, and uped the ram to the video
to max. Makes everything fly

Michael Schwarz
8 months ago

I completely disagree with you review and assessment of the H2 power I get flawless play back no mater the video and perfect performance when playing GameCube and Wii games with Dolphin. Maybe you problem is Ubuntu. I’ve found Ubuntu to be inferior to Mint. I run Mint mate and this machine is fast and smooth with only 8 gb of ram.