logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

usb_template — USB device side templates

Description

       The  usb_template  module implements various USB templates that are needed when programming an USB device
       side driver.  A USB template consists of  an  USB  device  descriptor,  one  or  more  USB  configuration
       descriptors, one or more USB interface descriptors, one or more USB endpoint descriptors, USB strings and
       additional  USB descriptors.  USB templates are selected using the hw.usb.template sysctl and tunable, or
       by using  the  usbconfig(8)  set_template  subcommand.   Changing  the  hw.usb.template  sysctl  triggers
       reenumeration  by  the  USB  host;  changes  to  other  sysctls  may  not  be  visible  to the host until
       reenumeration is performed.

       Available templates are:

          ValueDescription
          0        USB Mass Storage, see cfumass(4)
          1        CDC Ethernet, see cdce(4)
          2        Media Transfer Protocol (MTP)
          3        USB serial port, see umodem(4)
          4        USB audio
          5        USB keyboard
          6        USB mouse
          7        USB phone
          8        CDC Ethernet and serial port
          9        USB MIDI
          10       CDC Ethernet, serial port, and storage
          11       CDC Ethernet Emulation Model, see cdceem(4)

History

       The usb_template module was written by Hans Petter Selasky <hselasky@FreeBSD.org>.

Debian                                           August 7, 2019                                  USB_TEMPLATE(4)

Name

       usb_template — USB device side templates

See Also

cfumass(4), usb(4), usfs(4), usbconfig(8)

Standards

       The usb_template module complies to the USB 1.0, 2.0 and 3.0 standard.

Synopsis

       To compile this module into the kernel, place the following line in your kernel configuration file:

             deviceusb_template

       To load the module at boot time, place the following line in loader.conf(5):

             usb_template_load="YES"

Sysctl Variables

       The following variables are available as both sysctl(8) variables and loader(8) tunables:

       hw.usb.template
               Currently selected template.  Set to -1 to make the device disappear from the USB host  point  of
               view.

       hw.usb.template_power
               USB bus power consumption in mA at 5V.  Must be between 0 and 500.  Setting to 0 marks the device
               as self-powered.  Defaults to 500mA.

       hw.usb.templates.N
               Configuration for template number N.

       hw.usb.templates.N.vendor_id
               16-bit vendor identifier (VID), usually assigned by USB-IF.

       hw.usb.templates.N.product_id
               16-bit product identifier (PID).

       hw.usb.templates.N.manufacturer
               String containing human-readable manufacturer name.

       hw.usb.templates.N.product
               String containing human-readable product name.

See Also