iKOOLCORE R2 (Core i3-N300) system review – Part2: Proxmox VE, Ubuntu 22.04, pfSense

In the first part of iKOOLCORE R2 mini PC & router review, I had a look at the hardware with an unboxing and a teardown of the Intel Core i3-N300 Alder Lake-N computer and also noticed the device booted to a UEFI shell. So for the second part of the review, I will report my experience installing Proxmox VE on the iKOOLCORE R2 and setting up and using Ubuntu 22.04, pfSense 2.7.2, and OpenWrt 23.05 virtual machines, making sure I can still use a physical display, keyboard, and mouse with Ubuntu while pfSense firewall is running.

As a side note, the previous generation iKOOLCORE R1 mini PC that was sent to Ian for review with Proxmox VE and various virtual machines preinstalled OpenWrt, Debian 11, and Windows 10 Enterprise LTSC set to Chinese language by default. As I understand it, iKOOLCORE still does that for the Chinese market, but not for the overseas markets potentially because they don’t want to handle two versions and potential customs issues.  This review will be a bit different than other mini PCs, as I’ll mostly report my experience of using the iKOOLCORE R2 with Proxmox VE and the steps I had to follow to make everything work the way I wanted with Ubuntu 22.04 and pfSense OS running simultaneously.

Installing Proxmox VE on iKOOLCORE R2

The first step is to download ProxmoxVE ISO and I selected Proxmox VE 8.1 ISO Installer (updated on November 23, 2023).

The Startup Disk Creator is Ubuntu 22.04 did not seem to like the Proxmox ISO file, so I went with dd instead as per the official instructions to flash the ISO to a USB flash drive:


Since the mini PC only comes with two USB Type-A ports, and I need two RF dongles, one for the mouse, and one for the keyboard, I had to use a USB hub to connect the USB flash drive, but the installation went smoothly.
iKOOLCORE R2 Proxmox review
I went to the “Install Proxmox VE (graphical)” option in the installation menu, followed the instructions, and soon enough the installation was complete, and upon reboot, I was presented with a GRUB menu showing Proxmox VE GNU/Linux.
Grub Proxmox VE
The boot ends with a text login prompt on the HDMI display telling us to configure the server in a web browser at the address https//:<ip_address>:8006.

Welcome to Proxmox Virtual Environment

The login requires root user and the password is the one provided during the Proxmox VE installation.

Proxmox VE Login

Note some of the screenshots will use 192.168.31.6 and others 192.168.31.249 as the second time I installed Proxmox VE, I changed the static IP address to something not covered by the DHCP server range from my router…

Proxmox VE dashboard and configuration

The Proxmox Virtual Environment dashboard shows the iKOOLCORE-R2-CNX node and storage volumes, some buttons to create a VM (Virtual Machine) or CT (Container), and a Tasks section at the bottom showing all main events.

iKOOLCORE R2 Proxmox VE

Before going further we might want to have a look at the Wiki that tells us to install a script in order to enable hardware passthrough on the iKOOLCORE R2 and display system information in the Proxmox VE dashboard:


I did the above in an SSH terminal, but you could also do so in the _Shell section directly in the Proxmox VE dashboard. Nevertheless, I could access system information in the Summary tab in the dashboard.

iKOOLCORE R2 Proxmox VE stats

Installing Ubuntu 22.04 desktop, pfSense 2.7.1, and OpenWrt 23.05

We are now ready to install the operating we need for this review. So I loaded Ubuntu 22.04 (upload from local machine) and pfSense (downloaded from URL) to Promox VE in the local->ISO image section of the dashboard.

Proxmox ISO images

We’ll also install OpenWrt 23.05, but it’s more complicated, and some people will just tell users to simply install pfSense and skip OpenWrt on this type of hardware.

I’ve already documented the method to install Ubuntu 22.04 in Proxmox VE with hardware passthrough on Alder Lake-N hardware in order to have access to the physical interfaces such as HDMI and USB-C (DisplayPort) video output and connect a wireless keyboard and mouse to the device. The Ubuntu 22.04 VM was configured to use eight cores, 128GB storage and 4GB RAM out of the 8GB RAM in my iKOOLCORE R2 mini PC

