Virtualizing PFSense With The Seeed Studio Odyssey

# Article: Transforming the Odyssey Board into a Router and Home Server Using Proxmox and pfSense

## Introduction to the Odyssey Board

In today's video, we are exploring the potential of a small yet powerful device known as the **Odyssey** from Seed Studio. This single-board computer (SBC) is not new to the market but continues to impress with its capabilities. Designed in Singapore, the Odyssey features an Intel J4125 quad-core CPU clocked at 2 GHz, paired with 8 GB of LPDDR4 memory. It boasts a wide array of I/O options, including dual gigabit Ethernet ports, onboard Bluetooth and Wi-Fi, two M.2 slots, a SATA port, a USB-C 3.1 port, HDMI, and even Raspberry Pi-compatible GPIO pins along with an integrated ARM co-processor for Arduino compatibility.

The version reviewed comes with a 128 GB m.2 SATA SSD and Seed Studio's Re or RE computer case—a sleek aluminum enclosure with an acrylic top cover. This setup makes the Odyssey a versatile Workhorse capable of handling multiple tasks, which is both its strength and limitation since it can sometimes feel underutilized due to its wide range of features.

## Hardware Overview and Performance

The Odyssey is marketed as a Mini PC option and comes pre-installed with Windows 10. Initial testing showed decent performance for basic tasks, including smooth handling of 1080p 60fps YouTube playback with minimal frame drops. In cinebench R15, it achieved a three-run average of 166, which is impressive when compared to older CPUs like the Intel J2900 and AMD A65200. Despite its modest power consumption of about 16.5 watts under load, the J4125 CPU offers better performance than these predecessors.

## Initial Thoughts on Using pfSense

While the Odyssey performs well with Windows, this video explores alternative uses beyond running a traditional operating system. The focus is on setting up the device as a router using **pfSense**, an open-source firewall and router solution known for its web-based management interface and enterprise-grade features.

The user acknowledges that installing pfSense on the Odyssey is straightforward, thanks to Seed Studio's provided guide. However, they express some reservations about this approach. The device costs $270 and only offers two gigabit Ethernet ports, which limits its functionality as a router. They suggest alternatives, such as using a used small-form-factor (SFF) PC with an added Ethernet PCIe card or opting for a dedicated Netgate device that includes a third Ethernet interface.

## Alternative Options for a Router Setup

The discussion then shifts to the idea of repurposing the Odyssey beyond just running pfSense. The goal is to leverage its quad-core CPU, 8 GB RAM, and storage options to host additional services like Home Assistant, a NAS (Network-Attached Storage), or a WireGuard server. This approach aims to maximize the device's potential while addressing its limitations as a standalone router.

## The Decision to Use Proxmox with pfSense and Debian VMs

To achieve this multi-service setup, the user decides to install **Proxmox**, a popular open-source hypervisor, on the Odyssey. With Proxmox, they plan to run two virtual machines (VMs): one for pfSense as the router and another for Debian Linux, which will host Docker containers for services like Home Assistant.

The user emphasizes that this process is not without challenges. Running a router in a VM can be unstable, with issues like loss of internet access during reboots or updates. Additionally, having only two Ethernet ports limits flexibility when assigning network interfaces to VMs.

## Detailed Setup Process (Proxmox Installation, Network Configuration, pfSense VM Setup)

1. **Proxmox Installation:**

- The user starts by downloading the latest Proxmox VE ISO and installing it on a USB drive.

- Booting from this drive initiates an easy-to-follow installation process. After completing the setup, Proxmox boots up, displaying the web UI address.

- Navigating to the UI reveals the active node (the Odyssey), with network settings showing the two physical NICs and a Linux Bridge.

2. **Network Configuration:**

- To free up the onboard NICs for pfSense, the user plugs in a USB network adapter for Proxmox control and the Debian VM.

- They disable the default network device in the pfSense VM settings to ensure it uses only the physical NICs passed through via PCIe passthrough.

3. **Enabling IOMMU:**

