Re: usb devices passthrough in bhyve
- In reply to: Steven Friedrich : "usb devices passthrough in bhyve"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 28 Dec 2024 09:41:05 UTC
Hello. I have a situation similar to yours. This is my USB controller integrated with the motherboard (INTEL AORUS PRO) : 00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10) I have attached a lot of USB disks to that USB controller,but I never reserved it, placing it on the /boot/loader. Let's take this disk for example,that's attached there : => 40 3907029095 da5 GPT (1.8T) 40 532480 1 efi (260M) 532520 1024 2 freebsd-boot (512K) 533544 984 - free - (492K) 534528 4194304 3 freebsd-swap (2.0G) 4728832 3902300160 4 freebsd-zfs (1.8T) 3907028992 143 - free - (72K) If I want to use it with bhyve,I do : bhyve-lin -S -c sockets=2,cores=1,threads=1 -m 4G -w -H -A \ -s 0,hostbridge \ -s 1,ahci-hd,/dev/da5 \ Easy,isn't it ? But this technique works only with the disks. If you have a different kind of device,you should use an additional USB to PCI controller.... On Sat, Dec 28, 2024 at 3:13 AM Steven Friedrich < freebsdlouisville@gmail.com> wrote: > I have an HP Envy running FreeBSD 14.2. > > I am a bhyve noob, but I am able to create a bhyve guest, and installed > freebsd 14.2 on it. > > Here's my host pci devices: > > xhci1@pci0:0:20:0: class=0x0c0330 rev=0x00 hdr=0x00 vendor=0x8086 > device=0x06ed subvendor=0x103c subdevice=0x8767 > vendor = 'Intel Corporation' > device = 'Comet Lake USB 3.1 xHCI Host Controller' > class = serial bus > subclass = USB > > xhci0@pci0:1:0:0: class=0x0c0330 rev=0x00 hdr=0x00 vendor=0x1b21 > device=0x3242 subvendor=0x1b21 subdevice=0x3242 > vendor = 'ASMedia Technology Inc.' > device = 'ASM3242 USB 3.2 Host Controller' > class = serial bus > subclass = USB > > Here's my usbconfig: > > usbconfig > ugen1.1: <Intel XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER > (5.0Gbps) pwr=SAVE (0mA) > ugen0.1: <(0x1b21) XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER > (5.0Gbps) pwr=SAVE (0mA) > ugen0.2: <Hub Genesys Logic, Inc.> at usbus0, cfg=0 md=HOST spd=SUPER > (5.0Gbps) pwr=SAVE (0mA) > ugen1.2: <PixArt HP USB Optical Mouse> at usbus1, cfg=0 md=HOST spd=LOW > (1.5Mbps) pwr=ON (100mA) > ugen1.3: <Chicony HP USB Keyboard> at usbus1, cfg=0 md=HOST spd=LOW > (1.5Mbps) pwr=ON (100mA) > ugen1.4: <Realtek Bluetooth Radio> at usbus1, cfg=0 md=HOST spd=FULL > (12Mbps) pwr=ON (500mA) > ugen0.3: <PNY USB 3.2.1 FD> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) > pwr=ON (126mA) > ugen0.4: <Hub Genesys Logic, Inc.> at usbus0, cfg=0 md=HOST spd=HIGH > (480Mbps) pwr=SAVE (100mA) > > Originally, my PNY flash drive was on usbus1, but when I added pptdevs="0/20/0" > to /boot/loader.conf, I lost my mouse and keyboard. > > Fortunately, I recently added a pcie card supporting usb 20 gbps rates. > > So I changed /boot/loader.conf to pptdevs="1/0/0" > > But I don't know how to see the PNY flash drive in the guest. I was > hoping I could use gpart show -l and see a /dev/da0 or /dev/da1 drive, but > I don't. > > In the guest, usbconfig: > > usbconfig > No device match or lack of permissions. > > and pciconf -v -l: > > pciconf -v -l > hostb0@pci0:0:0:0: class=0x060000 rev=0x00 hdr=0x00 vendor=0x1275 > device=0x1275 subvendor=0x0000 subdevice=0x0000 > vendor = 'Network Appliance Corporation' > class = bridge > subclass = HOST-PCI > isab0@pci0:0:1:0: class=0x060100 rev=0x00 hdr=0x00 vendor=0x8086 > device=0x7000 subvendor=0x0000 subdevice=0x0000 > vendor = 'Intel Corporation' > device = '82371SB PIIX3 ISA [Natoma/Triton II]' > class = bridge > subclass = PCI-ISA > virtio_pci0@pci0:0:2:0: class=0x020000 rev=0x00 hdr=0x00 vendor=0x1af4 > device=0x1000 subvendor=0x1af4 subdevice=0x0001 > vendor = 'Red Hat, Inc.' > device = 'Virtio network device' > class = network > subclass = ethernet > virtio_pci1@pci0:0:3:0: class=0x010000 rev=0x00 hdr=0x00 vendor=0x1af4 > device=0x1001 subvendor=0x1af4 subdevice=0x0002 > vendor = 'Red Hat, Inc.' > device = 'Virtio block device' > class = mass storage > subclass = SCSI > > How do I fix this? > -- Mario.