I then repeated the same procedure for pfSense 2.7.2 (minus the hardware passthrough steps) with two cores, 2GB RAM, and 32GB storage, and also installed OpenWrt 23.05.2 following the instructions linked above, except I used the openwrt.tar.gz file from https://downloads.openwrt.org/releases/23.05.2/targets/x86/64/ insteadL


At this point, I had three OS running in Proxmox VE:

  • Ubuntu 22.04 (ID 100)
  • pfSense 2.7.1 (ID 101) – yet to be configured
  • OpenWrt 23.05 (ID 102) – which we won’t use in this review…

iKOOLCORE R2 Proxmox VE Ubuntu pfSense OpenWrt

The first time I installed Ubuntu 22.04 without hardware passthrough and desktop would show on the Proxmox VE dashboard.Proxmox VE Ubuntu 22.04 Intel Core i3-N300 mini PC

But once I enabled hardware passthrough for specific PCIe and USB ports as explained in our how-to, the Ubuntu desktop shows on the display connected to the iKOOLCORE R2 either via HDMI or USB-C port.

Intel Core i3-N300 Alder Lake-N Ubuntu 22.04 Promox VE passthrough

The goal: using iKOOLCORE R2 as a mini PC and a firewall

At this point, we haven’t talked about using the four 2.5GbE RJ45 ports on the iKOOLCORE R2 just yet, and my goal is to use pfSense as a firewall with two Ethernet ports, have the Ubuntu VM behind the firewall while using it as a mini PC with a single 2.5GbE port, and the last RJ45 port will be used to access Proxmox VE interface even if pfSense is shut down.

I’ll be mostly following the pfSense setup instructions from Zenarmor in this section and creating Linux bridges for the three Ethernet ports that are not used yet by going to iKOOLCORE-R2-CNX and System->Network, and clicking on Create->Linux bridge.

vmbr1 Linux Bridge pfSense

The name is automatically generated, but we need to enter the IPv4/CIDR and bridge ports. So I ended up with four Linux bridges as follows:

  1. vmbr0 – enp4s0 (Intel i226) with IP address: 192.168.31.249 for Proxmox VE
  2. vmbr1 – enp3s0 (Intel i226) with IP address: 192.168.31.250 for pfSense WAN
  3. vmbr2 – enp1s0 (Intel i226) with IP address: 192.168.33.1 for pfSense LAN
  4. vmbr3 – enx009027f41845 (RealTek RTL8156BG) with IP address: 192.168.33.201 for Ubuntu LAN

Proxmox VE Network iKOOLCORE R2

One important note is that the IPv4/CIDR field is only used by the Proxmox VE and not the guest OS. I failed to understand that at the beginning and set 192.168.31.1 for the LAN port of both pfSense and Proxmox VE and it created conflicts making the system not work properly. For the same reason, none of the IP addresses there should be in the DHCP range of any of the DHCP servers used.

I have configured all those ports, but I don’t actually know where they are yet on the iKOOLCORE R2, so I used the command line to properly map each Ethernet port to the correct device/bridge by plugging a cable to each port in turn:


We can check the UP and DOWN state to find out which device/bridge corresponds to a specific RJ45 jack on the mini PC. For example, enp4s0 (vmbr0) is the middle RJ45 jack in the top row.  I can now write my network and connect everything with the final result looking like that:

iKOOLCORE R2 Promox VE Ubuntu pfSense network topology

Proxmox VE and the pfSense WAN ports are connected directly to the modem router from the ISP, the pfSense LAN port creates a new 192.168.33.0 subnet to switch I connected the Ubuntu VM RJ45 port and a laptop through a TP-Link network switch. There’s also a CCTV camera not shown there. If you wanted WiFi devices behind the firewall you’d also install an access point/router in the 192.168.33.0 subnet.

pfSense configuration

We can now to the console for the pfSense VM to complete the configuration. We’ll skip VLAN configuration, and assign vtnet0 to WAN and vtnet1 to LAN in the configuration wizard.

pfSense configuration