- Before adding PCIe devices, IOMMU (Input/Output Memory Management Unit) must be enabled. This involves enabling virtualization and VTD (Virtualization Technology for Directed I/O) in the BIOS.

- After rebooting, the user verifies that IOMMU is functioning properly.

4. **pfSense VM Setup:**

- The latest pfSense ISO is downloaded and uploaded to Proxmox's local storage.

- A new VM is created with two CPU cores, 3 GB of RAM, and the pfSense ISO attached as the boot device.

- Under hardware settings, the two PCIe NICs are added to the VM.

5. **pfSense Installation:**

- Upon starting the VM, the pfSense installation process begins. After setup, the user assigns LAN and WAN interfaces, configures a subnet (192.168.100.1/24), and enables DHCP.

- Testing shows successful internet access for devices connected to the LAN port.

## Setting Up the Second Virtual Machine (Debian for Docker Containers)

The second VM is set up using a Debian ISO, configured with four virtual CPU cores and 3 GB of RAM. After installation, Docker and Portainer are installed to manage containers. Home Assistant is then deployed using a Linux server.io image.

Testing confirms that the setup works as expected, with the router providing internet access to devices on the LAN network.

## Conclusion and Future Plans

The user concludes that while the current setup works, there are areas for improvement. They plan to revisit the project to add more network interfaces, eliminate the USB adapter, and replace their existing router once satisfied with the new configuration.

They express enthusiasm about exploring Proxmox virtualization further and highlight the potential of the Odyssey board when utilized effectively. The user thanks Seed Studio for providing the device and encourages viewers to explore their products.

## Final Thoughts

This article provides a detailed walkthrough of transforming the Odyssey into a functional router and home server using Proxmox and pfSense. While challenges exist, such as network configuration complexities and potential VM instability, the setup offers a cost-effective and powerful solution for those willing to experiment with virtualization and open-source software.

