#omnios #smartos Is it even possible to do usb-passtrough to a zone? I have read alot of dokuments and blog posts about pcie passthrough

https://blackdot.be/2023/11/illumos-bhyve-intel-arc/

Best one yet, managed to get USB dev as a ppt dev.

#SmartOS and i did not agree with ppt_aliases or ppt_matches.
#OmniOs and pcieadm utility made it understandable on my level
prtconf -dD is ALOT 😂
But after i have seen output of pcieadm it makes more sense.

So tomorrow i will try my favorite #tribblix to see if we can get passthrough going

Intel Arc PCI Passthru using bhyve on illumos

A while ago I bought a second hand NVIDIA Quadro P1000 on eBay, it being a Low-Profile card, means it fits well in my 2U servers in my home lab. This card has been used in my Plex Media Server VM for a while, although it is working well, it is a few generations old and does not support newer codecs like h265 and AV1. Intel recently launched the Intel Arc A3101 which does support all the newer codecs, additionally one can avoid the horrible mess that is NVIDIA drivers on Linux! The i915 driver in kernel supports Arc, assuming one is running a recent enough version.

blackdot.be

I think i got it!
because i got my USB card passtrough on #tribblix
This was on tribblix

prtconf -dD look for the attached device
pci1912,15 (pciex1912,15) [Renesas Electronics Corp. uPD720202 USB 3.0 Host Controller], instance #1 (driver name: xhci)

pciex1912,15 goes into /etc/ppt_matches
So you just have pciex1912,15 in that file

and ppt_aliases should read

ppt "pci1912,15"

reboot
and se.

still can't figure out how to get device path :(

Blog in previus post, the author is my hero now :D

No joy yet, the documentation is not understandable for me, how to setup a ppt device in a zone

set device
match=/dev/ppt2

and then on?
https://illumos.org/man/8/bhyve
https://man.omnios.org/7/bhyve#ppt

A blogger using #omnios passing bhyve zone commands
in a attr
https://www.cyber-tec.org/2019/05/29/using-bhyve-pci-passthrough-on-omnios/

#tribblix did not like that at all 😂

illumos: manual page: bhyve.8

@joany I am passing through the same device on my OmniOS hosts ...

/etc/ppt_matches:
# NOTE: Renesas XHCI
pciex1912,15

/etc/ppt_aliasses:
# NOTE: Renesas XHCI
ppt "/pci@0,0/pci8086,a190@1c/pci12d8,8608@0/pci12d8,8608@1/pci1912,15@0"
ppt "/pci@0,0/pci8086,a190@1c/pci12d8,8608@0/pci12d8,8608@5/pci1912,15@0"
ppt "/pci@0,0/pci8086,a190@1c/pci12d8,8608@0/pci12d8,8608@7/pci1912,15@0"
ppt "/pci@0,0/pci8086,a190@1c/pci12d8,8608@0/pci12d8,8608@9/pci1912,15@0"

In my case it's a card with 4 controller going to 1 port each.

Assuming for now the xhci driver is still attaching... you can iterate over them and find the correct path using:

/usr/lib/pci/pcieadm show-devs -o device,driver,bdf,path | egrep "xhci|ppt"

sjorge@jupiter:~$ /usr/lib/pci/pcieadm show-devs -o device,driver,bdf,path | egrep "xhci|ppt"
C620 Series Chipset Family USB 3.0 xHCI Controller xhci 0/14/0 /pci@0,0/pci15d9,95e@14
uPD720202 USB 3.0 Host Controller ppt 3/0/0 /pci@0,0/pci8086,a190@1c/pci12d8,8608@0/pci12d8,8608@1/pci1912,15@0
uPD720202 USB 3.0 Host Controller ppt 4/0/0 /pci@0,0/pci8086,a190@1c/pci12d8,8608@0/pci12d8,8608@5/pci1912,15@0
uPD720202 USB 3.0 Host Controller ppt 5/0/0 /pci@0,0/pci8086,a190@1c/pci12d8,8608@0/pci12d8,8608@7/pci1912,15@0
uPD720202 USB 3.0 Host Controller ppt 6/0/0 /pci@0,0/pci8086,a190@1c/pci12d8,8608@0/pci12d8,8608@9/pci1912,15@0
Ethernet Connection X722 for 10GBASE-T ppt 67/0/0 /pci@5e,0/pci8086,2030@0/pci8086,37c0@0/pci8086,37c5@3/pci15d9,37d2@0
Ethernet Connection X722 for 10GBASE-T ppt 67/0/1 /pci@5e,0/pci8086,2030@0/pci8086,37c0@0/pci8086,37c5@3/pci15d9,37d2@0,1

That should give you the paths for ppt_aliases

@sjorge
It was your blog i found.
https://blackdot.be/2023/11/illumos-bhyve-intel-arc/
Outstanding!

But what do i put in zonecfg?
This i dont get 😵‍💫

Intel Arc PCI Passthru using bhyve on illumos

A while ago I bought a second hand NVIDIA Quadro P1000 on eBay, it being a Low-Profile card, means it fits well in my 2U servers in my home lab. This card has been used in my Plex Media Server VM for a while, although it is working well, it is a few generations old and does not support newer codecs like h265 and AV1. Intel recently launched the Intel Arc A3101 which does support all the newer codecs, additionally one can avoid the horrible mess that is NVIDIA drivers on Linux! The i915 driver in kernel supports Arc, assuming one is running a recent enough version.

blackdot.be

@joany on OmniOS when not using zadm you need the following

add device
set match="/dev/ppt5"
end
add attr
set name="ppt5"
set type="string"
set value="on"
end

You can find the right ppt device either pptadm or with the command from the previous reply.

@sjorge Many thanks.

This one piece was eluding me.
Now i know.

@sjorge

Hmm, i have tried on a few machines here now at home.
All UEFI,
Not all where capable to pass-though a device
in some cases i got a init_node: unbind rebind error

But i have a Lenovo with a 8th gen intel that i managed to pass-though the onboard USB

But my ryzen 1600 was a no 😞
This was with #omnios

Thanks again

@joany ppt is only support on Intel CPU's currently when using bhyve on illumos. There is no IOMMU (?) driver for AMD that hooks into bhyve.

@sjorge Oh no 🥺
I was thinking of making my 5900X come to good use

Thank you very much for the info.
i guess i need to find some kind of intel machine 😵‍💫