I have an Asrock B450M Steel Legend motherboard and I’d like to repurpose it into a machine that handles my critical infrastructure. Proxmox as a base with OpenWRT, Home Assistant OS, some kind of reverse proxy manager, and a NetworkUPSTools (NUT) server.
I have a 4-port Intel i226 PCIe card that would go to OpenWRT and a couple USB dongles that would go to Home Assistant. How does Proxmox handle the passthrough of these? Do I need to pass through the whole PCIe device and USB controllers or am I able to pass through virtualized versions reliably? I don’t want to pass through a GPU - only network and USB devices.
After some quick searching B450/B550 boards have terrible IOMMU groups which limits direct passthrough.
Ideally in the future I’d like to add in some kind of 10G fibre card as well. Apparently its possible to log into my Bell fibre internet directly without the supplied modem so that could be a fun project.
I had considered going the Router running under Hypervisor approach, but ultimately ended up putting OPNSense on cheap bare metal box I had laying around (12100 CPU, 8GB RAM) due to reservations about having part of my main NAS exposed to the outside world. I don’t know what I don’t know in many ways, so the peace of mind of having my publicly facing device dedicated to just that put me more at ease, and was worth the extra device + 27W peak power usage on it.
There is an x86-64 version that I’m running on another system. I’m hoping to consolidate things into one machine. Virtualizing them also means I can easily take snapshots and view the machines in the proxmox interface since I don’t have a physical KVM.
I have OpenWRT running on an i3-4330 based computer right now and its working great. I’m just hoping to consolidate my critical things on one machine that can have snapshots and the Proxmox interface for viewing the KVM.
Its been a little bit since I have used Proxmox so I’m not sure how its passthrough works exactly. I think I can pass USB devices through by hardware id without having to pass the entire controller over. Network might be similar but again, not sure. I do have a spare computer here I can maybe test with but if I can get an answer here that would save me a little bit of time.
Seems like I can pass USB devices by hardware id, mapped device, or passing a whole controller in. Network is similar. I can bridge a port to the VM or do a full PCIe passthrough to the VM.
Next test will be an OpenWRT VM to see how a network device handles being passed through.
you are better off doing this. USB by ID passthrough is a cludge and uses high CPU. PCIE pasthrough of the USB controller is far better.
works fine. just remember to not connect the VM into a virtual bridge when ProxMox asks. i have several VMs with dedicated NICs passed through, PiHole, a Domain Controller, anything that should handle traffic needs a passed through NIC or 2.
I run OpenWrt 23.05 on Ubuntu Server with zfs for almost a year now, it works just fine for me.
Motherboard is an MSI B550 Motar with an ASUS PCE-AXE5400 (MT7921LEN) PCIe card.
I use the Mediatek drivers from Ubuntu, the OpenWrt drivers didn’t work for me.
It takes a few steps to enlarge the OpenWrt image and get it on ZFS, but you can find the instructions in the OpenWRT forum.
I’m currently testing this with LXD/LXC, but the 23.05 LXC image is still causing problems, I can ping the system but the GUI is not accessible
That is 2 meters away, but I bought another antenna to be able to place it optimally