Sixth Generation Intel NUC

I recently decided it would be fun to upgrade the hardware on my main OpenBSD machine at home (because, you know, geek). These Intel NUC machines are pretty interesting. They are pretty powerful, support a decent amount of RAM, certain models support internal storage, and they are very low power and low noise. Perfect for a machine that is a shell/email/development box.

The model I chose is the NUC6i3SYH.

  • Core i3 processor (because my machine is not at all CPU bound)
  • Very low power consumption (15W)
  • Supports a 2.5″ SSD

OpenBSD 6.0 boots with the GENERIC kernel; no tuning or tweaking required. Full dmesg is at the end of this post. Hightlights of the hardware include:

  • Wired network: Intel I219-V using the em(4) driver
  • Wireless network: Intel Dual Band Wireless AC 8260 using the iwm(4) driver (no support for 802.11ac in OpenBSD at the time of this writing so it's 802.11n only)
  • Dual-core CPU with hyperthreading (be sure to boot GENERIC.MP)

The kernel recognizes the Intel SpeedStep capabilities of the CPU and will adjust the CPU's clock speed as needed (further keeping the power consumption of the machine at a very low level).

cpu0: Enhanced SpeedStep 2305 MHz: speeds: 2301, 2300, 2200, 2000, 1900, 1800, 1600, 1500, 1300, 1200, 1100, 900, 800, 700, 500, 400 MHz

In order to enable the kernel's management of CPU's clock speed, I set the hw.perfpolicy sysctl knob from manual to auto.

# sysctl hw.perfpolicy=auto
# sysctl hw.cpuspeed
hw.cpuspeed=400    << machine is idle, so it's at the lowest freq

Full dmesg:

OpenBSD 6.0-stable (GENERIC.MP) #6: Mon Dec 19 20:16:08 MST 2016
cpu0: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz ("GenuineIntel" 686-class) 2.20 GHz
real mem  = 2316951552 (2209MB)
avail mem = 2259873792 (2155MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: date 05/13/15, SMBIOS rev. 3.0 @ 0x8b1d7000 (58 entries)
bios0: vendor Intel Corp. version "SYSKLi35.86A.0042.2016.0409.1246" date 04/09/2016
bios0: Intel corporation NUC6i3SYB
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: wakeup devices PEGP(S4) PEG0(S4) PEGP(S4) PEG1(S4) PEGP(S4) PEG2(S4) SIO1(S3) PXSX(S4) RP09(S4) PXSX(S4) RP10(S4) PXSX(S4) RP11(S4) PXSX(S4) RP12(S4) PXSX(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 24MHz
cpu0: mwait min=64, max=64, C-substates=, IBE
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz ("GenuineIntel" 686-class) 2.31 GHz
cpu2 at mainbus0: apid 1 (application processor)
cpu2: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz ("GenuineIntel" 686-class) 2.31 GHz
cpu3 at mainbus0: apid 3 (application processor)
cpu3: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz ("GenuineIntel" 686-class) 2.31 GHz
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 120 pins
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-255
acpihpet0 at acpi0: 23999999 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (PEG0)
acpiprt2 at acpi0: bus -1 (PEG1)
acpiprt3 at acpi0: bus -1 (PEG2)
acpiprt4 at acpi0: bus -1 (RP09)
acpiprt5 at acpi0: bus -1 (RP10)
acpiprt6 at acpi0: bus -1 (RP11)
acpiprt7 at acpi0: bus -1 (RP12)
acpiprt8 at acpi0: bus -1 (RP13)
acpiprt9 at acpi0: bus -1 (RP01)
acpiprt10 at acpi0: bus -1 (RP02)
acpiprt11 at acpi0: bus -1 (RP03)
acpiprt12 at acpi0: bus -1 (RP04)
acpiprt13 at acpi0: bus 1 (RP05)
acpiprt14 at acpi0: bus -1 (RP06)
acpiprt15 at acpi0: bus -1 (RP07)
acpiprt16 at acpi0: bus -1 (RP08)
acpiprt17 at acpi0: bus -1 (RP17)
acpiprt18 at acpi0: bus -1 (RP18)
acpiprt19 at acpi0: bus -1 (RP19)
acpiprt20 at acpi0: bus -1 (RP20)
acpiprt21 at acpi0: bus -1 (RP14)
acpiprt22 at acpi0: bus -1 (RP15)
acpiprt23 at acpi0: bus -1 (RP16)
acpiec0 at acpi0: not present
acpicpu0 at acpi0: C2(200@151 mwait.1@0x31), C1(1000@1 mwait.1), PSS
acpicpu1 at acpi0: C2(200@151 mwait.1@0x31), C1(1000@1 mwait.1), PSS
acpicpu2 at acpi0: C2(200@151 mwait.1@0x31), C1(1000@1 mwait.1), PSS
acpicpu3 at acpi0: C2(200@151 mwait.1@0x31), C1(1000@1 mwait.1), PSS
acpipwrres0 at acpi0: PG00, resource for PEG0
acpipwrres1 at acpi0: PG01, resource for PEG1
acpipwrres2 at acpi0: PG02, resource for PEG2
acpipwrres3 at acpi0: WRST
acpipwrres4 at acpi0: WRST
acpipwrres5 at acpi0: WRST
acpipwrres6 at acpi0: WRST
acpipwrres7 at acpi0: WRST
acpipwrres8 at acpi0: WRST
acpipwrres9 at acpi0: WRST
acpipwrres10 at acpi0: WRST
acpipwrres11 at acpi0: WRST
acpipwrres12 at acpi0: WRST
acpipwrres13 at acpi0: WRST
acpipwrres14 at acpi0: WRST
acpipwrres15 at acpi0: WRST
acpipwrres16 at acpi0: WRST
acpipwrres17 at acpi0: WRST
acpipwrres18 at acpi0: WRST
acpipwrres19 at acpi0: WRST
acpipwrres20 at acpi0: WRST
acpipwrres21 at acpi0: WRST
acpipwrres22 at acpi0: WRST
acpipwrres23 at acpi0: FN00, resource for FAN0
acpipwrres24 at acpi0: FN01, resource for FAN1
acpipwrres25 at acpi0: FN02, resource for FAN2
acpipwrres26 at acpi0: FN03, resource for FAN3
acpipwrres27 at acpi0: FN04, resource for FAN4
acpitz0 at acpi0: critical temperature is 105 degC
acpitz1 at acpi0: critical temperature is 105 degC
"ITE8713" at acpi0 not configured
"INT3F0D" at acpi0 not configured
"INT344B" at acpi0 not configured
acpibtn0 at acpi0: SLPB
"INT33A1" at acpi0 not configured
acpibtn1 at acpi0: PWRB
"INT340E" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
"PNP0C0B" at acpi0 not configured
acpivideo0 at acpi0: GFX0
acpivout0 at acpivideo0: DD1F
bios0: ROM list: 0xc0000/0xfc00
cpu0: Enhanced SpeedStep 2305 MHz: speeds: 2301, 2300, 2200, 2000, 1900, 1800, 1600, 1500, 1300, 1200, 1100, 900, 800, 700, 500, 400 MHz
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel Core 6G Host" rev 0x08
vga1 at pci0 dev 2 function 0 "Intel HD Graphics 520" rev 0x07
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
xhci0 at pci0 dev 20 function 0 "Intel 100 Series xHCI" rev 0x21: msi
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 "Intel xHCI root hub" rev 3.00/1.00 addr 1
pchtemp0 at pci0 dev 20 function 2 "Intel 100 Series Thermal" rev 0x21
"Intel 100 Series MEI" rev 0x21 at pci0 dev 22 function 0 not configured
ahci0 at pci0 dev 23 function 0 "Intel 100 Series AHCI" rev 0x21: msi, AHCI 1.3.1
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, INTEL SSDSC2CT06, 300i> SCSI3 0/direct fixed naa.50015ffff28e3ccf
sd0: 57241MB, 512 bytes/sector, 117231408 sectors, thin
ppb0 at pci0 dev 28 function 0 "Intel 100 Series PCIE" rev 0xf1: apic 2 int 16
pci1 at ppb0 bus 1
iwm0 at pci1 dev 0 function 0 "Intel Dual Band Wireless AC 8260" rev 0x3a, msi
vendor "Intel", unknown product 0x9d27 (class DASP subclass miscellaneous, rev 0x21) at pci0 dev 30 function 0 not configured
sdhc0 at pci0 dev 30 function 6 vendor "Intel", unknown product 0x9d2d rev 0x21: apic 2 int 23
sdhc0: SDHC 3.0, 200 MHz base clock
sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed, dma
pcib0 at pci0 dev 31 function 0 "Intel 100 Series LPC" rev 0x21
"Intel 100 Series PMC" rev 0x21 at pci0 dev 31 function 2 not configured
azalia0 at pci0 dev 31 function 3 "Intel 100 Series HD Audio" rev 0x21: msi
azalia0: codecs: Realtek/0x0283, Intel/0x2809, using Realtek/0x0283
audio0 at azalia0
ichiic0 at pci0 dev 31 function 4 "Intel 100 Series SMBus" rev 0x21: apic 2 int 16
iic0 at ichiic0
sdtemp0 at iic0 addr 0x18: gt30ts00
sdtemp1 at iic0 addr 0x1a: gt30ts00
em0 at pci0 dev 31 function 6 "Intel I219-V" rev 0x21: msi, address b8:ae:ed:ff:ff:ff
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
uhidev0 at uhub0 port 3 configuration 1 interface 0 "vendor 0x13ba Generic USB K/B" rev 1.10/0.01 addr 2
uhidev0: iclass 3/1
ukbd0 at uhidev0: 8 variable keys, 6 key codes
wskbd0 at ukbd0: console keyboard, using wsdisplay0
uhidev1 at uhub0 port 3 configuration 1 interface 1 "vendor 0x13ba Generic USB K/B" rev 1.10/0.01 addr 2
uhidev1: iclass 3/1, 2 report ids
ums0 at uhidev1 reportid 1: 3 buttons, Z dir
wsmouse0 at ums0 mux 0
uhid0 at uhidev1 reportid 2: input=1, output=0, feature=0
uhidev2 at uhub0 port 4 configuration 1 interface 0 "Tripp Lite TRIPP LITE UPS" rev 1.10/0.00 addr 3
uhidev2: iclass 3/0, 108 report ids
upd0 at uhidev2
ugen0 at uhub0 port 7 "Intel product 0x0a2b" rev 2.00/0.01 addr 4
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on sd0a (7e349d11a42945c3.a) swap on sd0b dump on sd0b
iwm0: hw rev 0x200, fw ver 16.242414.0, address 00:c2:c6:ff:ff:ff

If you look closely, you'll see I'm booting OpenBSD/i386. That's because I build -stable for all my machines using the i386 architecture. When 6.1 comes out, I will switch over to amd64 at which time this machine will register the rest of its installed memory.

% sysctl hw
hw.model=Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz ("GenuineIntel" 686-class)
hw.sensors.acpitz0.temp0=27.80 degC (zone temperature)
hw.sensors.acpitz1.temp0=29.80 degC (zone temperature)
hw.sensors.cpu0.temp0=30.00 degC
hw.sensors.pchtemp0.temp0=33.00 degC
hw.sensors.sdtemp0.temp0=36.00 degC
hw.sensors.sdtemp1.temp0=34.75 degC
hw.sensors.upd0.indicator0=Off (Charging), OK
hw.sensors.upd0.indicator1=Off (Discharging), OK
hw.sensors.upd0.indicator2=Off (NeedReplacement), OK
hw.sensors.upd0.indicator3=Off (ShutdownImminent), OK
hw.sensors.upd0.indicator4=On (ACPresent), OK
hw.sensors.upd0.indicator5=Off (Overload), OK
hw.sensors.upd0.percent0=100.00% (RemainingCapacity), OK
hw.sensors.upd0.percent1=100.00% (FullChargeCapacity), OK
hw.sensors.upd0.timedelta0=1262.000000 secs (RunTimeToEmpty), OK
hw.vendor=Intel corporation