FreeBSD - Intel NUC Setup

I haven't run FreeBSD since 2012. My personal network needed a server, so I looked for a computer that:

Executive Summary

This was a LOT easier than it seemed like based on reading notes on the web, from which I had read the following:

Locate

I located the following pieces of equipment in my inventory:

Purchase

I bought the following, ordering on December 1, 2016:

Memory Modules

I bought a matched pair of memory modules so that the computer could take advantage of a possible performance optimization .

Intel has a web page entitled System Memory for IntelĀ® NUC Kits NUC6i3SY/NUC6i5SY. This page lists the memory modules Intel tested and found usable by the i3 and i5 6th generation NUCs including the model I bought. The memory I chose was reasonably priced, from a reputable manufacturer, but wasn't on those lists. I bought it anyway because:

NUC

Information from the bottom of the NUC box:

Install Hardware in NUC

I followed Intel's NUC instructions to install memory modules (2x8GB), then the M.2 SSD.

  1. Screws on bottom plate were easy to remove (and replace) with a Phillips screwdriver
  2. The memory modules fit easily - for each:
    1. insert module into its holder at an angle
    2. push down module until it catches under a small metal tab on the motherboard
  3. M.2 SATA card has a similar installation, except:
    1. unscrew/remove holddown screw
    2. insert SSD at angle
    3. push down on SSD card to move it parallel with the motherboard
    4. reinsert/tighten holddown screw
  4. Replace bottom plate and screw it down

External Setup

This consisted of:

  1. plugging in a keyboard
  2. setting up HDMI cables and the HDMI switch for both NUC and Linux desktop computers
  3. plugging in the power supply to line power and plugging in the other end to the NUC

Fortunately, the NUC doesn't power on upon live power insertion (it looks like it may be possible to set that up using the BIOS setup program for those that prefer that option).

Smoke Test and Set Up BIOS

Powered on NUC. The only problem was getting the NUC to respond to function key presses at boot ROM initial screen. Options in boot ROM screen include:

However, other keys and Ctrl-Alt-Del work, so obviously these USB 3.0 ports can handle a USB 2.0 keyboard. Finally figured out that pressing the desired function key multiple times (not holding down the key) while the menu is presented works to take the option.

BIOS Setup

I was finally able to go to the BIOS setup by pressing F2 multiple times fairly rapidly. The BIOS setup UI is surprisingly nice. Looks like it supports a mouse, as well, because there's a mouse pointer even though I don't have a mouse connected to the computer. A mouse would be more useful, although the UI is navigable entirely by keyboard.

I examined the default BIOS configuration, finding out that:

Upgrading BIOS

I read a number of reports about people having trouble with the BIOS versions on the NUCs. As a result, I decided to check the existing BIOS version, look at the release notes for the more current BIOS versions, and upgrade if it seemed reasonable.

I looked for BIOS downloads at the Downloads for IntelĀ® NUC Kit NUC6i3SYH page. I downloaded the file SYSKLi35.86A.0054.BI.zip for version 54. The archive contains two files: IFLASH2.EXE and SY0054.bio.

After all the choices I had for methods of upgrading the BIOS, I ended up starting the upgrade process by pressing F7 within the BIOS setup UI (this option isn't described on the Intel web site (although the option to press F7 at boot time is); there is a note at the bottom of the setup screen that offers this option). No need for creating a bootable flash stick or optical medium. I prepared a flash stick by putting the SY0054.bio file on it, and inserted it into one of the USB 3.0 jacks on the NUC prior to pressing F7.

The upgrade completed without any problem, and the BIOS is now upgraded to version 54, from September 30, 2016.

BIOS Configuration Modification

I modified the setup to disable bluetooth.

Installing FreeBSD

I used disc1.iso (has FreeBSD, source, ports) burned to a CD on Linux as follows:

  1. downloaded FreeBSD-11.0-RELEASE-amd64-disc1.iso.xz
  2. ran unxz FreeBSD-11.0-RELEASE-amd64-disc1.iso.xz to create FreeBSD-11.0-RELEASE-amd64-disc1.iso
  3. burned the image file to CD using Brasero

I plugged in a portable USB optical drive to a USB 3.0 port on the NUC, and inserted the CD containing the FreeBSD install.

Rebooting the NUC resulted in it reading the CD and booting FreeBSD.

There were multiple errors after a while that seemed to indicate the CD drive, but after those FreeBSD continued booting.

The wired Ethernet device is em0.

I chose a host name, and chose additional installs including:

The source tree is apparently needed for some ports, even though I might not build a base install of FreeBSD.

Partitioning the SSD

The SSD drive is device name ada0.

I'm using the GPT partition table as recommended by the FreeBSD handbook.

Installer suggested these partitions:

  1. ada0 466 GB GPT
    1. ada0p1 200 MB efi
    2. ada0p2 462 GB freebsd-ufs /
    3. ada0p3 3.8 GB freebsd-swap none

Why UFS and not ZFS? I didn't choose the root-on-ZFS option (marked as experimental). That's probably OK, since I don't want all my partitions ZFS, just the one for /home. Maybe others later.

After reading the FreeBSD handbook, looks like I could use manual partitioning. The handbook suggests customizing the partition names, so I chose a two-letter prefix associated with the host name. Here's the partition list I came up with first:

  1. freebsd-boot 512K size mandated by handbook
  2. freebsd-ufs 10G / crrootfs
  3. freebsd-swap 32G crswap handbook suggests swap size 2x RAM
  4. freebsd-ufs 20G /var
  5. freebsd-ufs 20G /tmp
  6. freebsd-ufs 100G /usr
  7. freebsd-zfs rest /home

However, the suggested set of partitions include an efi partition and no boot partition. The efi in the auto-generated partitions is extensible firmware interface. This is associated with universal extensible firmware interface or UEFI, the new booting system. I will start with the installer-suggested partitions, and modify them to create the eventual system as follows:

  1. efi 200M
  2. freebsd-ufs 10G / crrootfs
  3. freebsd-swap 32G crswap handbook suggests swap size 2x RAM
  4. freebsd-ufs 20G /var crvarfs
  5. freebsd-ufs 20G /tmp crtmpfs
  6. freebsd-ufs 100G /usr crusrfs
  7. freebsd-ufs rest /home crhomefs about 300 GB

I chose to not use ZFS for any partitions. ZFS seems to only make sense for putting in multiple disk drives so that redundancy is available. It would be a great file system for disks on a NAS.

Networking

Set up networking. Tried the IPv6 DHCP equivalent and it apparently worked. My ISP apparently has no IPv6 addresses for DNS servers.

Remainder

Completed and rebooted.

Reboot and First Log In

I logged in after a successful reboot. I su'd to check that my adding myself to the wheel group allowed this. I then logged out - now I can use ssh from Linux desktop to continue configuration.

Initial Configuration

I installed ports system using portsnap. I am building packages from source. I built subversion, which is pulling in everything and taking a long time. I built vim, which is also taking forever from pulling in even more. I installed portmaster, which was instantaneous.

There are other configurations that I am documenting on a different web page than this, since the intent of this page is to document how to set up a bare NUC and install FreeBSD on it.

End Notes

This is enough to show that I can install FreeBSD on a NUC. I hope this helps the reader navigate what I found to be confusing, contradictory information on the web (welcome to the web).


Back to FreeBSD main page