I have pfSense 2.4.4-p1 running on my FreeNAS 11.2 installation.
Get the PCI addresses for the ethernet card.
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.
I had to dd the image to my zvol. Make sure your paths and files are correct!
Start the VM
Probably in another shell session, connect to the console to perform the installation.
Set it to automatically boot.
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
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