After a little while we’ll reach the pfSense configuration menu as shown below. (I had not connected the WAN port correctly at the time, as otherwise the WAN IP address would show)

pfSense configuration menu

We can now select option 2 to configure the LAN interface using 192.168.33.1 IP address with a 24 CIDR, and no IPv6 address.

pfSense LAN configuration

We’ll also want to enable the DHCP server and allow DHCP clients in the 192.168.33.2 to 192.168.33.200 range, and keep using HTTPS for the webConfigurator.

pfSense LAN DHCP server

Once done we should see both the WAN and LAN IP address configured as below and we can update pfSense from the console by typing 13.

pfSense Update from Console

Time to go to the pfSense webConfiguration with the provided address and log in with the default admin username and pfsense password.

pfSense dashboard login

We’ll now enter the setup wizard. The dashboard complains about the admin account password, but do not change it right now, as it’s one of the steps of the setup wizard.

pfSense dashboard pfsense setup wizardNow click on Next until we get to the general information window where we can set the Hostname (e.g. R2-CNX-pfSense).

pfSense Setup General Information

The next step configures the time server and I manually set the timezone to Asia/Bangkok.

pfSense Time server

The next screens are for WAN and LAN configuration (I used the default settings), change admin password, reload configuration, and a final screen congratulating you for the completion of the setup wizard.

pfSense Setup Wizard Completed

Both my laptop and Ubuntu VM in Proxmox got an IP address in the 192.168.33.0 subnet, I can browse the web without issue, and both systems should be protected behind the firewall. I also quickly tested the CCTV camera connected through the firewall and I can still access the stream with the Reolink app.

pfSense Dashboard Promox VE Core i3 N300 CPU

Networking performance testing

I’m supposed to have 300 Mbps broadband internet, which I tested with Speedtest on my Ubuntu laptop behind the firewall.

iKOOLCORE R2 pfSense Internet SpeedTest

All good that means nothing bad happened…

I also added a new host to the 192.168.33.0 subnet, namely UP Xtreme i11 edge mini PC (192.168.33.18) to independently test the Intel and Realtek networking interfaces on the iKOOLCORE R2.

Let’s start with the RealTek 2.5GbE USB chip in the Ubuntu VM:

  • Upload

  • Download

  • Full-duplex (bidirectional)


Excellent, even though the speed dropped to around 2.18 Gbps in one direction in full-duplex mode.

Let’s now switch to one of the Intel i226V interfaces (Proxmox VE via 192.168.33.249 – vmbr2 – enp1s0):

  • Upload

  • Download

  • Full-duplex


Perfect. Both the RealTek and Intel interfaces are working well, but the Intel i226V controller works slightly better in full-duplex mode.

Ubuntu 22.04  benchmarks and features testing in Proxmox VE

The networking part is done with pfSense firewall and up running, and the 2.5GbE interfaces of the iKOOLCORE R2 are shown to perform up to our expectations. I will now check whether Ubuntu 22.04 works as well in Promox VE as natively by both running benchmarks and testing some features.

Let’s start by running SBC Bench script from Thomas Kaiser:


Since we are in a virtual machine, the temperature and CPU frequency testing does not seem to work with sbc-bench.sh. Due to time constraints, I won’t try to reproduce the results in a native Ubuntu installation, we can use the results from the Weibu N10 (Core i3-N305) mini PC review for reference.

[Update: Since Proxmox VE is Debian-based we can run sbc-bench.sh natively as well. I did it while the Ubuntu 22.04 and pfSense VM were running (and mostly idling) for a direct comparison with the results above


The full test results can be found on pastebin.com. The native results are only very slightly higher than in the Ubuntu VM as expected]

iKOOLCORE R2 got 22,450 points in 7-zip on average, while the Weibu N10 reached up to 20,000 points, and the AES-256 results are 1371755.86k vs 1377211.73k. The results are in the same ballpark, so if there’s any impact on performance due to running Ubuntu 22.04 in Proxmox VE it does not show in sbc-bench.sh…

But that’s still a headless test, so let’s run Unigine Heaven Benchmark 4.0 to test the GPU at 1920×1080 resolution.

