Date: Sat, 28 Dec 2024 10:41:05 +0100 From: Mario Marietto <marietto2008@gmail.com> To: Steven Friedrich <freebsdlouisville@gmail.com> Cc: freebsd-virtualization@freebsd.org Subject: Re: usb devices passthrough in bhyve Message-ID: <CA%2B1FSiipSxt-Og1t_cOvy%2BXMavECDb_byScoWU2C5tw8SPr=LQ@mail.gmail.com> In-Reply-To: <5cd601ba-560d-4252-9f17-7c450cf5d66d@gmail.com> References: <7dabef84-a572-4ded-a676-c73011b37e3c@gmail.com> <5cd601ba-560d-4252-9f17-7c450cf5d66d@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--00000000000003113d062a516330 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 : =3D> 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=3D2,cores=3D1,threads=3D1 -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=E2=80=AFAM 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=3D0x0c0330 rev=3D0x00 hdr=3D0x00 vendor=3D0= x8086 > device=3D0x06ed subvendor=3D0x103c subdevice=3D0x8767 > vendor =3D 'Intel Corporation' > device =3D 'Comet Lake USB 3.1 xHCI Host Controller' > class =3D serial bus > subclass =3D USB > > xhci0@pci0:1:0:0: class=3D0x0c0330 rev=3D0x00 hdr=3D0x00 vendor=3D0= x1b21 > device=3D0x3242 subvendor=3D0x1b21 subdevice=3D0x3242 > vendor =3D 'ASMedia Technology Inc.' > device =3D 'ASM3242 USB 3.2 Host Controller' > class =3D serial bus > subclass =3D USB > > Here's my usbconfig: > > usbconfig > ugen1.1: <Intel XHCI root HUB> at usbus1, cfg=3D0 md=3DHOST spd=3DSUPER > (5.0Gbps) pwr=3DSAVE (0mA) > ugen0.1: <(0x1b21) XHCI root HUB> at usbus0, cfg=3D0 md=3DHOST spd=3DSUPE= R > (5.0Gbps) pwr=3DSAVE (0mA) > ugen0.2: <Hub Genesys Logic, Inc.> at usbus0, cfg=3D0 md=3DHOST spd=3DSUP= ER > (5.0Gbps) pwr=3DSAVE (0mA) > ugen1.2: <PixArt HP USB Optical Mouse> at usbus1, cfg=3D0 md=3DHOST spd= =3DLOW > (1.5Mbps) pwr=3DON (100mA) > ugen1.3: <Chicony HP USB Keyboard> at usbus1, cfg=3D0 md=3DHOST spd=3DLOW > (1.5Mbps) pwr=3DON (100mA) > ugen1.4: <Realtek Bluetooth Radio> at usbus1, cfg=3D0 md=3DHOST spd=3DFUL= L > (12Mbps) pwr=3DON (500mA) > ugen0.3: <PNY USB 3.2.1 FD> at usbus0, cfg=3D0 md=3DHOST spd=3DSUPER (5.0= Gbps) > pwr=3DON (126mA) > ugen0.4: <Hub Genesys Logic, Inc.> at usbus0, cfg=3D0 md=3DHOST spd=3DHIG= H > (480Mbps) pwr=3DSAVE (100mA) > > Originally, my PNY flash drive was on usbus1, but when I added pptdevs=3D= "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=3D"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, bu= t > 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=3D0x060000 rev=3D0x00 hdr=3D0x00 vendor=3D0= x1275 > device=3D0x1275 subvendor=3D0x0000 subdevice=3D0x0000 > vendor =3D 'Network Appliance Corporation' > class =3D bridge > subclass =3D HOST-PCI > isab0@pci0:0:1:0: class=3D0x060100 rev=3D0x00 hdr=3D0x00 vendor=3D0= x8086 > device=3D0x7000 subvendor=3D0x0000 subdevice=3D0x0000 > vendor =3D 'Intel Corporation' > device =3D '82371SB PIIX3 ISA [Natoma/Triton II]' > class =3D bridge > subclass =3D PCI-ISA > virtio_pci0@pci0:0:2:0: class=3D0x020000 rev=3D0x00 hdr=3D0x00 vendor=3D0= x1af4 > device=3D0x1000 subvendor=3D0x1af4 subdevice=3D0x0001 > vendor =3D 'Red Hat, Inc.' > device =3D 'Virtio network device' > class =3D network > subclass =3D ethernet > virtio_pci1@pci0:0:3:0: class=3D0x010000 rev=3D0x00 hdr=3D0x00 vendor=3D0= x1af4 > device=3D0x1001 subvendor=3D0x1af4 subdevice=3D0x0002 > vendor =3D 'Red Hat, Inc.' > device =3D 'Virtio block device' > class =3D mass storage > subclass =3D SCSI > > How do I fix this? > --=20 Mario. --00000000000003113d062a516330 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div>Hello.</div><div><b= r></div><div>I have a situation similar to yours. This is my USB controller= integrated with the motherboard (INTEL AORUS PRO) :<br></div><div><br></di= v><div>00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xH= CI Host Controller (rev 10)</div></div><div><br></div><div>I have attached = a lot of USB disks to that USB controller,but I never reserved it, placing = it on the /boot/loader.</div><div><br></div><div>Let's take this disk f= or example,that's attached there :</div><div><br></div><div>=3D> =C2= =A0 =C2=A0 =C2=A0 =C2=A040 =C2=A03907029095 =C2=A0da5 =C2=A0GPT =C2=A0(1.8T= )<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 40 =C2=A0 =C2=A0 =C2=A0532480 =C2= =A0 =C2=A01 =C2=A0efi =C2=A0(260M)<br>=C2=A0 =C2=A0 =C2=A0 532520 =C2=A0 = =C2=A0 =C2=A0 =C2=A01024 =C2=A0 =C2=A02 =C2=A0freebsd-boot =C2=A0(512K)<br>= =C2=A0 =C2=A0 =C2=A0 533544 =C2=A0 =C2=A0 =C2=A0 =C2=A0 984 =C2=A0 =C2=A0 = =C2=A0 - free - =C2=A0(492K)<br>=C2=A0 =C2=A0 =C2=A0 534528 =C2=A0 =C2=A0 4= 194304 =C2=A0 =C2=A03 =C2=A0freebsd-swap =C2=A0(2.0G)<br>=C2=A0 =C2=A0 =C2= =A04728832 =C2=A03902300160 =C2=A0 =C2=A04 =C2=A0freebsd-zfs =C2=A0(1.8T)<b= r>=C2=A0 3907028992 =C2=A0 =C2=A0 =C2=A0 =C2=A0 143 =C2=A0 =C2=A0 =C2=A0 - = free - =C2=A0(72K) <br></div><div><br></div><div>If I want to use it with b= hyve,I do :</div><div><br></div><div>bhyve-lin -S -c sockets=3D2,cores=3D1,= threads=3D1 -m 4G -w -H -A \<br>-s 0,hostbridge \<br>-s 1,ahci-hd,/dev/da5 = \<br></div><div><br></div><div>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....<br></div><div><br></div><div class= =3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, Dec 28, 2024= at 3:13=E2=80=AFAM Steven Friedrich <<a href=3D"mailto:freebsdlouisvill= e@gmail.com" target=3D"_blank">freebsdlouisville@gmail.com</a>> wrote:<b= r></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex= ;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u> =20 =20 =20 <div> <div> <p>I have an HP Envy running FreeBSD 14.2.</p> <p>I am a bhyve noob, but I am able to create a bhyve guest, and installed freebsd 14.2 on it.</p> <p>Here's my host pci devices:</p> <p>xhci1@<a>pci0:0:20:0</a>:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 class=3D0x= 0c0330 rev=3D0x00 hdr=3D0x00 vendor=3D0x8086 device=3D0x06ed subvendor=3D0= x103c subdevice=3D0x8767<br> =C2=A0=C2=A0=C2=A0 vendor=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'Intel Co= rporation'<br> =C2=A0=C2=A0=C2=A0 device=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'Comet La= ke USB 3.1 xHCI Host Controller'<br> =C2=A0=C2=A0=C2=A0 class=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D serial b= us<br> =C2=A0=C2=A0=C2=A0 subclass=C2=A0=C2=A0 =3D USB<br> </p> <p>xhci0@<a>pci0:1:0:0</a>:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 class= =3D0x0c0330 rev=3D0x00 hdr=3D0x00 vendor=3D0x1b21 device=3D0x3242 subvendor=3D0= x1b21 subdevice=3D0x3242<br> =C2=A0=C2=A0=C2=A0 vendor=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'ASMedia = Technology Inc.'<br> =C2=A0=C2=A0=C2=A0 device=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'ASM3242 = USB 3.2 Host Controller'<br> =C2=A0=C2=A0=C2=A0 class=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D serial b= us<br> =C2=A0=C2=A0=C2=A0 subclass=C2=A0=C2=A0 =3D USB<br> <br> </p> <p>Here's my usbconfig:</p> <p>usbconfig <span style=3D"font-family:monospace"><br> ugen1.1: <Intel XHCI root HUB> at usbus1, cfg=3D0 md=3DHOST spd=3DSUPER (5.0Gbps) pwr=3DSAVE (0mA) <br> ugen0.1: <(0x1b21) XHCI root HUB> at usbus0, cfg=3D0 md=3DHOST spd=3DSUPER (5.0Gbps) pwr=3DSAVE (0mA) <br> ugen0.2: <Hub Genesys Logic, Inc.> at usbus0, cfg=3D0 md=3DHOST spd=3DSUPER (5.0Gbps) pwr=3DSAVE (0mA) <br> ugen1.2: <PixArt HP USB Optical Mouse> at usbus1, cfg=3D0 md=3DHOST spd=3DLOW (1.5Mbps) pwr=3DON (100mA) <br> ugen1.3: <Chicony HP USB Keyboard> at usbus1, cfg=3D0 md=3DHOST spd=3DLOW (1.5Mbps) pwr=3DON (100mA) <br> ugen1.4: <Realtek Bluetooth Radio> at usbus1, cfg=3D0 md=3DHOST spd=3DFULL (12Mbps) pwr=3DON (500mA) <br> ugen0.3: <PNY USB 3.2.1 FD> at usbus0, cfg=3D0 md=3DHOST spd=3DSUPER (5.0Gbps) pwr=3DON (126mA) <br> ugen0.4: <Hub Genesys Logic, Inc.> at usbus0, cfg=3D0 md=3DHOST spd=3DHIGH (480Mbps) pwr=3DSAVE (100mA)<br> <br> Originally, my </span><span style=3D"font-family:monospace">PNY </span><span style=3D"font-family:monospace">flash drive was on usbus1, but when I added </span>pptdevs=3D"0/20/0" to= =C2=A0 /boot/loader.conf, I lost my mouse and keyboard.</p> <p>Fortunately, I recently added a pcie card supporting usb 20 gbps rates.</p> <p>So I changed /boot/loader.conf to=C2=A0 pptdevs=3D"1/0/0"= ;<span style=3D"font-family:monospace"><br> </span></p> <p><span style=3D"font-family:monospace">But I don't know how to = see the PNY flash drive in the guest.=C2=A0 I was hoping I could use gpart show -l and see a /dev/da0 or /dev/da1 drive, but I don't.</span></p> <p><span style=3D"font-family:monospace">In the guest, usbconfig:</sp= an></p> <p>usbconfig <br> No device match or lack of permissions.<br> <br> and pciconf -v -l:</p> <p>pciconf -v -l<br> hostb0@<a>pci0:0:0:0</a>:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 class=3D0x0= 60000 rev=3D0x00 hdr=3D0x00 vendor=3D0x1275 device=3D0x1275 subvendor=3D0= x0000 subdevice=3D0x0000<br> =C2=A0=C2=A0=C2=A0 vendor=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'Network = Appliance Corporation'<br> =C2=A0=C2=A0=C2=A0 class=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D bridge<b= r> =C2=A0=C2=A0=C2=A0 subclass=C2=A0=C2=A0 =3D HOST-PCI<br> isab0@<a>pci0:0:1:0</a>:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 class= =3D0x060100 rev=3D0x00 hdr=3D0x00 vendor=3D0x8086 device=3D0x7000 subvendor=3D0= x0000 subdevice=3D0x0000<br> =C2=A0=C2=A0=C2=A0 vendor=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'Intel Co= rporation'<br> =C2=A0=C2=A0=C2=A0 device=C2=A0=C2=A0=C2=A0=C2=A0 =3D '82371SB = PIIX3 ISA [Natoma/Triton II]'<br> =C2=A0=C2=A0=C2=A0 class=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D bridge<b= r> =C2=A0=C2=A0=C2=A0 subclass=C2=A0=C2=A0 =3D PCI-ISA<br> virtio_pci0@<a>pci0:0:2:0</a>: class=3D0x020000 rev=3D0x00 hdr=3D0x00 vendor=3D0x1af4 device=3D0x1000 subvendor=3D0x1af4 subdevice=3D0x0001<br> =C2=A0=C2=A0=C2=A0 vendor=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'Red Hat,= Inc.'<br> =C2=A0=C2=A0=C2=A0 device=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'Virtio n= etwork device'<br> =C2=A0=C2=A0=C2=A0 class=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D network<= br> =C2=A0=C2=A0=C2=A0 subclass=C2=A0=C2=A0 =3D ethernet<br> virtio_pci1@<a>pci0:0:3:0</a>: class=3D0x010000 rev=3D0x00 hdr=3D0x00 vendor=3D0x1af4 device=3D0x1001 subvendor=3D0x1af4 subdevice=3D0x0002<br> =C2=A0=C2=A0=C2=A0 vendor=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'Red Hat,= Inc.'<br> =C2=A0=C2=A0=C2=A0 device=C2=A0=C2=A0=C2=A0=C2=A0 =3D 'Virtio b= lock device'<br> =C2=A0=C2=A0=C2=A0 class=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D mass sto= rage<br> =C2=A0=C2=A0=C2=A0 subclass=C2=A0=C2=A0 =3D SCSI<br> </p> <p>How do I fix this?<br> </p> </div> </div> </blockquote></div><div><br clear=3D"all"></div><br><span class=3D"gmail_si= gnature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature">Ma= rio.<br></div></div> </div> --00000000000003113d062a516330--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2B1FSiipSxt-Og1t_cOvy%2BXMavECDb_byScoWU2C5tw8SPr=LQ>