Every so often we find something that lets imaginations run wild. Many times those are higher-end or specialty systems. In the case of the ODROID-H2+, this is a 6x 2.5GbE package that is closer to a Raspberry Pi than it is a mainstream PC or embedded system. While the ODROID-H2+ sporting dual 2.5GbE and the Intel Atom Gemini Lake Refresh CPU has been out for a few months, the new H2 Net Card and an updated BIOS mean we can get six 2.5GbE ports in this small system. In our review, we are going to take a look at the system, with a special focus on compatibility because that is a big story here.
ODROID-H2+ with H2 Net Card Hardware Overview
As a quick note here, we have a video version if you prefer to listen to thoughts around the platform. We suggest opening this on YouTube for a better viewing experience while you scroll through this review.
The ODROID-H2+ is a small system at only 110mm x 110mm x 47mm in size. Underneath the large heatsink, we get an Intel Celeron J4115 processor which is a 4-core Gemini Lake refresh SKU that has a mere 10W TDP. As a result, we get four low power Atom cores that support virtualization extensions such as VT-x and VT-d. These also sport an integrated GPU with an Intel UHD Graphics 600 GPU. We will quickly note that at around $119 for the base CPU and motherboard assembly we are not getting the latest generation Intel Tremont Architecture, but that still is a trade-off one makes at this end of the spectrum.
Where this gets extremely exciting is in the rear I/O. The ODROID-H2 based on the earlier J4105 had dual 1GbE NICs. The ODROID-H2+ in contrast is updated in that it has dual 2.5GbE Realtek RTL8125B NICs. That means we have 5Gbps of networking on this $119 assembly. For a bit of comparison, the Syba Dual 2.5 Gigabit Ethernet Adapter we reviewed over a year ago retails for $43-45 with dual RTL8125 NICs. That effectively means the rest of the board is only around a $76 premium over that NIC solution.
The rest of the standard I/O includes dual USB 3.0 (Gen1), Gen 2.0, two audio ports with a S/PDIF output, and a 14V-20V DC power input (5.5mm outer/ 2.1mm inner diameter plug and 15V is the standard PSU.) We also get a DisplayPort 1.2 and a HDMI 2.0 port. Each supports 4k60 displays and one can run them concurrently for dual video output.
The big feature of why this platform went from a curiosity to something we wanted to feature was the NIC situation. While standard we get 2x 2.5GbE RTL8125B ports, there is a new H2 Net Card option that is $47. This H2 Net card adds 4x 2.5GbE ports to the solution underneath the main I/O. In this review, we are going to spend a lot of focus on that feature because it is one of the biggest differentiators in the small board space.
On the bottom edge of the platform we get an eMMC slot. Here we have an optional 64GB eMMC module installed. These are very useful if you have an embedded OS. One can boot off of the eMMC module and then still have access to the two SATA ports and M.2 slot on the rear of the unit. We will cover the M.2 slot when we flip the board over.
A nice feature is that we get two onboard SATA ports. There are also two (JST-XH?) 4-pin power connectors. Getting the standard power plus SATA cables for this board cost $3 each for the set so for $6 you have the cables necessary to connect two HDDs or SSDs. This is one of the items we recommend getting because if you use the feature later, it will cost more in shipping than getting the cables with your initial purchase. It would have been nice if there was a larger standard PC power connector on board, but we understand space limitations.
On the board, there are physical power and reset switches along with a 24-pin I/O block. The physical switches are quite useful, but if this is in an enclosure, you will likely want to add an external power button on the I/O pins. Next to these are power LEDs which are also useful since as standard this is a passively cooled system which means when the unit is in operation there is no moving fan as a visual indicator.
On the fan subject, we get a 4-pin fan header, but it is not a standard header we see on most motherboards today. The 92mm fan is a $4 upgrade. Many using this system especially if they are not using the GPU features and plan to have lower CPU utilization, will not need a fan. This is another low-cost upgrade with a slightly harder to source connector so we would suggest getting this along with the SATA power cables even if you may not need it. It is reasonably priced and would also cost more to ship. We will note that some cases like the ODROID H2 Type-1 and Type-5 cases come with a fan so if you purchase an ODROID-H2 case, it is worth double-checking so you do not purchase an extra.
Again, we had the unit running for two days with Proxmox VE and a few low CPU utilization VMs and had no issue running passively.
Underneath the board, we get some extremely important features. There are two DDR4 SODIMM slots for DDR4-2400 memory. This is a low power 4-core Atom processor, so going extreme on the memory side is probably unwarranted. Still, we tried 2x 4GB, 2x 8GB, and 2x16GB configurations with success. 32GB with a Celeron J4115 seems like a lot, but it is possible.
The other main feature here is the M.2 slot. This M.2 slot is a PCIe Gen2 x4. That means that we are limited on bandwidth due to the platform limitation, but it is still nice to have that extra connectivity. As standard, this M.2 slot is designed to accept x4 devices such as NVMe SSDs. When it comes to the H2 Net Card, the quad 2.5GBE NIC solution slots into a custom PCB in the M.2 slot.
Getting this card to work is not as simple as plugging it in. The card itself runs as four x1 PCIe devices. As a result, we need to flash the BIOS to reconfigure the 1×4 slot into 4×1’s.
That is not a difficult process, but it is not as simple as flipping a PCIe bifurcation switch in the BIOS.
Overall, we wanted dual-NIC x86 offerings as we have gotten into our Project TinyMiniMicro series. The original H2 was good, but was not enough of an upgrade to make us switch. The H2+ was more interesting with dual 2.5GbE. The H2+ with the 4x 2.5GbE net card effectively makes something unique. As one may imagine, with 2.5GbE becoming more popular in this hardware cycle, the STH labs need 2.5GbE client nodes so we have been working on a few configurations.
One major area that we did not like (at all) is the case situation. Many of the cases out there for this are inexpensive, made from acrylic, and are a big step down from the Project TinyMiniMicro cases. Pictured is the H2 Type-5 case (plastic shipping film left on.) On one hand, we understand how awesome these inexpensive “maker” cases are. On the other hand, it feels like an enormous downgrade over the $200 Lenovo ThinkCentre M90n-IoT we tested. 3D printing a case may help, but there is a very large delta in chassis quality which limits how widely these can be deployed.
Overall, we could say the board is $119 or $166 with the H2 Net Card. Realistically, one needs a DC power adapter, RAM, storage, and likely will add $10 for cables and a fan per machine. That puts the 6x 2.5GbE solution into the $200-300 range fairly quickly. For compute, there is little question the 1L Project TinyMiniMicro nodes are significantly faster/ better, but for low-cost 2.5GbE connectivity, the ODROID-H2+ has a niche.
The next part of the story is how these devices operate. We are next going to discuss OS installation and performance.
I’ve been running Windows 10 on a loaded (e.g. 32GB RAM, 500GB NVMe) ODROID-H2+ for ~4 months. I agree with your assessment. It works great but I did have to update the network driver to get full network speed.
My H2+ is a much better desktop than a Raspberry Pi 4, although it’s slightly more expensive. But, then I don’t have to put up with the compromises that a RP4 presents. The H2+ is also completely quiet and works great with my 2 4K 28″ monitors. I don’t game.
I’m hoping that the next version of the H2+ will have at least PCIe 3 and maybe a mobile Ryzen chip. That would be something.
You’re right on the Realtek 2.5G and freebsd. You can hack drivers in, but they suck and I’ve seen broken support. Don’t trust people that say it’s fine yet. Maybe in time, but don’t do hacked stuff and expect it’ll turn out well.
Thanks for the honest review.
It’s a pity that it’ll only take 14-20V power. Either 12V or 24V would make it more useful for me in a number of situations where the stock power supply isn’t a good option.
Have you checked with a current kernel (5.10) whether there is hardware support for the NIC?
I’m currently running pine rockpro64 w/ Intel I350-T4 pice using openwrt snapshot. It actually works really well!
Different architecture than odroid h2 though. Should support about GB wan w/ sqm.
I looked at this some time ago, but the lack of a proper enclosure let me down. If they offered a metal case for it then I would not hesitate to grab one.
The network driver “tempest in a tea cup” is due to Realtek, not Hardkernel.
IMHO, exactly the same thing happens when you have to find the right driver from an AMD or nVidia recent graphics card. It comes with the territory of using Linux or BSD with recent hardware :-)
The RTL8125B(*) is a rather recent chipset and like it happened in the old “Biblical” times for 1 GbE (when Realtek initially had lack luster drivers) Realtek has been releasing multiple updates of its 2.5 GbE driver versions for the last year (r8125-9.003.02, r8125-9.003.03, r8125-9.003.04, r8125-9.003.05, r8125-9.004.01).
(*) Many PCIe-based 3rd party cards have the RTL8125 instead of the RTL8125B (behavior is different).
Hardkernel published a Wiki page for the H2 Net card which provides the link for a DKMS .deb package simplifying the driver installation on Debian or Ubuntu, see https://wiki.odroid.com/accessory/connectivity/h2_net_card.
For installation on other distributions (and BSD), you rather go directly to the Realtek download page and run a sudo -H ./autorun.sh. This is not rocket science… but you usually have to re-install after a kernel update (because this is not a DKMS installation).
For Windows, just download the most recent installer from the Realtek web site and run it.
The Odroid forums is a smaller community than the Pi’s, but the quality of community support is quite higher: much less noise and more importantly you can actually post back and forth with the engineers who designed the thing! See https://forum.odroid.com/viewforum.php?f=167. There are multiple users who posted their recipes for installing the right driver on both Linux and BSD distributions.
Tip: the Realtek drivers from stock distributions (Windows, Linux, BSD) “seem” to work but they do not resist closer inspection. Usually you want to run 1+ H iperf3 sessions as well as measure the CPU consumption e.g. using ‘sar’ from the ‘sysstat’ Debian/Ubuntu package. Last time I tried version r8125-9.004.01 or a version from an upstream kernel e.g. 5.10, the CPU consumption was out of whack. I have not tested these versions with ASPM disabled yet, see discussion below.
I’m currently running 6 x H2+ in various capacities using Ubuntu Server. The driver I’m using is version 9.003.05 as advised in the H2 Net card Wiki page. Since then I also found out that if you want to connect a RTL8125B 2.5 GbE NIC to a 1 GbE subnet using Linux, you fix the 800 Mbps low speed by disabling ASPM (look for ASPM on the Odroid forums for the OP’s). With Linux, this can be done in 3 different manners:
# On the fly:
echo performance | sudo tee /sys/module/pcie_aspm/parameters/policy
cat /sys/module/pcie_aspm/parameters/policy
default [performance] powersave powersupersave
# Adding the option to Grub:
sudo vi /etc/default/grub
…/…
GRUB_CMDLINE_LINUX_DEFAULT=”pcie_aspm.policy=performance quiet splash”
…/…
sudo update-grub
sudo reboot
# Disabling ASPM in the BIOS:
BIOS / Chipset / South cluster configuration / PCI Express configuration / PCI Express root port(1&2) / ASPM / Disable
Note: do it for root port 1 and root port 2 which are the two root ports used for LAN.
Once you’ve done that, the 1 GbE speed is about 940+ Mbps. For 2.5 GbE, I’m getting the expected 2.35 GbE.
NOTE
Beyond 2.5 GbE, I’m also using 10GbE (via SFP+ SolarFlare cards) or 11.2-14.4GbE (via Mellanox ConnectX-3 Pro) cards, the latter allowing to have the H2+’s on my FDR InfiniBand subnet, up to 45 GbE between modern PCs :-) The H2+ supports 10+ GbE despite the low-end Celeron J4115. The trick is to repurpose the M.2 slot as PCIe gen 2 x4 slot via a cable adapter. A full throttle 11.2-14.4GbE IPoIB session consumes from 20 to 30% of the CPU depending on direction. For more details, look for my posts on the Odroid Forums. Not a solution for large corporate departments, but totally sufficient for small businesses, SOHOs, start-ups and home.
In terms of compute power, using the phoronix testing suite:
– The Odroid N2+ (ARM-based SBC) leaves the Pi 4 in the dust,
– The Odroid H2+ looks at the Odroid N2+ in its rear mirror far away.
So, there is no “honest” comparison to make between the Pi 4, Odroid N2+ and Odroid H2+. These products have different purposes and markets with a few overlapping features.
Conclusion
Great for low-power NAS and backups with 1 GbE, 2.5 GbE or 10+ GbE support. Same for Home Theater PC, Plex server or network appliance, the latter again for small businesses, SOHOs or home usage only. You get pro/power consumer solutions for a fraction of the cost compared to the major brands. Finally, it’s DIY, support comes from… you and the Odroid forums good Samaritans not from a paid maintenance/CS license.
@G. Bell8 Check https://ameridroid.com/products/kksb-odroid-h2-case
Does anyone have a guide on updating the network drivers for pfsense? I tried installing 2.5 devel a few weeks ago but couldn’t figure out how to replace drivers. Default pfsense 2.5-devel drivers gave me around the usual realtek speedtest 25-40mbit performance on a gig wan line.
@Pance Flishal This is a pretty good guide on RealTek drivers for pfSense, OpenSense, FreeNAS/TrueNAS and other BSD distros:
https://forums.serverbuilds.net/t/guide-resolve-realtek-nic-stability-issues-on-freebsd-pfsense-2-4-4-2-4-5-2-5-0-opnsense-use-2-5gb-realtek/3555
He includes links to fully compiled drivers for the most common current flavors of BSD.
@Scott Laird
Mine will happily run on 12V power with a 2.5″ sata ssd and the top fan. I suspect the spec voltage is so it can buck down to 12V for 3.5″ drives. If you’re not using those, nothing on the board actually needs regulated 12V. I haven’t tested higher input voltages.
@Elias @Scott Laird
Yes, The H2+ is OK with only 12V as long as you do not try to power mechanical drives through the board 12V power rail. Power voltage for the H2/H2+ has being discussed extensively on the Odroid forums.
I have a box with 3 x H2+ 12V powered using a unique SFX PSU, each has a 10TB SATA drive, the drives are directly powered from the PSU, not from the board. Same thing for the PCIe Network cards which are powered from the PSU. No problem.
How many people actually have a NBase T (2.5/5 Gbps) switch? Realtek will let you bond RTL8111’s, but I haven’t seen any software for the 8125. I would have jumped on this except when you end up ordering all the “mandatory” accessories, it gets the price into a different territory. The Realtek snobs will hate this board but love the memory option. When the Lenovo M90n IoT price dropped into this devices range, it didn’t make sense anymore. Lenovo has a more out of the box approach where the Odroid for the money is basically a Heathkit from Korea. The Lenovo is milspec rated and made in Mexico and has a very wide operating temperature range. And if you have to have 2.5GbE support, there are plenty of USB-C to NBase T adapters out there.
Seeing as I recently found out my J1900 powered OPNsense appliance throttles my 400mbit/s download to about 360mibit/s while fq_codel is in place as a firewall rule. I would really like to see the the single threaded, single download stream performance of this, along with the total throughput.