SOLVED pfSense as iohyve virtual machine with ethernet PCI passthrough under FreeNAS 11.2

Status
Not open for further replies.

Michael M

Cadet
Joined
Sep 10, 2015
Messages
5
I have pfSense 2.4.4-p1 running on my FreeNAS 11.2 installation.

Get the PCI addresses for the ethernet card.

pciconf -lv

Find the PCI addresses for the ethernet card. A multi-port card should have several. You will need them for the pptdev2 tunable in an x/y/z format. My example is for two ethernet ports with PCI addresses x1/y1/z1 and x2/y2/z2.

Under System -> Tunables, configure options to enable iohyve and PCI passthrough. I used pptdevs2 because regular pptdevs did not work.

Variable | Value | Type
iohyve_enable | YES | rc
iohyve_flags | kmod=1 net=<eth0 or whatver you use> | rc
pptdevs2 | x1/y1/z1 x2/y2/z2 | loader
vmm_load | YES | loader

Configure the virtual machine using iohyve at the command line.

iohyve setup pool=<your pool> iohyve create pfsense 8G iohyve set pfsense ram=2048mb iohyve set pfsense cpu=2 iohyve set pfsense pcidev:7=passthru,x1/y1/z1 iohyve set pfsense pcidev:8=passthru,x2/y2/z2 iohyve set pfsense os=pfsense iohyve set pfsense bargs="-S -A -H -P" iohyve fetch https://nyifiles.pfsense.org/mirror/downloads/pfSense-CE-memstick-serial-2.4.4-RELEASE-p1-amd64.img.gz zfs rename zeus/iohyve/ISO/pfSense-CE-memstick-serial-2.4.4-RELEASE-p1-amd64.img.gz zeus/iohyve/ISO/pfSense-CE-memstick-serial-2.4.4-RELEASE-p1-amd64.img cd /iohyve/ISO/pfSense-CE-memstick-serial-2.4.4-RELEASE-p1-amd64.img/ gunzip pfSense-CE-memstick-serial-2.4.4-RELEASE-p1-amd64.img.gz

I had to dd the image to my zvol. Make sure your paths and files are correct!

dd if=/iohyve/ISO/pfSense-CE-memstick-serial-2.4.4-RELEASE-p1-amd64.img/pfSense-CE-memstick-serial-2.4.4-RELEASE-p1-amd64.img/pfSense-CE-memstick-serial-2.4.4-RELEASE-p1-amd64.img of=/dev/zvol/zeus/iohyve/pfsense/disk0 bs=1m

Start the VM

iohyve start pfsense

Probably in another shell session, connect to the console to perform the installation.

iohyve console pfsense

Set it to automatically boot.

iohyve set pfsense boot=1

I relied on some helpful sources to make it work. Most of this process involves minor modifications from the murf.se post. I tried the https://murf.se/2016/01/05/iohyve-and-pci-passthru.html instructions, but I never got the /etc/rc.initial menu after "Bootup complete" when using the iso. Using the memstick installation method worked better.

iohyve manual man page
https://github.com/pr1ntf/iohyve/wiki/Manual

iohyve wiki
https://github.com/pr1ntf/iohyve/wiki

USB passthrough example
https://github.com/pr1ntf/iohyve/wiki/USB-3.0-PCI-Controller-Pass-through

CentOS useful for tunables for FreeNAS
https://github.com/pr1ntf/iohyve/wiki/Installing-CentOS-7-on-FreeNAS
 
Status
Not open for further replies.
Top