Another look at the Partaker B5

Having previously tried out pfSense 2.2.6 on the Inctel Partaker B5 with rather poor results, I thought I’d see if there’s any improvement when using pfSense 2.3 nightly (20160307-0922).

The first thing you’ll notice when upgrading to pfSense 2.3 is the new, beautiful GUI.

fw.int.albatorsk.com-Status-Dashboard

Apart from that, other changes include the underlying OS being updated from FreeBSD 10.1 to 10.3-PRERELEASE, with all that that entails.

Realtek gigabit network adapters has historically had some problems under FreeBSD, so I’m going to run a few benchmarks and see what, if anything, has changed.

Starting with iperf, the first test I ran was using the Partaker B5 running pfSense as the client, and my home server with a NetXen NX3031 NIC as the server.

[2.3-BETA][root@fw]/usr/local/bin: ./iperf -i 1 -n 1024M -c server
------------------------------------------------------------
Client connecting to server, TCP port 5001
TCP window size: 65.0 KByte (default)
------------------------------------------------------------
[  3] local 10.11.12.250 port 54867 connected with 10.11.12.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  69.6 MBytes   584 Mbits/sec
[  3]  1.0- 2.0 sec  68.0 MBytes   570 Mbits/sec
[  3]  2.0- 3.0 sec  67.9 MBytes   569 Mbits/sec
[  3]  3.0- 4.0 sec  68.0 MBytes   570 Mbits/sec
[  3]  4.0- 5.0 sec  67.9 MBytes   569 Mbits/sec
[  3]  5.0- 6.0 sec  67.9 MBytes   569 Mbits/sec
[  3]  6.0- 7.0 sec  67.9 MBytes   569 Mbits/sec
[  3]  7.0- 8.0 sec  67.6 MBytes   567 Mbits/sec
[  3]  8.0- 9.0 sec  67.9 MBytes   569 Mbits/sec
[  3]  9.0-10.0 sec  68.1 MBytes   571 Mbits/sec
[  3] 10.0-11.0 sec  67.6 MBytes   567 Mbits/sec
[  3] 11.0-12.0 sec  68.0 MBytes   570 Mbits/sec
[  3] 12.0-13.0 sec  67.8 MBytes   568 Mbits/sec
[  3] 13.0-14.0 sec  67.9 MBytes   569 Mbits/sec
[  3] 14.0-15.0 sec  67.9 MBytes   569 Mbits/sec
[  3]  0.0-15.1 sec  1.00 GBytes   570 Mbits/sec

570 Mbps is ok, but nothing to write home about. The same hardware gets about 940 Mbps running Linux. Although a definite improvement from pfSense 2.2, it’s still pretty underwhelming.

However, what’s really interesting is the throughput. So, I hooked up one computer directly to the LAN port, and one directly to the WAN port. I started by using the computer on the LAN port as the server, with the one on the WAN port as the client.

$ iperf -i 1 -n 1024M -c 10.11.12.2 
------------------------------------------------------------
Client connecting to 10.11.12.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 10.11.100.2 port 46278 connected with 10.11.12.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   106 MBytes   890 Mbits/sec
[  3]  1.0- 2.0 sec   104 MBytes   872 Mbits/sec
[  3]  2.0- 3.0 sec   104 MBytes   871 Mbits/sec
[  3]  3.0- 4.0 sec   102 MBytes   860 Mbits/sec
[  3]  4.0- 5.0 sec   104 MBytes   872 Mbits/sec
[  3]  5.0- 6.0 sec   104 MBytes   872 Mbits/sec
[  3]  6.0- 7.0 sec   102 MBytes   860 Mbits/sec
[  3]  7.0- 8.0 sec   104 MBytes   872 Mbits/sec
[  3]  8.0- 9.0 sec   103 MBytes   863 Mbits/sec
[  3]  0.0- 9.9 sec  1.00 GBytes   870 Mbits/sec

870 Mbps; now we’re talking. Ok, and now, turning the computer on the WAN port into the server, with the one on the LAN port as the client.

