The hardware specification for mini PCs has recently evolved past the traditional fixed amount of memory and storage. Now mini PCs are shipping with SODIMM slots allowing RAM expansion and a variety of M.2 or SSD combos providing flexible storage options. Recent mini PCs are also coming to market with desktop processors rather than mobile processors because there has been a gradual acceptance of the necessary inclusion of a small internal fan. In doing so not only is this addressing the key limiting factors for mini PCs but it is also redefines the very definition of a mini PC.
Until recently Intel NUCs (Next Unit of Computing) were seen as small-form-factor personal computers primarily because they consisted of the traditional motherboard with a processor, included removable RAM and storage and were enclosed in a case with an external power supply. They were also sold as kits meaning they were essentially the ‘barebones’ ready to be build with separately purchased memory, storage, and operating system. However, Intel have also now introduced products called ‘Intel NUC Mini PCs with Windows’ which are fully configured and ready to work out of the box as they are pre-built and include all the required hardware and software.
Whilst there has been a gradual convergence between the hardware specifications of mini PCs and NUCs the final distinguishing factor has now also converged: namely price. Conventionally mini PCs have been low-priced reflecting the low-specs of low-power and low-configurability. But addressing the ‘low’ points has come at a cost with the configurable mini PC now at the top of the $100 to $300 price range for Intel processor-based mini PCs. And the top price is what coincidentally and perhaps unsurprisingly is the cost of the latest Intel NUC mini PC, the ‘Intel NUC 7 Essential Mini PC – NUC7CJYSAL with Windows 10’.
Intel kindly provided me with a pre-production model of the NUC7CJYSAL which has allowed me to look at how it compares to others in the evolving mini PC market. I’ve looked at performance and handling under both Windows and Ubuntu and the following is what I’ve encountered.
Being a NUC, the physical design is likely to be familiar to most. It consists of a small approximately 4.5″ square case about 2″ tall with a distinctive front panel that includes the power button and a couple of USB ports with the rest of the ports including two HDMI (2.0a) ones at the rear:
The specifications, which refer to the NUC7CJYSAL as NUC7CJYS, include:
It is worth noting that the NUC7CJYSAL is part of the NUC ‘June Canyon’ product range that features the mini PC together with barebone kits and a board using either the Celeron J4005 dual core processor or the more powerful Pentium J5005 quad core processor from the new Gemini Lake processor range:
The NUC7CJYSAL uses the Celeron J4005 dual core processor and the decision to use this rather than the Celeron J4105 quad core processor was to keep the overall price down (noting that the ‘Recommended Customer Price’ is obviously not the internal cost to Intel). Price becomes a significant factor when purchasing large numbers of the device for digital signage where the key graphics processing factor is the same and the gain from the additional processor cores is not required.
The other key point to note is the NUC7CJYSAL comes with 32GB eMMC with pre-installed Windows 10 Home together with space and connectors for an SSD. The eMMC is not included in the barebone kits or board.
The device I’ve tested is a pre-production model so the Windows 10 OS although an OEM install is unactivated. Production models will come activated.
So starting with Windows a quick look at the hardware information shows it is aligned to the specification:
and that the 4GB of memory is DDR4:
As usual I ran my standard set of benchmarking tools to look at performance under Windows:
The results are interesting when compared to other Intel mini PCs:
It may be argued that no direct comparison can be made because there are so many different variables: quad vs dual core, HD 500 vs HD505 vs UHD 600, DDR3 vs DDR4, eMMC vs M.2 etc.
Broadly speaking however the NUC7CJYSAL performance is similar or better than the N4200 and J3455 devices with the exception of CPU comparisons where the quad cores out perform its dual core processor.
Interestingly the Passmark 9 result is somewhat baffling due to the low mark for 3D Graphics. It was only having performed all the testing that I noticed this peculiarity so I decided to re-run the Passmark 9 test on the NUC7CJYSAL which by that stage had Windows running on an internally installed SSD. The new marks were:
which when compared with the marks from an N4200 device:
further highlight how unusual the result is. The individual test scores are similar however the overall ‘mark’ for 3D Graphics is substantially different. Looking at the previously published formula for calculating the marks, I plugged in all the individual values only to get both much closer mark scores but ones that were totally different to the reported marks when running the test:
Using the same formula but plugging in the actual test marks for calculating the overall PassMark rating calculation did match:
so it has raised a doubt over the accuracy and validity of this particular performance test.
Moving on I then shrunk the Windows partition and created new a 10 GB partition so I could install and dual boot Ubuntu.
Initially I used the same standard (and now EOL) Ubuntu desktop 17.04 ISO as I’ve used in previous tests however the display was unusable as the kernel didn’t support the display driver required for the new Intel GPU. So I decided to try Ubuntu 17.10.1 and whilst the display was fixed I had neither Wifi nor Bluetooth. Upgrading the ‘linux-firmware’ together with a ‘modprobe btusb’ got me Bluetooth but still no WiFi. However both were fixed using the daily development Ubuntu ISO. I next tried Ubuntu 16.04.4 but again no Wifi nor Bluetooth. Further testing concluded that regardless of the ISO release for a functioning Ubuntu, I needed as a minimum the 4.15.0-10 ‘kernel’ and 1.171 ‘linux-firmware’ which are both available from the ‘bionic’ repositories (where ‘linux-firmware’ is now at 1.172). This means for ‘Live’ booting from an Ubuntu ISO written to a USB the choice is currently only the unreleased development ‘Bionic Beaver’ ISO for fully functioning display, Wifi and Bluetooth OOTB. However I also found that the ‘intel_gpu_top’ application was broken at the moment making the development release unsuitable for my testing.
As a result I decided to respin an officially released Ubuntu 16.04.4 ISO using my ‘isorespin.sh’ script and upgrade both the kernel and firmware packages. As my script until now did not include the ability to upgrade the bootable kernel from an upstream release I first had to make the necessary enhancements. Next I wrote a ‘wrapper’ script that would pull in the relevant packages from an upstream distribution repository and upgrade the specified ISO as part of respinning. I only chose to use Ubuntu 16.04.4 for testing purely because of the familiarity of using Unity over GNOME with my testing applications. The command I used to respin the ISO was:
isorespin.sh -i ubuntu-16.04.4-desktop-amd64.iso \
-f wrapper-linuxium-install-bionic-kernel-and-firmware-on-16.04.4.sh \
-c wrapper-linuxium-install-bionic-kernel-and-firmware-on-16.04.4.sh \
-c "update-initramfs -u"
which created an ISO called ‘linuxium-ubuntu-16.04.4-desktop-amd64.iso’ that I simply wrote to a USB using ‘dd’. The scripts used are ‘isorespin.sh’ and ‘wrapper-linuxium-install-bionic-kernel-and-firmware-on-16.04.4.sh’ with further details available on my blog.
Once installed and running I first ran some basic commands to look at the hardware in more detail:
linuxium@NUC7CJYSAL:~$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 16.04.4 LTS
linuxium@NUC7CJYSAL:~$ uname -a
Linux NUC7CJYSAL 4.15.0-10-generic #11-Ubuntu SMP Tue Feb 13 18:23:35 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
linuxium@NUC7CJYSAL:~$ inxi -Fc0
System: Host: NUC7CJYSAL Kernel: 4.15.0-10-generic x86_64 (64 bit)
Desktop: N/A Distro: Ubuntu 16.04 xenial
Machine: System: Intel product: NUC7CJYS v: J67993-301 serial: G6JY80200868
Mobo: Intel model: NUC7JYB v: J67970-301 serial: GEJY80100RVU
Bios: Intel v: JYGLKCPX.86A.0024.2017.1229.1454 date: 12/29/2017
CPU: Dual core Intel Celeron J4005 (-MCP-) cache: 4096 KB
clock speeds: max: 2700 MHz 1: 2500 MHz 2: 928 MHz
Graphics: Card: Intel Device 3185
Display Server: X.org 1.19.5 drivers: (unloaded: fbdev,vesa)
tty size: 204x62 Advanced Data: N/A for root
Audio: Card Intel Device 3198 driver: snd_hda_intel
Sound: Advanced Linux Sound Architecture v: k4.15.0-10-generic
Network: Card-1: Intel Device 31dc driver: iwlwifi
IF: wlp0s12f0 state: down mac: 34:13:e8:74:92:4e
Card-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
IF: enp2s0 state: up speed: 1000 Mbps duplex: full
Drives: HDD Total Size: NA (-) ID-1: /dev/mmcblk0 model: N/A size: 31.3GB
Partition: ID-1: / size: 9.8G used: 5.8G (63%) fs: ext4 dev: /dev/mmcblk0p5
RAID: No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors: System Temperatures: cpu: 34.0C mobo: N/A
Fan Speeds (in rpm): cpu: N/A
Info: Processes: 185 Uptime: 1:43 Memory: 628.5/3530.0MB
Client: Shell (review-tests.sh) inxi: 2.2.35
linuxium@NUC7CJYSAL:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.7G 0 1.7G 0% /dev
tmpfs 353M 5.8M 348M 2% /run
/dev/mmcblk0p5 9.8G 5.8G 3.5G 63% /
tmpfs 1.8G 284K 1.8G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mmcblk0p1 96M 53M 44M 55% /boot/efi
tmpfs 353M 100K 353M 1% /run/user/1000
/dev/mmcblk0p3 18G 17G 1.2G 94% /media/linuxium/1C4ECC5F4ECC32F6
linuxium@NUC7CJYSAL:~$ lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop1 7:1 0 0 loop
loop6 7:6 0 0 loop
loop4 7:4 0 0 loop
mmcblk0boot0 179:8 0 4M 1 disk
loop2 7:2 0 0 loop
loop0 7:0 0 0 loop
loop7 7:7 0 0 loop
loop5 7:5 0 0 loop
mmcblk0boot1 179:16 0 4M 1 disk
mmcblk0 179:0 0 29.1G 0 disk
├─mmcblk0p4 179:4 0 1G 0 part
├─mmcblk0p2 179:2 0 128M 0 part
├─mmcblk0p5 179:5 0 10G 0 part /
├─mmcblk0p3 179:3 0 17.9G 0 part /media/linuxium/1C4ECC5F4ECC32F6
└─mmcblk0p1 179:1 0 100M 0 part /boot/efi
loop3 7:3 0 0 loop
linuxium@NUC7CJYSAL:~$ sudo lshw -C cpu
product: Intel(R) Celeron(R) J4005 CPU @ 2.00GHz
vendor: Intel Corp.
physical id: 36
bus info: cpu@0
version: Intel(R) Celeron(R) J4005 CPU @ 2.00GHz
slot: SOCKET 0
width: 64 bits
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts umip rdpid cpufreq
configuration: cores=2 enabledcores=2 threads=2
linuxium@NUC7CJYSAL:~$ sudo lshw -C memory
vendor: Intel Corp.
physical id: 0
capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer acpi usb biosbootspecification uefi
description: System Memory
physical id: 24
slot: System board or motherboard
description: SODIMM Synchronous 2400 MHz (0.4 ns)
physical id: 0
width: 64 bits
clock: 2400MHz (0.4ns)
description: DIMM DDR2 Synchronous [empty]
physical id: 1
description: L1 cache
physical id: 34
slot: ��������CPU Internal L1
capabilities: synchronous internal write-back
description: L2 cache
physical id: 35
slot: ��������CPU Internal L2
capabilities: synchronous internal write-back unified
linuxium@NUC7CJYSAL:~$ free -mh
total used free shared buff/cache available
Mem: 3.4G 535M 1.9G 232M 1.0G 2.4G
Swap: 0B 0B 0B
linuxium@NUC7CJYSAL:~$ sudo lshw -C network
description: Wireless interface
product: Intel Corporation
vendor: Intel Corporation
physical id: c
bus info: pci@0000:00:0c.0
logical name: wlp0s12f0
width: 64 bits
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=4.15.0-10-generic firmware=34.0.0 latency=0 link=no multicast=yes wireless=IEEE 802.11
resources: irq:44 memory:a1314000-a1317fff
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: enp2s0
width: 64 bits
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl8168h-2_0.0.2 02/26/15 ip=XXX.XXX.XXX.XXX latency=0 link=yes multicast=yes port=MII speed=1Gbit/s
resources: irq:127 ioport:e000(size=256) memory:a1104000-a1104fff memory:a1100000-a1103fff
linuxium@NUC7CJYSAL:~$ dmesg | grep "MMC card"
[ 1.747563] mmc0: new HS400 MMC card at address 0001
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0aaa Intel Corp.
Bus 001 Device 007: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 008: ID 10d5:55a4 Uni Class Technology Co., Ltd
Bus 001 Device 006: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
00:00.0 Host bridge: Intel Corporation Device 31f0 (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Device 3185 (rev 03)
00:0c.0 Network controller: Intel Corporation Device 31dc (rev 03)
00:0e.0 Multimedia audio controller: Intel Corporation Device 3198 (rev 03)
00:0f.0 Communication controller: Intel Corporation Device 319a (rev 03)
00:12.0 SATA controller: Intel Corporation Device 31e3 (rev 03)
00:13.0 PCI bridge: Intel Corporation Device 31d8 (rev f3)
00:13.2 PCI bridge: Intel Corporation Device 31da (rev f3)
00:15.0 USB controller: Intel Corporation Device 31a8 (rev 03)
00:1c.0 SD Host controller: Intel Corporation Device 31cc (rev 03)
00:1f.0 ISA bridge: Intel Corporation Device 31e8 (rev 03)
00:1f.1 SMBus: Intel Corporation Device 31d4 (rev 03)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
Running my usual suite of Phoronix tests showed similar performance results to Windows with the device in general being comparable or better than similar equivalently priced devices.
First I looked at the NUC7CJYSAL in comparison with the base models of Intel Compute Sticks and Compute Cards (i.e. excluding comparison with the core m3/m5 devices):
And then against similar Intel based mini PCs:
I also ran a comparison of the benchmarks after I had installed Ubuntu Mate 18.04 Beta1 on an internally installed SSD:
which shows an overall performance improvement from using an SSD for storage which is more likely to represent the build scenario that most Ubuntu users choosing this device would use.
Ubuntu’s Octane result was also slightly better than in Windows:
Next I looked at real-world usage by playing videos under Windows using both Edge and Chrome browsers. Under Edge both 4K@30fps and 4K@60fps videos played without issue:
Under Chrome 4K@30fps videos were fine:
however 4K@60fps videos had the occasional dropped frame but were still watchable:
In contrast playing videos in Ubuntu was a similar story to other Intel processor-based mini PCs with 4K@30fps being unwatchable:
but okay when played at 1080p:
Unfortunately both 4K@60fps and 1080p@60fps were unwatchable using Chrome on Ubuntu with the lower resolution still resulting in a 50% loss of frames.
Playing videos using Kodi on Windows worked for VP9 codec encoded video but used software for decoding resulting in high CPU usage and higher CPU temperatures:
whereas a H.264 codec encoded video used hardware to decode without the preceding overheads:
as did videos encoded with H.265 or HEVC:
Because the default installation of Kodi on Ubuntu 16.04.4 was only version 15.2 I again looked to ‘bionic’ and installed version 2:17.6. This resulted in Kodi on Ubuntu using software to decode all three codecs and resulted in judders and the occasionally frame freeze:
Some H.265 or HEVC videos were unwatchable experiencing a 10% loss of frames for each second of play:
with others were better at juddering along:
I found that on Ubuntu Mate 18.04 Beta1 if I installed the ‘i965-va-driver’ I could at least get hardware acceleration for H.264 codec encoded videos using the Video Acceleration API:
And also for some H.265 or HEVC videos:
However on Ubuntu 16.04.4 even installing and then upgrading the ‘i965-va-driver’ (1.7.0-1) to the version from ‘bionic’ (2.0.0+dfsg1-1) did not result in any hardware acceleration.
As can be seen the software decoding maximises the CPU usage in Ubuntu resulting in higher internal temperatures. The NUC7CJYSAL includes a near silent fan and under Windows it is just possible to hear when it runs at higher speed however under Ubuntu it is very quiet. So quiet I started to wonder whether it was in fact running.
I tried accessing the fan through software but the best I could do was only be reassured that there was a fan:
I also tried using the Ubuntu Mate 18.04 Beta1 I had installed to SSD but again all I could do was prove that there was a fan and that it was working as having stressed the CPUs they cooled down sufficiently fast to indicate active cooling:
To triple check that cooling was indeed working under Ubuntu I ran a 1080p video in Chrome for 20 minutes and the internal temperature remained under control averaging around 60°C with the external temperature not exceeding 38°C.
Audio (unsurprisingly) works on Windows:
and (thankfully) on Ubuntu without issues:
including when headphones were plugged in to the rear audio jack:
Network connectivity throughput was measured using ‘iperf’:
which resulting in consistently very slow download speeds for 5.0 GHz which given the newness of the Intel Wireless-AC 9462-D2W module may indicate that further tuning on Linux is necessary.
Power consumption was measured with an SSD installed as I consider this the likely usage configuration:
- Powered off – 0.9 Watts
- BIOS* – 6.5 Watts
- Boot menu – 6.3 Watts
- Idle – 5.6 Watts (Windows) and 4.9 Watts (Ubuntu)
- CPU stressed** – 11.7 Watts (Ubuntu)
- Video playback*** – 9.3 Watts (4K in Windows) and 9.2 Watts (HD in Ubuntu)
* BIOS has a full graphical user interface (see below)
** Initially there is a high power demand before reducing to a constant rate.
*** The power figures fluctuate so the value is the average of the median high and median low power readings.
The results show similar power consumption to comparable mini PC devices using ‘Desktop’ processors.
The BIOS features a full graphical user interface and includes the ability to monitor the fan speed and various temperatures together with features like screen capture:
As mentioned I installed an SSD which I did by unscrewing the base of the device and carefully lifting it out and sliding in the SSD into the drive bay on the underside. The cables connecting the drive bay and the motherboard are not very long so for reference the base will not completely detach which is why care is advised.
Once the base is screwed back into the device and the power and cables reconnected it is straightforward to install both Windows and Ubuntu from ISOs written to USBs.
For the sake of testing completeness the SSD I installed was an older model Samsung 650 120GB SSD which is still nice and quick compared to newer models:
The launch of a NUC with this specification is a pivotal point in the development of mini PCs. Whether intentionally or otherwise it is going to challenge the dominance of Chinese manufactures in the mini PC market place. The introduction of well-known computer companies offering small-form-factor mini PCs provides a wider choice which together with the more robust support will be welcomed by the risk averse consumer.
Ian is interested in mini PCs and helps with reviews of mini PCs running Windows, Ubuntu and other Linux operating systems. You can follow him on Facebook or Twitter.