"WEBVTTKind: captionsLanguage: enin today's video we're going to take this little computer and turn it into a router and a little Home Server all in this little tiny box that's pretty cool stick around if you've been around the single board computer iot or mini computer space for a bit you've probably seen this board as it's definitely not new The Odyssey from Seed Studio is an impressive little Singapore computer featuring an Intel j4125 quad-core CPU clocked at two gigahertz it comes with eight gigabytes of LP ddr4 memory as well as a vast array of other features and I O including dual gigabit Nix onboard Bluetooth and Wi-Fi two m.2 slots a SATA port a USBC 3.1 port HDMI and more oh and did I mention that it has Raspberry Pi compatible gpio as well as an integrated arm co-processor and headers for using Arduino the version I have here came with a 128 gigabyte m.2 SATA SSD and Seed Studios re or re computer case which is a pretty cool little aluminum case that has an acrylic top cover foreign this little board is quite a Workhorse and can really do so so many things which in a way is the best and worst thing about this PC but more on that later the Odyssey comes pre-installed with Windows 10 and is marketed as a Mini PC option so I tested out windows just a little bit and it performed pretty well for basic tasks and handled 1080p 60 YouTube playback with only a few dropped frames here and there in cinebench R15 it scored a three run average of 166 which to be fair is pretty low but if we compare that result to some of the other low-powered CPUs we've looked at before on the channel it's actually quite impressive for example if we look at the a65200 or Intel j2900 we see that the Odyssey with its j4125 manages to outperform both and cinebench R15 while only consuming about 16 and a half watts of power that's only slightly more than the other two systems consumed while at idle now obviously the j4125 is much newer and more expensive but it's clear that the CPU is really quite good if you're looking for something with decent performance and a great efficiency now obviously this video isn't about running Windows we're going to be setting up this Odyssey as a router using pfSense and more specifically running PF sense in a virtual machine if you haven't heard of PF since before you might be wondering exactly what it is and why we would want to use something running pfSense instead of just using an off-the-shelf router or the one provided by your internet service provider bfsense is an open source firewall and router that can be entirely managed by a web UI and packs tons of features that are often only seen in expensive Enterprise gear pfSense can run on just about anything from old retired desktops to Dedicated low power arm devices but not Raspberry Pi's so don't leave me a comment about that installing pfSense on the Odyssey is incredibly simple and Seed Studio even provides a guide on how to do it and while this does work great I feel like it's well it's sort of lame you see the Odyssey runs PF sense really well but also costs 270 dollars and only has two gigabit ports which does limit some of the things you can do with pfSense and your home network you could spend well under a hundred dollars on a used small form factor office PC drop in an Ethernet pcie card and have a much more powerful router or if power efficiency is important to you you could buy a dedicated netgate device which even includes a third ethernet interface these are arm-based devices and consume very little power however they do use a proprietary version of bfsense called pfSense Plus still this comes in at just around two-thirds the cost of the Odyssey there are also some other Intel based mini PCS on the market that feature dual gigabit nics albeit with less i o and lower specs so with all this information just running PF since on the Odyssey seems inefficient we're paying for 270 dollars worth of Hardware but not really taking advantage of it now what if we could run pfSense but also run home assistant a small Nas a wire guard server taking advantage of the four cores eight gigabytes of RAM and SATA and n.2 connections or even the Arduino co-processor and Raspberry Pi gpio while I'm not going to mess around with the Arduino or gpio stuff I am going to take a stab at running pfSense as a virtual machine so that we can hopefully run some other services on this as well but running a router in a VM could be a recipe for disaster there are tons of stories Forum posts and videos of virtual machine routers having strange issues and while it can save space and resources it also can be a pain to lose internet access anytime you need to work on shutdown or reboot the host machine we also faced the issue of only having two ethernet ports if these are both available to the router for a Wan and Lan Port we don't have a network connection to our hypervisor or any of the other hosts running on it fortunately there should be workarounds for all of these issues and if we're able to get our router running in a VM we can do a lot more with the system to do all of this I'm going to install proxmox which is a fairly simple to use hypervisor then I'm going to install two virtual machines one running PF sense and another running Debian Linux the latter should let us run Docker containers or services for various things like home assistant wireguard pie hole or really whatever else we might want now a quick disclaimer I actually already went through this process so rather than going back through everything in real time I'm just going to go back and explain everything I did to potentially get this up and running this won't be much of a tutorial I'm not going to dive into the nitty-gritty details of proxmox or pfSense much but if that's what you're looking for get subscribed I have a more detailed proxbox video coming out that should be quite a bit of fun if you're wanting more info on how to use PS sense I actually recommend checking out this video from Lawrence systems as that's what really helped me when I got started with pfSense with that all out of the way let's go ahead and dive in the first thing I did was download the latest ISO for proxmox ve and then copy it over to my vintoy USB drive after plugging it in and booting up the install was fairly easy and straightforward after finishing the install and rebooting proxmox booted up and showed this screen which gave me the address for the web UI navigating to that address took me to the UI where I could see our prox node running as expected when navigating over to the network tab you can see that there are a few devices here we had the two physical nics the Wi-Fi adapter that will just be ignoring and then a Linux Bridge which is a virtual Nic that is currently using one of our two network adapters now we could use this virtual Nic for our pfSense machine and W machine later on but that could cause some issues instead I'm going to plug in a USB network adapter that we can use for proxmox control and for the Debian VM this way I can pass through the two onboard nics to the pfSense machine so that it can use them directly before worrying about pcie passthrough though I needed to get the USB Nick working after plugging it in and refreshing it popped up under the network devices then all I had to do was edit the network bridge to use our USB Nick edit a few labels just for my own sake and then apply the changes with our two Network ports freed up I moved on to installing pfSense after downloading the latest version from the pfSense website I uploaded the iso to my proxnode's local storage with that finished I started creating the pfSense VM I selected the installer ISO and then used mostly default settings but gave it two CPU cores and three gigabytes of RAM although I had to ask Google just to make sure I got my math right here the only other thing I did was disable the default Network device because we'll want pfSense to only use the two physical Nicks we're going to pass through with the VM created it was time to add our two Network ports but in order to do this we need iommu to be enabled to do this I first made sure that virtualization and vtd were enabled in the Bios which I previously did before turning on the Odyssey then there are a few steps to follow on the procs my website which is mostly just some copy paste into the shell of our host machine since I was using grub I followed that set of instructions and then rebooted the machine after a quick reboot I was able to verify that iommu was in fact enabled then in the settings of the psn's virtual machine under the hardware tab I added the two PCI devices for our Intel nics after that it was finally time to start up the virtual machine once it booted up it took me through the expected install process and once that was finished I could remove the virtual install media and restart our virtual machine while that was booting up I went ahead and set up a network switch which I connected to what would be the Lan Port of our router and normally I would have connected what would be the WAN port to my modem but for this setup I'm just connecting it to a switch on my home network back in pfSense after making sure the interfaces were assigned properly to Lan and Wan I set up the Lan address to 192.168.100.1 24 to make sure it was in a different subnet than my local network and then enabled DHCP to test everything out I plugged my desktop into the switch and after a few seconds it was assigned an ipv4 address of 192.168.100.100 and I had internet access I did some more setup in the pfSense UI but I really won't go into detail on that here as mentioned earlier with pfSense setup it was time to move on to our second virtual machine this was really simple since we don't need any pcie passthrough or anything so I just uploaded a Debian ISO in the same way as before and then made a new virtual machine with four virtual CPU cores and once again three gigabytes of RAM after going through the initial process disabling all desktop environments enabling SSH and rebooting I remote it into the shell and started setting things up first I installed Docker and added my Haven user to the docker group then I installed portaner to make running and managing containers a bit easier with pertainer setup I installed home assistant using the Linux server.io image just make sure our router was working as expected I unplugged the USB network adapter from my home network plugged into our PS since this Lan switch and then gave it a static IP in the 192.168.100.0 subnet just as a proof of concept that our router server combo operated properly and it seemed to be working great I wanted to add a bit more to this system like pie hole and wireguard but unfortunately I've started not feeling very well and had to step away from working on this I'm already behind on making this video and have more stuff I want to get to here soon like the proxmox Home Server video I mentioned earlier so for now this is where we're going to leave things however I'm also planning to revisit this router and take advantage of some of the available features of the Odyssey to add more network interfaces and get rid of the awkward USB adapter I also hope to replace my current router with this one once I do so so stay tuned I really enjoyed getting to mess around with proxmox virtualization and pfSense in this video and it was also really cool to take a look at the Odyssey so huge thanks to the people over at Seed Studio for sending it over if you're interested in one of these or any of the other awesome boards and products they have over there go check out their website which I'll have Linked In the video description below I had a ton of fun making this video and I really hope you had just as much fun watching it if so maybe check out some of my other videos like this one where I installed pie hole on a 15 year old Mac Mini that's about it for this one though so as always thanks for watching stay curious and I really hope to see you in the next onein today's video we're going to take this little computer and turn it into a router and a little Home Server all in this little tiny box that's pretty cool stick around if you've been around the single board computer iot or mini computer space for a bit you've probably seen this board as it's definitely not new The Odyssey from Seed Studio is an impressive little Singapore computer featuring an Intel j4125 quad-core CPU clocked at two gigahertz it comes with eight gigabytes of LP ddr4 memory as well as a vast array of other features and I O including dual gigabit Nix onboard Bluetooth and Wi-Fi two m.2 slots a SATA port a USBC 3.1 port HDMI and more oh and did I mention that it has Raspberry Pi compatible gpio as well as an integrated arm co-processor and headers for using Arduino the version I have here came with a 128 gigabyte m.2 SATA SSD and Seed Studios re or re computer case which is a pretty cool little aluminum case that has an acrylic top cover foreign this little board is quite a Workhorse and can really do so so many things which in a way is the best and worst thing about this PC but more on that later the Odyssey comes pre-installed with Windows 10 and is marketed as a Mini PC option so I tested out windows just a little bit and it performed pretty well for basic tasks and handled 1080p 60 YouTube playback with only a few dropped frames here and there in cinebench R15 it scored a three run average of 166 which to be fair is pretty low but if we compare that result to some of the other low-powered CPUs we've looked at before on the channel it's actually quite impressive for example if we look at the a65200 or Intel j2900 we see that the Odyssey with its j4125 manages to outperform both and cinebench R15 while only consuming about 16 and a half watts of power that's only slightly more than the other two systems consumed while at idle now obviously the j4125 is much newer and more expensive but it's clear that the CPU is really quite good if you're looking for something with decent performance and a great efficiency now obviously this video isn't about running Windows we're going to be setting up this Odyssey as a router using pfSense and more specifically running PF sense in a virtual machine if you haven't heard of PF since before you might be wondering exactly what it is and why we would want to use something running pfSense instead of just using an off-the-shelf router or the one provided by your internet service provider bfsense is an open source firewall and router that can be entirely managed by a web UI and packs tons of features that are often only seen in expensive Enterprise gear pfSense can run on just about anything from old retired desktops to Dedicated low power arm devices but not Raspberry Pi's so don't leave me a comment about that installing pfSense on the Odyssey is incredibly simple and Seed Studio even provides a guide on how to do it and while this does work great I feel like it's well it's sort of lame you see the Odyssey runs PF sense really well but also costs 270 dollars and only has two gigabit ports which does limit some of the things you can do with pfSense and your home network you could spend well under a hundred dollars on a used small form factor office PC drop in an Ethernet pcie card and have a much more powerful router or if power efficiency is important to you you could buy a dedicated netgate device which even includes a third ethernet interface these are arm-based devices and consume very little power however they do use a proprietary version of bfsense called pfSense Plus still this comes in at just around two-thirds the cost of the Odyssey there are also some other Intel based mini PCS on the market that feature dual gigabit nics albeit with less i o and lower specs so with all this information just running PF since on the Odyssey seems inefficient we're paying for 270 dollars worth of Hardware but not really taking advantage of it now what if we could run pfSense but also run home assistant a small Nas a wire guard server taking advantage of the four cores eight gigabytes of RAM and SATA and n.2 connections or even the Arduino co-processor and Raspberry Pi gpio while I'm not going to mess around with the Arduino or gpio stuff I am going to take a stab at running pfSense as a virtual machine so that we can hopefully run some other services on this as well but running a router in a VM could be a recipe for disaster there are tons of stories Forum posts and videos of virtual machine routers having strange issues and while it can save space and resources it also can be a pain to lose internet access anytime you need to work on shutdown or reboot the host machine we also faced the issue of only having two ethernet ports if these are both available to the router for a Wan and Lan Port we don't have a network connection to our hypervisor or any of the other hosts running on it fortunately there should be workarounds for all of these issues and if we're able to get our router running in a VM we can do a lot more with the system to do all of this I'm going to install proxmox which is a fairly simple to use hypervisor then I'm going to install two virtual machines one running PF sense and another running Debian Linux the latter should let us run Docker containers or services for various things like home assistant wireguard pie hole or really whatever else we might want now a quick disclaimer I actually already went through this process so rather than going back through everything in real time I'm just going to go back and explain everything I did to potentially get this up and running this won't be much of a tutorial I'm not going to dive into the nitty-gritty details of proxmox or pfSense much but if that's what you're looking for get subscribed I have a more detailed proxbox video coming out that should be quite a bit of fun if you're wanting more info on how to use PS sense I actually recommend checking out this video from Lawrence systems as that's what really helped me when I got started with pfSense with that all out of the way let's go ahead and dive in the first thing I did was download the latest ISO for proxmox ve and then copy it over to my vintoy USB drive after plugging it in and booting up the install was fairly easy and straightforward after finishing the install and rebooting proxmox booted up and showed this screen which gave me the address for the web UI navigating to that address took me to the UI where I could see our prox node running as expected when navigating over to the network tab you can see that there are a few devices here we had the two physical nics the Wi-Fi adapter that will just be ignoring and then a Linux Bridge which is a virtual Nic that is currently using one of our two network adapters now we could use this virtual Nic for our pfSense machine and W machine later on but that could cause some issues instead I'm going to plug in a USB network adapter that we can use for proxmox control and for the Debian VM this way I can pass through the two onboard nics to the pfSense machine so that it can use them directly before worrying about pcie passthrough though I needed to get the USB Nick working after plugging it in and refreshing it popped up under the network devices then all I had to do was edit the network bridge to use our USB Nick edit a few labels just for my own sake and then apply the changes with our two Network ports freed up I moved on to installing pfSense after downloading the latest version from the pfSense website I uploaded the iso to my proxnode's local storage with that finished I started creating the pfSense VM I selected the installer ISO and then used mostly default settings but gave it two CPU cores and three gigabytes of RAM although I had to ask Google just to make sure I got my math right here the only other thing I did was disable the default Network device because we'll want pfSense to only use the two physical Nicks we're going to pass through with the VM created it was time to add our two Network ports but in order to do this we need iommu to be enabled to do this I first made sure that virtualization and vtd were enabled in the Bios which I previously did before turning on the Odyssey then there are a few steps to follow on the procs my website which is mostly just some copy paste into the shell of our host machine since I was using grub I followed that set of instructions and then rebooted the machine after a quick reboot I was able to verify that iommu was in fact enabled then in the settings of the psn's virtual machine under the hardware tab I added the two PCI devices for our Intel nics after that it was finally time to start up the virtual machine once it booted up it took me through the expected install process and once that was finished I could remove the virtual install media and restart our virtual machine while that was booting up I went ahead and set up a network switch which I connected to what would be the Lan Port of our router and normally I would have connected what would be the WAN port to my modem but for this setup I'm just connecting it to a switch on my home network back in pfSense after making sure the interfaces were assigned properly to Lan and Wan I set up the Lan address to 192.168.100.1 24 to make sure it was in a different subnet than my local network and then enabled DHCP to test everything out I plugged my desktop into the switch and after a few seconds it was assigned an ipv4 address of 192.168.100.100 and I had internet access I did some more setup in the pfSense UI but I really won't go into detail on that here as mentioned earlier with pfSense setup it was time to move on to our second virtual machine this was really simple since we don't need any pcie passthrough or anything so I just uploaded a Debian ISO in the same way as before and then made a new virtual machine with four virtual CPU cores and once again three gigabytes of RAM after going through the initial process disabling all desktop environments enabling SSH and rebooting I remote it into the shell and started setting things up first I installed Docker and added my Haven user to the docker group then I installed portaner to make running and managing containers a bit easier with pertainer setup I installed home assistant using the Linux server.io image just make sure our router was working as expected I unplugged the USB network adapter from my home network plugged into our PS since this Lan switch and then gave it a static IP in the 192.168.100.0 subnet just as a proof of concept that our router server combo operated properly and it seemed to be working great I wanted to add a bit more to this system like pie hole and wireguard but unfortunately I've started not feeling very well and had to step away from working on this I'm already behind on making this video and have more stuff I want to get to here soon like the proxmox Home Server video I mentioned earlier so for now this is where we're going to leave things however I'm also planning to revisit this router and take advantage of some of the available features of the Odyssey to add more network interfaces and get rid of the awkward USB adapter I also hope to replace my current router with this one once I do so so stay tuned I really enjoyed getting to mess around with proxmox virtualization and pfSense in this video and it was also really cool to take a look at the Odyssey so huge thanks to the people over at Seed Studio for sending it over if you're interested in one of these or any of the other awesome boards and products they have over there go check out their website which I'll have Linked In the video description below I had a ton of fun making this video and I really hope you had just as much fun watching it if so maybe check out some of my other videos like this one where I installed pie hole on a 15 year old Mac Mini that's about it for this one though so as always thanks for watching stay curious and I really hope to see you in the next one\n"