Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Dec 2024 21:10:46 -0500
From:      Steven Friedrich <freebsdlouisville@gmail.com>
To:        freebsd-virtualization@freebsd.org
Subject:   usb devices passthrough in bhyve
Message-ID:  <5cd601ba-560d-4252-9f17-7c450cf5d66d@gmail.com>
In-Reply-To: <7dabef84-a572-4ded-a676-c73011b37e3c@gmail.com>
References:  <7dabef84-a572-4ded-a676-c73011b37e3c@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------5Ft0IJWG0bfMxH5LyjdMg8Zj
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

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?

--------------5Ft0IJWG0bfMxH5LyjdMg8Zj
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-forward-container">
      <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 class="moz-txt-link-freetext" href="pci0:0:20:0"
          moz-do-not-send="true">pci0:0:20:0</a>:      class=0x0c0330
        rev=0x00 hdr=0x00 vendor=0x8086 device=0x06ed subvendor=0x103c
        subdevice=0x8767<br>
            vendor     = 'Intel Corporation'<br>
            device     = 'Comet Lake USB 3.1 xHCI Host Controller'<br>
            class      = serial bus<br>
            subclass   = USB<br>
      </p>
      <p>xhci0@<a class="moz-txt-link-freetext" href="pci0:1:0:0"
          moz-do-not-send="true">pci0:1:0:0</a>:       class=0x0c0330
        rev=0x00 hdr=0x00 vendor=0x1b21 device=0x3242 subvendor=0x1b21
        subdevice=0x3242<br>
            vendor     = 'ASMedia Technology Inc.'<br>
            device     = 'ASM3242 USB 3.2 Host Controller'<br>
            class      = serial bus<br>
            subclass   = USB<br>
        <br>
      </p>
      <p>Here's my usbconfig:</p>
      <p>usbconfig <span style="font-family:monospace"><br>
          ugen1.1: &lt;Intel XHCI root HUB&gt; at usbus1, cfg=0 md=HOST
          spd=SUPER (5.0Gbps) pwr=SAVE (0mA) <br>
          ugen0.1: &lt;(0x1b21) XHCI root HUB&gt; at usbus0, cfg=0
          md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) <br>
          ugen0.2: &lt;Hub Genesys Logic, Inc.&gt; at usbus0, cfg=0
          md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) <br>
          ugen1.2: &lt;PixArt HP USB Optical Mouse&gt; at usbus1, cfg=0
          md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA) <br>
          ugen1.3: &lt;Chicony HP USB Keyboard&gt; at usbus1, cfg=0
          md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA) <br>
          ugen1.4: &lt;Realtek Bluetooth Radio&gt; at usbus1, cfg=0
          md=HOST spd=FULL (12Mbps) pwr=ON (500mA) <br>
          ugen0.3: &lt;PNY USB 3.2.1 FD&gt; at usbus0, cfg=0 md=HOST
          spd=SUPER (5.0Gbps) pwr=ON (126mA) <br>
          ugen0.4: &lt;Hub Genesys Logic, Inc.&gt; at usbus0, cfg=0
          md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA)<br>
          <br>
          Originally, my </span><span style="font-family:monospace">PNY
        </span><span style="font-family:monospace">flash drive was on
          usbus1, but when I added </span>pptdevs="0/20/0" to 
        /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  pptdevs="1/0/0"<span
          style="font-family:monospace"><br>
        </span></p>
      <p><span style="font-family:monospace">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.</span></p>
      <p><span style="font-family:monospace">In the guest, usbconfig:</span></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 class="moz-txt-link-freetext" href="pci0:0:0:0"
          moz-do-not-send="true">pci0:0:0:0</a>:      class=0x060000
        rev=0x00 hdr=0x00 vendor=0x1275 device=0x1275 subvendor=0x0000
        subdevice=0x0000<br>
            vendor     = 'Network Appliance Corporation'<br>
            class      = bridge<br>
            subclass   = HOST-PCI<br>
        isab0@<a class="moz-txt-link-freetext" href="pci0:0:1:0"
          moz-do-not-send="true">pci0:0:1:0</a>:       class=0x060100
        rev=0x00 hdr=0x00 vendor=0x8086 device=0x7000 subvendor=0x0000
        subdevice=0x0000<br>
            vendor     = 'Intel Corporation'<br>
            device     = '82371SB PIIX3 ISA [Natoma/Triton II]'<br>
            class      = bridge<br>
            subclass   = PCI-ISA<br>
        virtio_pci0@<a class="moz-txt-link-freetext" href="pci0:0:2:0"
          moz-do-not-send="true">pci0:0:2:0</a>: class=0x020000 rev=0x00
        hdr=0x00 vendor=0x1af4 device=0x1000 subvendor=0x1af4
        subdevice=0x0001<br>
            vendor     = 'Red Hat, Inc.'<br>
            device     = 'Virtio network device'<br>
            class      = network<br>
            subclass   = ethernet<br>
        virtio_pci1@<a class="moz-txt-link-freetext" href="pci0:0:3:0"
          moz-do-not-send="true">pci0:0:3:0</a>: class=0x010000 rev=0x00
        hdr=0x00 vendor=0x1af4 device=0x1001 subvendor=0x1af4
        subdevice=0x0002<br>
            vendor     = 'Red Hat, Inc.'<br>
            device     = 'Virtio block device'<br>
            class      = mass storage<br>
            subclass   = SCSI<br>
      </p>
      <p>How do I fix this?<br>
      </p>
    </div>
  </body>
</html>

--------------5Ft0IJWG0bfMxH5LyjdMg8Zj--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5cd601ba-560d-4252-9f17-7c450cf5d66d>