UDBP(4) | Device Drivers Manual | UDBP(4) |
udbp
— USB Double
Bulk Pipe driver
To compile this driver into the kernel, place the following line in your kernel configuration file:
device udbp
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
udbp_load="YES"
The udbp
driver provides support for
host-to-host cables that contain at least two bulk pipes (one for each
direction). This typically includes cables branded for use with
Windows USB
Easy Transfer, and many cables based on the Prolific PL2xx1 series
of USB bridge chips. A useful (but non-comprehensive) list of compatible USB
host cables is listed in the SEE ALSO
section below.
It requires netgraph(4) to be available. This
can be done either by adding options NETGRAPH
to
your kernel configuration file, or alternatively loading
netgraph(4) as a module, either from
/boot/loader.conf or from the command line, before
the udbp
module.
options NETGRAPH
device udbp
Add the udbp
driver to the kernel.
kldload netgraph
kldload udbp
Load the netgraph(4) module and then the
udbp
driver.
ngctl mkpeer udbp0: eiface data
ether
ifconfig ngeth0 ether
aa:dd:xx:xx:xx
ifconfig ngeth0 inet
169.254.x.x/16
Create a new Ethernet network interface node and connect its ether
hook to the data hook of the udbp
driver.
This enables FreeBSD to communicate with a Linux peer (e.g. using the plusb driver). The Linux node should be configured to prefer link-local IPv4 addresses (e.g. using Network Manager in Debian and Red Hat derived distributions).
Whilst both FreeBSD and Linux are able to interoperate by loosely following CDC EEM 1.0 in their behaviour, neither implementation has been expressly designed to follow its specification.
netgraph(4), ng_eiface(4), ohci(4), uhci(4), usb(4), ngctl(8)
Universal Serial Bus: Communications Class Subclass Specification for Ethernet Emulation Model Devices, USB Implementers Forum, Inc., Revision 1.0, http://www.usb.org/developers/docs/devclass_docs/CDC_EEM10.pdf, February 2, 2005.
Total Commander: Supported cables for USB cable connection, Ghisler Software GmbH., https://www.ghisler.com/cables/index.htm.
The point-to-point nature and additional latency of USB host-host links makes them unsuitable as a "drop-in" replacement for an Ethernet LAN; for a USB 3.0 SuperSpeed cable, latency is comparable to 100BaseTX Ethernet (but often worse), with throughput comparable to 2.5GBASE-T.
However, their energy efficiency makes them attractive for embedded applications. A Plugable PL27A1 cable claims 24mA of USB3 bus power, as compared to 150mA for a typical USB 3.0 to Gigabit Ethernet interface.
The udbp
driver first appeared in
FreeBSD 5.0.
The udbp
driver does not support the
special packets described in section 5.1 of the CDC EEM specification.
The udbp
driver was written by
Doug Ambrisko
<ambrisko@whistle.com>,
Julian Elischer
<julian@FreeBSD.org>
and Nick Hibma
<n_hibma@FreeBSD.org>.
This manual page was written by Nick Hibma <n_hibma@FreeBSD.org> and updated by Bruce Simpson <bms@FreeBSD.org>.
October 20, 2017 | Debian |