Quest for gateway machine with dual Intel NICs
I, as well as my fellow Linux networking enthusiasts have grown to dislike any network hardware which has Realtek network interface cards (NICs). I had a personal problem with those; my Windows 7 installation refused updates when the gateway machine was running Realtek NICs with stock settings. Since then I had been searching for small form-factor computer with dual Intel NICs to serve as my home gateway machine.
Introducing Lanner NCA-1010, with specifications
At some point of my search I stumbled upon the Lanner Inc. NCA-1010 appliance. The NCA-1010 is an extremely small form factor fanless x86_64 system with integrated processor and peripherals on motherboard. It comes with two flavours; the NCA-1010A with E3815 Intel Atom processor and NCA-1010B with E3825 processor. Latter has 2 cores instead of one and of course shows up in Linux operating system as having 2 processors. The NCA-1010A has 1.46 GHz processor with 512k cache and the NCA-1010B has 1,33 GHz with 1M cache.
The memory supported by the design is 8 GB of DDR3L 1067 MHz non-ECC in 204-pin SODIMM packaging. There is also 1 half-length mini-PCIe slot for mSATA drive and 1 regular mini-PCIe slot for example to use with internal 3G chip or similar. The assembly also has 1 USB 2.0 and 1 USB 3.0 port. Graphics display is handled with regular HDMI port. A small LED is combined with the power button to display whether the unit is on or off. But but! The real boon about the system is the fact that it is carrying not one, not two but in fact three gigabit Intel network controllers! The chips in question are Intel I211 ‘s.
To me it seems that NCA-1010B was delivered in plain cardboard box inside a shipping box, implying it is a volume product:
Opening the box reveals the unit wrapped in plastic bag cover with power cords in dedicated cardboard cover:
The power cords and transformer in question are able to input 100-240 VAC @ 50-60 Hz with 1,5 amps and deliver 12 V AC with 3 amps. Included cord type was not the same we are using in Finland, but I was able to replace it, as it is a regular 2-pole power socket in the transformer. Pictured below the included transformer and power cord:
The system is in very small form-factor and, as described earlier, fanless. Dimensions are 124.26 mm x 19.4 mm x 119.66 mm (4.89″ x 0.76″ x 4.71″), but here is a picture of a regular 0,33 liter soda can for size reference:
Front panel of the unit. Included is also a RJ-45 connector for serial console and concealed reset button:
Backside of the unit. All three NIC sockets shown, and additionally the USB 3.0 socket and also a covered hole for wiring an external antenna:
Bottom of the unit with grid of holes for dissipating heat:
Cover opened showing mini-PCIe and half-size mSATA ports:
System board removed from housing. Thermal paste visible on Two spots, the larger being for the processor:
Close-up of the main board bottom side:
From this point I jumped into installation. First I needed some memory. I chose 4GB from Kingston, specifically the KVR16LS11/4. This should be more than enough for gateway usage. Memory had to be installed before putting the system board back to the chassis, so I did it:
Next I screwed up a bit. I had ordered a full-size mini-PCIe mSATA drive which I installed:
Too bad the BIOS went crazy at this point and didn’t show me the drive as installed:
At this point I contacted the Lanner support. They pointed out that I had installed the mSATA drive to wrong socket. Obviously I was going to need a half-size mini-PCIe form factor mSATA drive, so I ordered one from Ebay. The drive brand was quite uncommon Zheino. Here is the drive package:
The actual drive was much smaller, as expected:
I installed the drive in the correct socket:
Aaand finally I was able to see the drive listed in BIOS and nothing was broken!
From here I proceeded into installing a recent Debian Linux. Here I noticed, that the unit is a bit picky about the HDMI cable length or quality as I couldn’t see the unit display picture at all times of bootup. With shorter cable I had no problems, however. It should be noted also that after plugging the power cable in, the unit seems to be needing 2 power button presses to get it to boot. Subsequent presses are needed only once per operation as long as the cable remains in place.
After installing Debian I wanted to make some performance tests. First I drew some traffix between the ethernet ports. I stopped at 8.3 Terabytes with the system running still completely smoothly:
Next thing was to do some simple download tests. I proceeded to download one gigabyte file many times in succession as the system sat as a gateway between. The speeds were constant 109 MB/s. Theoretical maximum in the best laboratory conditions would be 125 MB/s, so I consider the unit operating in near optimal capacity.
Next I tested the advertised AES-NI encryption acceleration instructions. For testing I first disabled the AES-NI capability from OpenSSL to get a baseline. Then I re-enabled the instructions to get results for encryption acceleration. It could be observed that with AES-NI the speed-up was tenfold! This means that the special instructions were indeed working 🙂
Here is the cpuinfo printing of the first processor:
root@gw:~# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 55 model name : Intel(R) Atom(TM) CPU E3825 @ 1.33GHz stepping : 9 microcode : 0x901 cpu MHz : 533.200 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu 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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms bogomips : 2664.00 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
And here is the lspci listing for the unit:
root@gw:~# lspci 00:00.0 Host bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register (rev 11) 00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 11) 00:13.0 SATA controller: Intel Corporation Device 0f23 (rev 11) 00:14.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB xHCI (rev 11) 00:1a.0 Encryption controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine (rev 11) 00:1b.0 Audio device: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller (rev 11) 00:1c.0 PCI bridge: Intel Corporation Device 0f48 (rev 11) 00:1c.1 PCI bridge: Intel Corporation Device 0f4a (rev 11) 00:1c.2 PCI bridge: Intel Corporation Device 0f4c (rev 11) 00:1c.3 PCI bridge: Intel Corporation Device 0f4e (rev 11) 00:1f.0 ISA bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit (rev 11) 00:1f.3 SMBus: Intel Corporation Device 0f12 (rev 11) 02:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) 03:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) 04:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
After initial release of this article I also conducted some power measurements. I first made an outright dangerous measurement cabling in my lab to measure DC currents:
Then I measured the polarity, adjusted cables and installed DMMs:
When unit is not powered up, it draws 0.0197 amps at 12.018 volts, resulting in about 0,24 watts:
Powered up and CPU idle the unit draws 0.3104 amps @ 11.907 volts, resulting in about 3,70 watts:
Powered up and CPU at 100% the unit draws a bit more: 0.3941 amps in average at 11.879 volts resulting in about 4.68 watts. Amperage can fluctuate in range of about 0.35 A – 0.46 A. This fluctuation may happen in under 500 ms.
Then I proceeded to measure AC. For readers; please, don’t do AC measurements until you really know what you are doing. Always have a friend to back you up. At least with this kind of stupid AC measurement setup with open ends:
While unit is off, the transformers draws 0.0201 amps at 233.32 VAC from power grid resulting in about 4.69 watts:
While unit is on, but CPU idle it draws on average 0.0550 amps at 233.14 VAC, resulting in about 12.8 watts:
And finally the power draw with maximum CPU usage was on average 0.0652 amps at 233.39 VAC, meaning about 15.2 watts. There was also some fluctuation with the amperage.
It is a funny comparison between AC and DC power draws. With DC mean value on maxed CPU was 4,68 watts. For AC it was 15.2 watts, so the conversion rate possibly lets something to be desired. I cannot say this for sure of course, as I don’t know that much about low-voltage transformers, but with industry-grade stuff the conversion rate is usually easily over 0.85 .
The Lanner NCA-1010B is a great purchase for gigabit LAN gateway appliance in case you want to ditch those malfunctioning Realtek NICs and invest in quality Intel stuff.
Lanner Inc. can be reached from their website at http://www.lannerinc.com/ . I have to give a big hats off to their extremely friendly customer service for helping me out in a couple of times when I was figuring the unit out.
In case you are in Finland the local dealer for Lanner products is Valvova Oy. They can be reached via their website at http://www.valvova.fi/ . I was able to get my unit through them for 315 EUR (taxes included) + 20 EUR, but of course current prices are subject to changes.