IKOOLCORE R2 Unigine Heaven Benchmark 4.0

It worked fine, and the performance looks OK considering the Weibu N10 achieved 17.9 fps and a score of 451 points in the same test.

I’ve already tested USB ports with the RF dongles, and HDMI and USB-C video output by connecting the CrowView laptop monitor to either. But I haven’t tried to connect two displays just yet. Let’s do that by adding the 10-inch RPI “All-in-One” display.

iKOOLCORE R2 Ubuntu Promox VE dual display

It works! Here’s the screenshot of the two displays for reference.

Ubuntu 22.04 Proxmox VE dual display iKOOLCORE R2

I then played a YouTube 4Kp60 video in Firefox that looked smooth, but there were a few frames dropped (770 out of 11,618).

Ubuntu 22.04 Proxmox VE YouTube 4Kp60

There was no audio through HDMI though, and when I looked at the audio settings I could only see a digital output (S/PDIF) audio device with the volume varying while playing the video. It’s probably outputting to the USB-C audio port, but I have no idea how to use it as there’s no information about it in the Wiki.

iKOOLCORE R2 Audio devices Proxmox VE

It’s probably possible to enable HDMI audio by adding one or more raw PCIe devices to the Proxmox VE configuration, but again it’s not clear which one to select…

Here’s a final storage benchmark to evaluate the SSD performance:


That would be a 1.58 GB/s sequential read speed and 1.38GB/s sequential write speed in the Ubuntu VM.

Power consumption

The iKOOLCORE R2 will consume more power than your usual Alder Lake-N mini PC since you may have four 2.5GbE connections. I measured the power consumption with a wall power meter with the mini PC having all four 2.5GbE active, two RF dongles for the keyboard and mouse, and a display connected via HDMI with its own power supply:

  • Power Off – 2.2W (after issuing shutdown in Proxmox VE)
  • Idle – 13.4 to 14.1 Watts
  • YouTube Video  (4Kp60 in Firefox) –  31.2 to 35.2 Watts
  • Stress test (stress -c 8) – 30.0 to 31.3 Watts

Conclusion

Reviewing the iKOOLCORE R2 was an interesting and challenging experience, as I did not have any experience with Proxmox VE and pfSense, and the learning curve was such that I estimate having spent over 25 hours on this three-part review.

The Intel Core i3-N300 device can be used simultaneously as a mini PC running Ubuntu 22.04 (or Windows 11, or other desktop OSes) and a firewall or network appliance with an OS such as pfSense. Once configured correctly the little dual-use device works great, and I found 2.5GbE networking to work great, and most Ubuntu 22.04 Desktop features work great through Proxmox VE, with no obvious impact on performance, except for audio where I was unable to make HDMI audio work, and it’s unclear how we are supposed to use the USB-C audio port.

I’d like to thank iKOOLCORE for sending the R2 mini PC / router for review in a configuration with an Intel Core i3-N300 octa-core processor, 8GB RAM, and a 512GB NVMe SSD. The iKOOLCORE R2 model reviewed here can be purchased for $389 on the iKOOLCORE store, and you should be able to use the CNXSOFT coupon to lower the price by 5%. Pricing currently starts at $239 for the N95 model with 8GB RAM and no storage.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
4 Comments
oldest
newest
tkaiser
tkaiser
4 months ago

> the temperature and CPU frequency testing does not seem to work with sbc-bench.sh

Neither cpufreq scaling nor thermal sensors are available in a VM. But you could run sbc-bench also directly in the hypervisor installation since Proxmox is plain Debian under the hood (and results won’t differ between a recent Ubuntu und Debian install due to chosen benchmark tools)

Santosh
Santosh
1 month ago

Hi thanks for the amazing guide. I have a few questions about connecting to Proxmox. Currently I have my iKoolCore unit running Proxmox connected to my TpLink router so I can access it through the browser. But once I move the iKoolCore to be directly connected to my modem (which is on bridge mode). How do I connect to Proxmox through the web again since I won’t be on that subnet anymore?

Khadas VIM4 SBC