Repo: pci userspace
Clone this wiki locally
This wiki page describes pci-userspace.
The repository contains support for running NetBSD kernel PCI device drivers in rump kernels in userspace. Support is generic, so more or less any device driver could work, though currently the build infra offers only a handful of drivers.
- Linux (via uio_pci_generic). Devices with only MSI/MSI-X interrupts are not supported (limitation of uio_pci_generic).
The build procedure is standard in that it's done using
As of writing this, you need a buildrump.sh build which uses NetBSD HEAD sources (HEAD as of when you're reading this text ;-). We will not cover that here, it's documented in the buildrump.sh wiki.
To build the drivers, run
buildrump.sh in the repo's
src-linux-uio$ rumpmake dependall [build output omitted] src-linux-uio$ rumpmake install
Then, if you want, you can build the examples in the
examples$ rumpmake dependall
There are two parts to running.
First, your host must be configured correctly for the rump kernel to be able to access the desired PCI device. That part is documented here.
Second, you must configure the rump kernel to do whatever you want to do with the device. That is a very open-ended task, but for example configuring a 802.11 adapter to access a WPA-protected network is documented here.