cfumass
— USB
device side support for Mass Storage Class Transport
This driver can be compiled into the kernel by placing these lines
in the kernel configuration file:
device usb
device usb_template
device ctl
device cfumass
The driver module can also be loaded at boot by adding this line
to
loader.conf(5):
The cfumass
driver provides device side
support for emulating an USB mass storage device compliant with the USB Mass
Storage Class Bulk-Only (BBB) Transport specification, implemented as a
ctl(4)
frontend driver.
To use cfumass
:
cfumass
must be loaded as a module or compiled
into the kernel.
- The USB Mass Storage template must be chosen by setting the
hw.usb.template sysctl to 0.
- The USB OTG port must be working in USB device-side mode. This happens
automatically upon connection to a USB host.
- There must be a
ctl(4)
LUN configured for the cfumass port.
Upon loading, the driver creates a
ctl(4)
port named cfumass, presenting the first LUN mapped
for that port - usually LUN 0 - to the USB host. See
ctl.conf(5)
and
ctld(8)
for details on configuring the LUN. See the
cfumass_enable
and
cfumass_dir
rc(8)
variables in
rc.conf(5)
for an automated way to configure it at boot.
These variables are available as both
sysctl(8)
variables and
loader(8)
tunables:
- hw.usb.cfumass.debug
- Verbosity level for log messages from the
cfumass
driver. Set to 0 to disable logging or 1 to warn about potential problems.
Larger values enable debugging output. Defaults to 1.
- hw.usb.cfumass.ignore_stop
- Ignore START STOP UNIT SCSI commands with START and LOEJ bits cleared.
Some initiators send that command to stop the target when the user
attempts to gracefully eject the drive, but fail to start it when the
drive is reconnected. Set to 0 to handle the command in a
standards-compliant way, 1 to ignore it and log a warning, or 2 to ignore
it silently. Defaults to 1.
- hw.usb.cfumass.max_lun
- Max LUN number to report to the initiator (USB host). Must be between 0
and 15. Some initiators incorrectly handle values larger than 0. Defaults
to 0.
The cfumass
driver first appeared in
FreeBSD 11.1.
The cfumass
driver was developed by
Edward Tomasz Napierala
<trasz@FreeBSD.org>
under sponsorship from the FreeBSD Foundation.