$ iperf -n 1024M -i 1 -c 10.11.100.2
------------------------------------------------------------
Client connecting to 10.11.100.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 10.11.12.2 port 44610 connected with 10.11.100.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   110 MBytes   924 Mbits/sec
[  3]  1.0- 2.0 sec   106 MBytes   888 Mbits/sec
[  3]  2.0- 3.0 sec   108 MBytes   902 Mbits/sec
[  3]  3.0- 4.0 sec   106 MBytes   891 Mbits/sec
[  3]  4.0- 5.0 sec   106 MBytes   893 Mbits/sec
[  3]  5.0- 6.0 sec   106 MBytes   890 Mbits/sec
[  3]  6.0- 7.0 sec   106 MBytes   892 Mbits/sec
[  3]  7.0- 8.0 sec   108 MBytes   903 Mbits/sec
[  3]  8.0- 9.0 sec   106 MBytes   890 Mbits/sec
[  3]  0.0- 9.6 sec  1.00 GBytes   897 Mbits/sec

897 Mbps. All else aside, there’s been a massive improvement when using Realtek network adapters (or I did something catastrophically wrong when trying out pfSense 2.2).

If you don’t absolutely need that last, “missing” 100 Mbps, and don’t mind running a nightly snapshot of pfSense, the Partaker B5 can definitely hold its own against much more expensive hardware.

A look at the Inctel Partaker B5

So, I recently took the plunge and did something I’d promised myself I would not do again. I purchased something semi-expensive from China.

The last time I did that was in 2013. I got a Freelander PD800 Android tablet. The specifications looked great; Quad core 1.6 GHz CPU, Mali 400 GPU, 2 GB RAM, and best of all, a whopping 2048×1536 HD screen. All this for just $206! Sounds too good to be true? Well, those parts were actually in the tablet, assembled and somewhat fit for use. However, the tablet was upside down. “What? How can a tablet be upside down?” I hear you say. “Why not just turn it around?” Well, it defaulted to the upside down position. So, when using apps that did not rotate, pressing the volume up button would lower the volume, and vice versa. Come to think of it, looking at the pictures on the site where I bought it, it’s being displayed upside down, with the volume and power buttons in the bottom right corner. Also, it randomly freezes and is generally too slow to use with any modern app. It’s little things like that, that make me wary of ordering directly from China. I just don’t want the potential hassle of returning crappy products.

I’ve long been on the lookout for a cheap mini-PC with dual gigabit LAN ports. A cool and quiet computer suitable for use as a home router and firewall. About a year ago I got myself a CompuLab Utilite Standard. It seemed like a perfect fit. Freescale i.MX6 dual core Cortex-A9 CPU, 2GB RAM, 2 gigabit LAN interfaces, built-in 802.11b/g/n wifi, and even a bluetooth module. They even display the IPFire project logo under the list of Utilite Software, implicitly saying “Hey, this could be a nice firewall solution.” However, that turned out to be baloney, with one of the LAN ports capping out at about 450Mbps, and the other one stalling once every 10 minutes. It’s now a year later, and there’s still no fix in sight, and CompuLab development seems to have moved on to Utilite2. The announced Ubuntu 14.04 Utilite port never materialised.

Enter the Inctel Partaker B5. For less than US$200 including shipping, I got the following:

CPU modelIntel Celeron N3150 (Braswell)
Number of cores4
Frequency1.6 GHz (burst up to 2.1 GHz)
AES-NIYes
VirtualizationVT-x, VT-x EPT
RAM2 GB DDR3L
Storage16 GB mSATA SSD
Network (wired)Dual Realtek RTL8168 gigabit NIC
Network (wireless)Ralink RT3090 802.11n (2.4 GHz only)
USB 2.02 ports
USB 3.04 ports
TDP7 W
Dimensions160 x 120 x 37 mm

What’s especially important to me is that it’s passively cooled. No fan, no noise. And using just 7 W, even under heavy load it never gets more than lukewarm.

So, what was in the box?

contents-of-the-box

The actual Partaker B5, one power adapter with matching power cord, one stand and two antennas. The hole in the box was punched by one of the antenna connectors on the B5, because it just barely fit in there. China.

Now, one of the first things I noticed when I was about to hook up my keyboard, was that the USB connectors were upside down. All my worst fears came back to me. “Oh no, not again.” What does it mean that the USB connectors are upside down? Well, it just means that if you have for example USB thumb drives with lights on them that flash when they’re working, you may not see it because they’ll be facing down instead of up. A minor annoyance, but no big deal. Also, it doesn’t matter if you use the stand. On the front you’ll find the power button, a power indicator, four USB 3.0 connectors and two USB 2.0 connectors.

