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>

next in thread | previous in thread | raw e-mail | index | archive | help
> How to best approach Mozilla IoT Gateway?

I cannot speak to the meat of this question but I'll respond to the bhyve-r=
elated 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 sli=
ghtly 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 dri=
ver. As far as I remember all that is necessary was to add three lines to /=
boot/loader.conf:

hw.vmm.amdvi.enable=3D"1" #=C2=A0AMD only: delete this line if you have an =
Intel processor.
pptdevs=3D"10/0/3"        # Change 10/0/3 to the address of your USB contro=
ller.
vmm_load=3D"YES"          #=C2=A0Load 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.]



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