Recently we published the first benchmarks of the Intel Atom C3000 series codenamed “Denverton” with platform details. Since we published that piece, we were able to pick up our official test platform for the Intel Atom C3338. The Intel Atom C3338 which was first launched in January 2017 and is the only Denverton SKU currently available. We expect the Intel Atom C3338 to find its way into lower-end NAS devices as well as firewall applications in the next few years. As we saw with the Avoton/ Rangeley and Broadwell-DE generations, we are in a situation where the hardware we have is slightly ahead of the software ecosystem. We are going to focus this article series on a few tips and tricks to get the systems up and running.
Working on the Intel Atom C3338: Network Setup
As we outlined in our initial Intel Atom C3000 piece, there is a new NIC on the block, the Intel X553 NIC. Even when it is paired with 1GbE ports, it still utilizes the Intel 10GbE (ixgbe) driver. Every major OS supports ixgbe however the Intel X553 was not in earlier versions of the driver package. As a result, you will need to build the latest drivers on many OSes.
Here is what we have tested thus far in terms of out of the box functionality on some popular OSes:
- Ubuntu 16.04.2 LTS – Does not work
- Ubuntu 14.04.5 LTS – Does not work
- CentOS 7 (1611) – Works
- FreeNAS 9.10 – Does not work
- pfSense 2.3.3 – Does not work
- VMware ESXi 6.0 – Does not work
- VMware ESXi 6.5 – Does not work
We were able to confirm that the new ixgbe is coming to FreeBSD 11 so we expect future versions of FreeNAS and pfSense to support the Intel X553 at some future date. We also expect the upcoming Ubuntu 17.04 release to support the new driver even though it is not an LTS version. ESXi will likely require a side-load VIB file for some time like we had to do back in with Avoton/ Rangely NICs and again with Broadwell-DE.
Getting the Intel Atom C3000 Intel X553 NICs working with Ubuntu/ Debian
Since we expect that the Ubuntu/ Debian community will want to start working with these machines sooner rather than later, here are the instructions for getting drivers working on Ubuntu.
Download the latest ixgbe driver. We can confirm that 5.0.4 is working with the Intel Atom C3000 series.
Install Ubuntu on the new system. There is a big caveat here. When you setup your new Intel Atom C3000 box using current installers, you will not be able to install packages via repos. You need to have make and gcc installed (or build-essential if you are going to install that anyway.) Luckily, you can use aptitude on the installation media to install make and gcc or build-essential. Our advice is to do this.
Get drivers onto the system. There are a few options for this. If you have a local machine, you can plug-in a USB stick with the drivers. If it is in a data center, you can use either onboard IPMI to mount a USB drive or an ISO.
If onboard IPMI with virtual media is not available, most data centers also have Lantronix Spider devices which can mount USB keys remotely.
You can then mount the device and copy the driver package locally to the host system.
Extract the ixgbe package using:
tar xzvf ixgbe-5.0.4.tar.gz
Head to the source directory:
At this point, we now can compile and install the driver as normal.
sudo rmmod ixgbe
sudo make install
sudo insmod ./ixgbe
sudo modprobe ixgbe
That will install the driver you need. At this point, you should be able to see your interfaces using “ip a” but they will not be setup yet.
To setup, we are going to use nano, but you can use another text editor:
sudo nano /etc/network/interfaces
Here you can add your static or DHCP connections as normal.
A key trick, on virtually all modern Supermicro motherboards, the first numbered NIC will be the bottom left most NIC. Many of the smaller OEMs use this same convention. Larger OEMs may have different numbering.
This process should be similar for other OSes as Intel provides updated drivers for a number of OSes.
Every time Intel releases a new SoC it means driver pain for the earliest adopters. Not having a NIC available is absolutely painful, especially when you are working on a remote system and do not have functional IPMI like we had. Hopefully, this guide will help you, at a minimum, have a network connection and get started with the machines.