FreeBSD on the Intel 10th Gen i3 NUC
I have ended up with some 10th Gen i3 NUC's (
NUC10i3FNH
to be specific)
to put to work in my testbed. These are quite new devices, the build date on
the boxes is
13APR2020
. Before I figure out what their true role is (one of
them might have to run linux) I need to install FreeBSD -CURRENT and see how
performance and hardware support is.
They have an Intel i3-10110U with 2 cores and 4 threads at 2ish GHz (with 4GHz boost), I got a single 32GB DIMM of RAM for each and a 480GB Western Digital M.2 SSD. This configuration came in just under £500 for each NUC.
The NUCs are pretty small, they have pretty beefy fans taking up about a cm of the top of the enclosure. They certainly aren't silent, without any load I could hear the NUC sat on the desk next to me. When building at full steam the fan in the NUC is about as loud as my x270 Thinkpad is when it is building.
What works?
Out of the box I had to break into the bios and disable secure boot to boot the FreeBSD installer. I did this by hitting every FN key as the NUC booted, I think FN2 was the correct choice. At the time my keyboard was being fought over by USB and Bluetooth on my MacBook Pro.
FreeBSD install was problem free. I set up the M.2 as a single drive with ZFS, datasets and snapshots are a magic power.
Before I tried anything else I had to get an idea at how well this NUC would
build FreeBSD. I don't expect this to be a build machine, but having spent a
while shopping for build machines recently (I settled on a VM in hetzner) it is
the only benchmark I really care about.
make -j4 buildworld buildkernel
took
2:45, that isn't the fastest in the world, but it is about an 1:15 faster than
my x270 with its 2015
i5-6300U
. The difference 5ish years
makes.
Graphics in this 10th Gen Intel processor wasn't supported by
drm-current-kmod
and I had to install
drm-devel-kmod
. With the devel kmod
the NUC is happy to push all the pixels of the 4k TV I have here and even drive
additional second monitor connected with USB-C->HDMI adapter at the same time.
Audio works through the front 3.5mm jack and after changing
hw.snd.default_unit
from HDMI too. There is an issue where when the display
is blanked (turned off), audio will stop, but won't come back when the display
does. manu@ suggested setting
hw.i915kms.disable_power_well=0
in
loader.conf
, this resolved the problem for me.
The Intel 9462 WiFi in the NUC is not supported (yet), I stuck a cheap
rtwn
based USB WiFi dongle in the front port. External USB WiFi is cumbersome on a
laptop, but on a machine that will rarely move it is fine. The onboard Ethernet
is supported by
em
and is happy to do 940ishMbit/s with
iperf3
with TCP and
UDP.
The NUC has 5 USB ports, 3 USB-A and two USB-C. The USB-C port on the back has a little lightning bolt next to it and I imagine that means it is the one with thunderbolt support. I did a disk speed test to a Sandisk Extreme Portable SSD. The front port managed 200MB/s or so while the rear thunderbolt one only got to about 160MB/s for read and write. My MacBook Pro manages the advertised 500MB/s read speeds, so I need to dig into whether this is a hardware problem or a FreeBSD problem. Luckily I have two so installing Linux to test performance won't be a bother.
I quite like these little boxes, you can get more hardware for your money with a tower pc, but not in this form factor. I wouldn't be surprised if the i7 versions of these were quite good at building FreeBSD. The fans are a bit loud, but that can be fixed for me by playing blaring techno.
I think the NUC in this configuration is going to make a great test node in my satellite testbed or a nice little desktop box for doing video tasks.
Hardware Support
Storage Yes M.2 is fine, I didn't have a drive to test SATA
Graphics Yes drm-devel-kmod (on r362612)
Audio Yes hda(4)
Ethernet Yes Supported by em(4)
Wireless No Intel AC 9462 not supported :(
USB Yes All ports work,
Suspend/resume Yes suspend is fine, resume required drm-devel-kmod
SD slot Yes Comes up as a mmcsdX device
Thunderbolt N/A I have no idea what the implications of this are or how to test