Not another installing Linux tutorial

Ah, the Intel NUC. Small, expandable, and cheap, it’s a no-brainer for enthusiast and professionals alike who may need a compact Windows environment or a home server. However, the Intel NUC is only tested for compatibility with Windows computers, which means if you’re aiming for the something like the latter, you may run into issues. I can understand their reticence to test Linux distributions – it’s a broad, diverse, changing world compared to that of Windows. Intel does have a list of Linux distributions which are purported to work, but I can tell you from my experience with all the list that the process is not perfect.

I hope to document what my team does with the NUC over the next few months, I’m not sure it will be that interesting. I do hope that it will help others who are searching the internet for answers on Linux and NUC, as I’m sure many of the people buying the NUC are users who are hoping to learn Linux without committing to it entirely.

Why the NUC?

The goal was simple. Setup a local intranet server that would have a host of simple tools (think scrapers, backups, LDAP, etc ) that our developers regularly need access to but which for a variety of reasons we don’t want hosted off-site. We liked the idea of the NUC, as we did the Raspberry Pi, because they’re compact and just powerful enough for what we need.

Get in, get out: Setting up Your Intel NUC as quickly as possible

The only things you need in addition to the NUC itself are RAM and a hard drive. Since we had DDR4 RAM and an SSD lying around, this meant the whole setup was only going to cost us a few hundred dollars. Since there is no reason that this solution wouldn’t work for the next four years at least, we’re saving money.

I needed to get this server up and running as soon as possible for three primary reasons:

  1. I was using an micro keyboard and old monitor that I found in the closet.
  2. I needed to be wired via ethernet to the router until I could get the Wifi working property, which meant I was laying on the floor next to the router.
  3. It was a Friday before a long weekend, and I wanted to get this thing setup and not have to worry about again.

Choosing a distribution

tl;dr the only distribution we got working (so-far) seamlessly was Ubuntu Server 14.10.

We needed Linux, and since it was primarily meant to operate as a server, I had a few distributions I could test. I started with Ubuntu Server 16.04.4 LTS, which notified me during installation that DHCP lookup had failed. I figured I could configure after installation, but after attempting a variety of drivers found scattered about the web, I moved on to Ubuntu Server 17.10.1. That was an improvement; I had internet but it wouldn’t recognize the USB 3.0 port. I could live with that but if I could find something that worked as expected that was obviously ideal.

Since the issue seemed to be driver support, I tried two other common and up-to-date distros: Mint and Arch. Internet remained unavailable for each.

After trying five more previous versions of Ubuntu server, I found 14.10 was the one I needed. Everything (so far) has worked. You can download this version of Ubuntu Server here.

Going remote: Installing SSH and Configuring a Static IP

OpenSSH will allow our team to connect to the NUC remotely, which was ideal since I was lying on the floor in a dusty corner. If you forgot to install OpenSSH on your NUC during the Ubuntu Server installation process, which of course I did on the tenth installation process in two hours, you’ll have to do that with the following commands:

sudo apt-get install openssh-client
sudo apt-get install openssh-server

You can confirm that SSH is working as expected by SSH-ing into your NUC from your NUC. Try it out:

ssh localhost

Wow, super. But not that useful. To ensure we can communicate with our NUC via another machine on the network consistently, we’ll have to give the NUC a static IP address.

Giving your NUC a static IP address as simple as it is on any Linux installation, but again you have to be cognizant of the fact that your ethernet card likely isn’t eth0, so copying most tutorials found online may result in you setting rules for a card that does not exist. The good news is this is just a naming convention, so to confirm the name of your card run ifconfig.

Edit the interfaces file with

sudo nano /etc/network/interfaces

Add the following lines

  • address – IP address for a static IP configured interface
  • netmask – Defines a computer’s network and LAN
  • network – Defines the number of available IPs on the network

By the end of this process, you should end up with something like this. With a few exceptions, the exact same configuration should work on your network as well, so feel free to use them for testing purposes.

gateway and broadcast are optional in most cases, but were necessary for my personal setup.

And, done

Once you’ve followed the above steps, you’ll be able to confirm you’re able to administer your NUC from another computer on your local network. Again, the command for this is very common, but as I suspect many people are buying the Intel NUC to learn Linux without committing entirely to adopting it on a computer that they use regularly, here is the command:

ssh {username}@{ip address}

Assuming all goes well and you’re able to SSH into the NUC, you can safely disconnect the keyboard and monitor, place the NUC wherever you’d like, and rest assured that you can finish tailoring it to your needs over LAN rather than on the floor.