Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Jun 2019 22:21:53 +0000
From:      Robert Crowston <crowston@protonmail.com>
To:        Grzegorz Junka <list1@gjunka.com>
Cc:        "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org>
Subject:   Re: WebThings on bhyve and USB
Message-ID:  <KgkyaaKnlZmNlWxiA1k4IjLj6aMykeqEjNsopR0x2LRgpALUbaQnrGkfkxq7ao90EVvlGdYnP-ZczwWSrrppM28nPeKF1arQHI9fgskVtFE=@protonmail.com>
In-Reply-To: <ff84b426-4e1d-9949-237a-1e106276cbb2@gjunka.com>
References:  <ff84b426-4e1d-9949-237a-1e106276cbb2@gjunka.com>

index | next in thread | previous in thread | raw e-mail

> How to best approach Mozilla IoT Gateway?

I cannot speak to the meat of this question but I'll respond to the bhyve-related questions.

> I would need to somehow pass the USB ports to bhyve, so that Linux can
> pass them to the docker container. I heard it's not possible to pass
> specific USB ports but instead the whole PCI has to be passed

Yes, you can pass through a whole USB controller, not its individual ports. In practice therefore you will probably need at least two USB controllers on your system, unless it is headless.

> and it seems to be as complex as it sounds:

I think the complexity is overstated in the article. A better (although slightly out-of-date) guide is https://wiki.freebsd.org/bhyve/pci_passthru.

In particular I did not have to recompile the kernel or remove the xhci driver. As far as I remember all that is necessary was to add three lines to /boot/loader.conf:

hw.vmm.amdvi.enable="1" # AMD only: delete this line if you have an Intel processor.
pptdevs="10/0/3"        # Change 10/0/3 to the address of your USB controller.
vmm_load="YES"          # Load the bhyve kernel module on boot.

[There are some other caveats, for instance you may need to enable directed i/o virtualization in your BIOS.]


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?KgkyaaKnlZmNlWxiA1k4IjLj6aMykeqEjNsopR0x2LRgpALUbaQnrGkfkxq7ao90EVvlGdYnP-ZczwWSrrppM28nPeKF1arQHI9fgskVtFE=>