front

However, the rear is where the fun begins…

rear

Here you will find two antenna connectors, one audio line out, one mic in, two gigabit network interfaces, two HDMI outputs and one power connector.

inside

On the inside, there’s an SO-DIMM DDR3 memory slot (1.35V only), an mSATA slot and a mini PCIe slot. There’s also a regular SATA connector, and what I believe to be a power connector for a SATA drive right next to it. You can also see unpopulated headers for two serial ports and a buzzer, although I have no idea if they actually go anywhere.

Before dooming it to a life of routing packets back and forth and stopping the odd one, I wanted to try it out with Kodi and OpenELEC. I have no idea what to expect from a Braswell Celeron, and considering the B5 is completely silent, it could make a great HTPC.

My highly unscientific experiment reveals that of course, regular H.264 (AVC) at 1080p was no problem at all, barely using the CPU, offloading all decoding to the built-in GPU.

1080p-h264

However, moving on to H.265 (HEVC) at 1080p turned out to be somewhat of a problem. While it could handle it just fine, there was no hardware accelerated decoding. Looking at the datasheet (PDF) for the Celeron N, it seems like there’s some support for it (see table 8-4), but not in the Linux driver. I don’t know if that’s just when it launched, or if maybe there’s a licensing issue making it impossible to support legally.

1080p-h265

Seeing as it has to use the CPU to decode H.265, I didn’t even bother trying a 4K video.

With that out-of-the-way, the next thing I did was to install pfSense. This is my “go to” free firewall distribution, but reading their forums, people are warned over and over to stay far, far away from Realtek network controllers. After trying pfSense on the B5, I can understand why.

During installation of version 2.2.6, there was noticeable graphics corruption on the console. Lines like these kept popping back and forth on different parts of the screen.

pfsense-console

Since you’re not going to be using the local console on pfSense for much, it doesn’t really matter, but it’s noticeable enough to be annoying.

Once installed and configured with a very light configuration, I could never get more than 375 Mbps in throughput, with about 40% CPU usage. I was ready to be severely disappointed, thinking that I had, but really hoping that I hadn’t, bought another “Utilite”. The iperf results were abysmal; they were all over the place, from 0 Mbps, up to, but never above, 650 Mbps when running the iperf server or client on the B5. Ouch.

Oh well. Good bye pfSense, hello Ubuntu. I had been using a Debian box as a firewall for years and years before switching to pfSense, so I thought why not give Linux another try?

I’m glad I did.

$ iperf -n 1024M -i 1 -c partaker
------------------------------------------------------------
Client connecting to partaker, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 10.11.12.1 port 56498 connected with 10.11.12.249 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 112 MBytes 940 Mbits/sec
[ 3] 1.0- 2.0 sec 112 MBytes 941 Mbits/sec
[ 3] 2.0- 3.0 sec 112 MBytes 943 Mbits/sec
[ 3] 3.0- 4.0 sec 112 MBytes 936 Mbits/sec
[ 3] 4.0- 5.0 sec 112 MBytes 942 Mbits/sec
[ 3] 5.0- 6.0 sec 112 MBytes 941 Mbits/sec
[ 3] 6.0- 7.0 sec 112 MBytes 942 Mbits/sec
[ 3] 7.0- 8.0 sec 112 MBytes 942 Mbits/sec
[ 3] 8.0- 9.0 sec 112 MBytes 942 Mbits/sec
[ 3] 0.0- 9.1 sec 1.00 GBytes 941 Mbits/sec

I ran iperf several times, both with the server on the B5, and with the B5 as the client, connecting to another server. I ran it between two different clients, routed through the B5. Never once did it go below 900 Mbps, and the CPU usage was barely noticeable.

Once netfilter was set up with iptables, I had my firewall, and I just had to run the popular Swedish throughput test Bredbandskollen. I have a EuroDOCSIS internet connection with 500 Mbps down and 50 Mbps up, so anything close to that, and I’m happy.

BBK_Resultat_2016.02.24_17.27.54

I’m happy.

EDIT: Read on for my new test with pfSense 2.3