glenda.party
term% ls -F
term% pwd
$home/manuals/9front/4/nusb
term% cat index.txt
NUSB(4)                    Kernel Interfaces Manual                    NUSB(4)



NAME
       audio,  disk, ether, kb, serial, ptp, usbd - Universal Serial Bus driv‐
       ers

SYNOPSIS
       nusb/audio devid

       nusb/disk [ -d ] devid

       nusb/ether [ -dD ] [ -t ethertype ] [ -a addr ] devid

       nusb/kb [ -d ] devid

       nusb/serial [ -d ] devid

       nusb/ptp [ -dD ] devid

       nusb/usbd [ -dD ]

DESCRIPTION
       These programs drive USB devices of specific classes via usb(3).   Usu‐
       ally they are started by nusbrc(8) upon attachment of the device to the
       bus. All drivers except usbd take the decimal usb devid of  the  device
       they  should  handle as ther last argument. A driver's instance handles
       only one device at a time.

       Drivers that provide file systems make them available as  shares  under
       /shr (see shr(3)) or /shr/usb (which is bound after /dev by nusbrc(8)).

       Options  -d  and -D trigger debug diagnostics and file system debugging
       diagnostics for most drivers. Repeating any one of these  may  increase
       verbosity.

   Hubs
       Usbd  enumerates  the tree of USB hubs and configures the device on at‐
       tachment. It provides a filesystem with the file usbevent (usually seen
       as /dev/usbevent) which, when read, returns a 6 column, space separated
       line of text, one for each event. The columns  are:  attach  or  detach
       followed  by  addr vid did csp and hname .  The addr is the decimal de‐
       vice address assigned.  Vid and did are formatted as 4 digit  hexadeci‐
       mal.   Csp  is the device class, subclass, protocol indentifier formatd
       as 6 digit hexadecimal.  Usbd assigns a stable device unique name based
       on  the device descriptor for hname .  This information is read by nus‐
       brc(8) and the addr and hname are passed to a suitable driver as  devid
       in the form addr:hname

   Keyboards and mice
       Kb supports USB keyboards and mice either as separate USB devices or as
       a single combined USB device.  Scan codes from the keyboard are sent to
       /dev/kbin  to  let  kbdfs(8)  process  them.   Mouse events are sent to
       /dev/mousein in the same way.

   Disks
       Disk configures and manages USB mass storage  devices.  It  provides  a
       file  system  (usually seen under /dev) that includes one directory per
       storage device, named sdUN[.M] in correspondence with  the  usb  device
       unique name and the storage unit number (or LUN). The LUN is omited for
       single lun devices.

       The storage device directory contains the usual files served by  sd(3):
       data, raw, and ctl.

       The ctl file supplies the device geometry and partitions when read.

   Ethernet
       Ether handles USB ethernet devices. The file system provided is compat‐
       ible to ether(3) and added to the share usbnet (see  shr(3))  which  is
       bound   after   /net   by  nusbrc(8)  so  the  device  will  appear  as
       /net/etherUN.  Without specifying the -t option, the device is  assumed
       to  be  a  CDC  compliant  ethernet communication device. Other devices
       might require setting an  explicit  ethertype,  such  as  rndis,  smsc,
       a88772  or a88178 (see nusbrc(8)).  On devices that support it, the mac
       address can be set using the -a addr option.

   Serial and JTAG ports
       Serial provides a file system (usually seen under /dev)  that  includes
       one  directory  per USB serial port, named eiaUN or eiaUN[.M].  In this
       directory there are two files, eiaU, similar to eiaN  in  uart(3),  and
       eiaUctl,  which admits writes in the same format as eiaNctl in uart(3).
       Reading from eiaUctl gives the serial port's settings in the same  for‐
       mat as eiaNstatus in uart(3).  Options are similar to those of disk.

       JTAG ports are similar but the files are named jtag and jtagctl.

   Audio devices
       Audio  configures and manages a USB audio device.  It implements a file
       system, (normally seen under /dev) compatible to audio(3).

SOURCE
       /sys/src/cmd/nusb

SEE ALSO
       audio(3), ether(3), mouse(3),  sd(3),  uart(3),  usb(3),  shr(3),  nus‐
       brc(8), kbdfs(8)

BUGS
       The  various  device  drivers are generic USB drivers and may work only
       for certain devices of each class.

       USB ATA storage devices are not supported.

       The serial driver works only for the Prolific chip and Ftdi,  and  con‐
       trol  of the dcd and dsr signals and some of the extra features are not
       implemented.  For Ftdi, only the  Sheevaplug  and  Guruplug  have  been
       tried.  There is support for the EHCI debug port, but it loses bytes.



                                                                       NUSB(4)