MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


System Administration Commands                     cfgadmusb(1M)



NAME
     cfgadmusb - USB hardware-specific commands for cfgadm

SYNOPSIS
     /usr/sbin/cfgadm [-f] [-y  -n] [-v] -c function apid...


     /usr/sbin/cfgadm -f [-y  -n] [-v] [-o hardwareoptions]
          -x hardwarefunction apid...


     /usr/sbin/cfgadm -v [-a] [-s listingoption]
          [-l [apid  aptype...]


     /usr/sbin/cfgadm -v -h [apid]...


DESCRIPTION
     The Universal Serial  Bus  (USB)  hardware-specific  library
     /usr/lib/cfgadm/usb.so.1   provides  the  functionality  for
     administering USB devices via the cfgadm(1M) command. cfgadm
     operates on attachment points. For details regarding attach-
     ment points, refer to cfgadm(1M).


     For USB administration, the only attachment points supported
     are the ports of hubs attached to the USB bus.


     Attachment points are named  through  attachment  point  IDs
     (apids).  The USB bus is hierarchical, so the apids are as
     well. USB hubs have ports, numbered from 1  to  n.  All  USB
     apids consist of a string of the following form:

       usbN/A[.B[.C[...]




     where
       N is the Nth USB host controller on the system,
       A is port #A on the root (top) hub.
       B is port #B of the hub plugged into port #A  of  the  hub
       above it.
       C is port #C of the hub plugged into port #B  of  the  hub
       above it, and so forth.


     For example, the first port on the  root  hub  of  USB  con-
     troller 0 (the only controller), has a logical apid:




SunOS 5.11           Last change: 1 Mar 2007                    1






System Administration Commands                     cfgadmusb(1M)



       usb0/1




     Similarly, the second port on the first external hub plugged
     into  the  first  port on the root hub of the first USB con-
     troller has a logical apid:

       usb0/1.2




     For example, if the apid  is  usb0/1.4.3.4,  it  represents
     port  4  of  the  hub plugged into port 3 of the hub plugged
     into port 4 of the hub plugged into port 1 of the  root  hub
     of the first USB host controller on the system.

       example# cfgadm -l
       ApId                Type         Receptacle   Occupant     Condition
       usb0/1               USB-hub      connected    configured   ok
       usb0/2               unknown      empty        unconfigured ok
       usb0/1.1             USB-storage  connected    configured   ok
       usb0/1.2             unknown      empty        unconfigured ok
       usb0/1.3             unknown      empty        unconfigured ok
       usb0/1.4             USB-device   connected    configured   ok




     USB2.0 chips have one EHCI host USB2.0 host controller and a
     number of companion USB 1.x host controllers (either OHCI or
     UHCI host controllers).


     When a USB2.0 device has been plugged in, it shows up on the
     EHCI  logical ports which might not have a 1 to 1 mapping to
     external physical port numbers on the system.  When a USB1.x
     device  is plugged in, the EHCI host controller reroutes the
     device to a companion host controller and the  device  shows
     up on  the companion's logical port number.


     The mapping of logical port numbers to physical port numbers
     can get quite complicated. For example:

       % cfgadm
       ApId                Type         Receptacle   Occupant     Condition
       c0                   scsi-bus     connected    configured   unknown
       usb0/1               usb-mouse    connected    configured   ok
       usb0/2               usb-kbd      connected    configured   ok



SunOS 5.11           Last change: 1 Mar 2007                    2






System Administration Commands                     cfgadmusb(1M)



       usb0/3               unknown      empty        unconfigured ok
       usb0/4               usb-hub      connected    configured   ok
       usb0/4.1             unknown      empty        unconfigured ok
       usb0/4.2             unknown      empty        unconfigured ok
       usb0/4.3             unknown      empty        unconfigured ok
       usb0/4.4             usb-storage  connected    configured   ok
       usb1/1               unknown      empty        unconfigured ok
       usb1/2               unknown      empty        unconfigured ok
       usb1/3               unknown      empty        unconfigured ok
       usb2/1               unknown      empty        unconfigured ok
       usb2/2               usb-device   connected    configured   ok
       usb3/1               unknown      empty        unconfigured ok
       usb3/2               unknown      empty        unconfigured ok
       usb3/3               unknown      empty        unconfigured ok
       usb3/4               unknown      empty        unconfigured ok
       usb3/5               unknown      empty        unconfigured ok




     In this example usb0 is the onboard USB 1.x host controller.
     usb1 and usb2 are companion OHCI USB1.x host controllers and
     usb3 is an EHCI USB2.0 host controller.


     The following table shows the somewhat confusing routing for
     this USB2.0 chip:

       logical port number      physical port number
       -------------------      --------------------
            usb1/1              internal port 1
            usb1/2              external port 1
            usb1/3              external port 3

            usb2/1              internal port 2
            usb2/2              external port 2

            usb3/1              internal port 1
            usb3/2              internal port 2
            usb3/3              external port 1
            usb3/4              external port 2
            usb3/5              external port 3




     Unfortunately, the exact routing can often  only  be  deter-
     mined by experimentation.


     The receptacle states for attachment points at the USB  port
     have the following meanings:



SunOS 5.11           Last change: 1 Mar 2007                    3






System Administration Commands                     cfgadmusb(1M)



     connected

         USB port is powered on and  enabled.  A  USB  device  is
         plugged  in  to  the  port. The device is logically con-
         nected to the USB bus.


     disconnected

         USB port is powered on and  enabled.  A  USB  device  is
         plugged  into  the  port.  The device has been logically
         disconnected from the  USB  bus  (using  the  cfgadm  -c
         disconnect command).


     empty

         USB port is powered on, but no device is plugged  in  to
         it.



     The occupant states  for  devices  at  USB  port  attachment
     points at the USB port have the following meanings:

     configured

         The USB device at the USB port is configured and  usable
         by Solaris.


     unconfigured

         The USB device at the USB port was explicitly  off-lined
         using  cfgadm  -c  unconfigure,  or was not successfully
         configured for use with Solaris, for example, having  no
         driver or a device problem.



     The attachment point conditions are:

     ok

         Normal state - ready for use.


     failing

         Not used.





SunOS 5.11           Last change: 1 Mar 2007                    4






System Administration Commands                     cfgadmusb(1M)



     failed

         Not used.


     unusable

         The user has physically removed a device while an appli-
         cation  had  the device open (there might be outstanding
         I/O). Users need to reinsert the  same  physical  device
         and  close  the application properly before removing the
         device again. The port cannot configure  other  inserted
         devices until this is done.

         If the original device cannot  be  reinserted  into  the
         port,  see  the   for  instructions  for  clearing  this
         attachment point condition.


     unknown

         Not used.



     A USB device can be hotplugged or hotunplugged at any  time,
     and  the  system detects the event and takes the appropriate
     action.


     It is not  necessary  to  transition  a  receptacle  to  the
     disconnected  state before removing its device from the USB.
     However,  it  is  not  recommended  to  hot-remove   devices
     currently  in  use (such as removable disks currently opened
     by a volume manager or some other application).

OPTIONS
     cfgadm defines several types of operations. These operations
     include  invoking configuration state changes (-c), invoking
     hardware-specific functions (-x), and  obtaining  configura-
     tion administration help messages (-h).


     If any of these operations fail, the device  and  attachment
     point  might not be in the expected state. Use the cfgadm -l
     command to display the device's current status.


     All other options  have  the  same  meaning  as  defined  in
     cfgadm(1M).





SunOS 5.11           Last change: 1 Mar 2007                    5






System Administration Commands                     cfgadmusb(1M)



     The following options are supported:

     -c function

         The following generic commands are defined for  the  USB
         hardware  specific  library. The following configuration
         state change operations are supported:

         configure

             If there is a USB device plugged into the port, this
             command  attempts to configure it and set everything
             up so that it is usable  by  Solaris.  This  command
             does  an  implied connect (reverse of disconnect) if
             necessary. This command  accomplishes  nothing,  and
             returns an error message, if the device at that port
             is already configured. After successful execution of
             this  command,  the  device  is  ready for use under
             Solaris.


         disconnect

             Performs an unconfigure on the apid (if it  is  not
             already  unconfigured),  and  then  transitions  the
             receptacle to the disconnected state, even though  a
             device  is still be plugged into the port. Issuing a
             cfgadm -c configure, or physically  hotplugging  the
             device,  brings  the  device  back  to the connected
             receptacle state, and  to  the  configured  occupant
             state,  assuming a driver can be found and there are
             no problems enumerating and configuring the device.


         unconfigure

             Makes the device plugged into the port  unusable  by
             Solaris  (offline it). If successful, cfgadm reports
             this apid's occupant state as unconfigured. Issuing
             a  configure to the apid (if successful) brings its
             occupant back to the configured (online)  condition,
             as it physically hotplugging the device on the port.



     -f

         Not supported.


     -h apid




SunOS 5.11           Last change: 1 Mar 2007                    6






System Administration Commands                     cfgadmusb(1M)



         USB specific help can be  obtained  by  using  the  help
         option with any USB attachment point.


     -l[v]

         The -l option works as  described  in  cfgadm(1M).  When
         paired  with  the  -v option, the Information field con-
         tains the following USB-specific information:

             o    Mfg: manufacturer string (iManufacturer)

             o    Product: product string (iProduct)

             o    NConfigs: total number  of  configurations  the
                  device supports (bNumConfigurations).

             o    Config:  current   configuration   setting   in
                  decimal (configuration index, not configuration
                  value).

             o    The configuration  string  descriptor  for  the
                  current configuration (iConfiguration)
         See  the  Universal  Serial  Bus  specification  for   a
         description of these fields.


     -o hardwareoptions

         Hardware options are only supported  for  the  hardware-
         specific  command, -x usbconfig. See the description of
         that command below for an  explanation  of  the  options
         available.


     -s listingoptions

         Attachment points of class USB can be  listed  by  using
         the select sub-option. See cfgadm(1M).


     -x hardwarefunction

         The following hardware-specific functions are defined:

         usbconfig -o config=n

             This command requires the mandatory config value  to
             be specified using the -o option.

             Sets the USB configuration of a  multi-configuration
             USB  device  at  apid to configuration index n. The



SunOS 5.11           Last change: 1 Mar 2007                    7






System Administration Commands                     cfgadmusb(1M)



             device is set to this configuration  henceforth  and
             this  setting  persists across reboots, hot-removes,
             and unconfigure/configure of the device.

             Valid values of n range from 0 to (Nconfigs -1). The
             device  is  reset by a disconnect followed by a con-
             figure. The configure causes the device to  be  con-
             figured to the new configuration setting.

             If any of these steps fail, the  configuration  file
             and  the device are restored to their previous state
             and an error message is issued.


         usbreset

             Performs a software reset  (re-enumeration)  of  the
             device.  This is the equivalent of removing the dev-
             ice and inserting it back again. The port on the hub
             is power cycled if the hub supports power cycling of
             individual ports.

             If the connected device is a hub, this function  has
             the  effect  of  resetting  that hub and any devices
             down the tree of which it is the root.

             If any of these steps fail, the device  is  restored
             to  its  previous  state  and  an  error  message is
             issued.




     State table: attachment points state versus commands:

       Valid states:
           empty/unconfigured         -> no device connected

           disconnected/unconfigured  -> logically disconnected,
                                         unavailable,
                                         devinfo node removed,
                                         device physically connected

           connected/unconfigured     -> logically connected,
                                         unavailable,
                                         devinfo node present

           connected/configured       -> connected, available







SunOS 5.11           Last change: 1 Mar 2007                    8






System Administration Commands                     cfgadmusb(1M)



     The table below clarifies the  state  transitions  resulting
     from actions or commands:

       current state      operation           new state
       -------------      ---------           ---------
       empty/
       unconfigured:
                     device plugged in:     connected/configured or
                                            connected/unconfigured
                                            (if enumeration failed)
                     device removed:        n/a
                     cfgadm -c unconfigure: empty/unconfigured
                     cfgadm -c configure:   empty/unconfigured
                     cfgadm -c disconnect:  empty/unconfigured
                                            (no-op and error)

       disconnected/
       unconfigured:
                     device plugged in:     n/a
                     device removed:        empty/unconfigured
                     cfgadm -c unconfigure: disconnected/unconfigured
                     cfgadm -c configure:   connected/configured, or
                                            connected/unconfigured
                                            (if reenumeration failed)
                    cfgadm -c disconnect:   disconnected/unconfigured

       connected/unconfigured:
                    device plugged in:      n/a
                    device removed:         empty/unconfigured
                    cfgadm -c unconfigure:  connected/unconfigured
                    cfgadm -c configure:    connected/configured, or
                                            connected/unconfigured
                                            (if reenumeration failed)
                    cfgadm -c disconnect:   disconnected/unconfigured

       connected/configured:
                    device plugged in:      n/a
                    device removed:         empty/unconfigured or
                                            connected/configured,
                                            but with ap condition
                                            'unusable' if device
                                            was open when removed
                    cfgadm -c unconfigure:  connected/unconfigured
                    cfgadm -c configure:    connected/configured
                    cfgadm -c disconnect:   disconnected/unconfigured



EXAMPLES
     Example 1 Listing the Status of All USB Devices





SunOS 5.11           Last change: 1 Mar 2007                    9






System Administration Commands                     cfgadmusb(1M)



     The following command lists the status of all USB devices on
     the system:


       # cfgadm
       ApId           Type         Receptacle   Occupant     Condition
       usb0/1          USB-hub      connected    configured   ok
       usb0/2          unknown      empty        unconfigured ok
       usb0/1.1        USB-storage  connected    configured   ok
       usb0/1.2        unknown      empty        unconfigured ok
       usb0/1.3        unknown      empty        unconfigured ok
       usb0/1.4        USB-device connected    configured   ok




     Notice that cfgadm treats the  USB-device  device  at  apid
     usb0/1.4 as a single unit, since it cannot currently control
     individual interfaces.


     Example 2 Listing the  Status  of  a  Port  with  No  Device
     Plugged In


     The following command lists the status of  a  port  with  no
     device plugged in:


       example# cfgadm -l usb0/1.3
       ApId           Type         Receptacle   Occupant     Condition
       usb0/1.3        unknown      empty        unconfigured ok



     Example 3 Listing the Status of the Same Port with a  Device
     Plugged In


     The following command lists the  status  of  the  same  port
     after  physically  plugging  in  a  device  that  configures
     without problems:


       example# cfgadm -l usb0/1.3
       ApId           Type         Receptacle   Occupant     Condition
       usb0/1.3        USB-hub      connected    configured   ok



     Example 4 Unconfiguring an Existing USB Device




SunOS 5.11           Last change: 1 Mar 2007                   10






System Administration Commands                     cfgadmusb(1M)



     The following command unconfigures the USB  device  attached
     to usb0/1.3, then displays the status of the apid:


       example# cfgadm -c unconfigure usb0/1.3
       Unconfigure the device: /devices/pci@0,0/pci8086,7112@7,2/hub@2:2.3
       This operation suspends activity on the USB device
       Continue (yes/no)?

       Enter:

       y

       example# cfgadm -l usb0/1.3
       ApId           Type         Receptacle   Occupant     Condition
       usb0/1.3        unknown      connected    unconfigured ok



     Example  5  Unconfiguring  and  Logically  Disconnecting  an
     Existing USB Device


     The following command unconfigures and logically disconnects
     a USB device attached to usb0/1.3:


       example# cfgadm -c disconnect usb0/1.3
       Disconnect the device: /devices/pci@0,0/pci8086,7112@7,2/hub@2:2.3
       This operation suspends activity on the USB device
       Continue (yes/no)?

       Enter:

       y

       example# cfgadm -l usb0/1.3
       ApId         Type         Receptacle     Occupant        Condition
       usb0/1.3      unknown      disconnected   unconfigured    ok




     A disconnect implies that cfgadm does an unconfigure  first.
     The  receptacle  status  now shows disconnected, even though
     the device is still physically connected. In  this  case,  a
     physical  hotplug  or  using  the cfgadm -c configure on the
     apid brings it back on-line.


     Example 6 Configuring a Previously Unconfigured USB Device




SunOS 5.11           Last change: 1 Mar 2007                   11






System Administration Commands                     cfgadmusb(1M)



     The following command configures a USB device that was  pre-
     viously attached to usb0/1.3:


       example # cfgadm -yc configure usb0/1.3
       example# cfgadm -l usb0/1.3
       ApId           Type         Receptacle   Occupant     Condition
       usb0/1.3        unknown      connected    configured   ok



     Example 7 Resetting a USB Device


     The following command resets a USB device:


       example# cfgadm -x usbreset usb0/1.3
       Reset the device: /devices/pci@0,0/pci8086,7112@7,2/hub@2:2.3
       This operation suspends activity on the USB device
       Continue (yes/no)?

       Enter:

       y



     Example 8 Displaying Detailed Information About a USB Device


     The following command displays detailed information about  a
     USB  device.  This  device  shows the following USB-specific
     information in the 'Information' field:


         o    Manufacturer string: Iomega

         o    Product string: USB Zip 250

         o    Number of configurations supported: 1

         o    Configuration currently active: 0

         o    Configuration string descriptor  for  configuration
              0: Default

       example# cfgadm -lv  usb0/1.5
       ApId                 Receptacle   Occupant     Condition  Information
       When         Type         Busy         PhysId
       usb0/1.5     connected    configured   ok         Mfg:"Io
       mega"  Product:"USB Zip 250"  NConfigs:1  Config:0 : Default



SunOS 5.11           Last change: 1 Mar 2007                   12






System Administration Commands                     cfgadmusb(1M)



       example# cfgadm -l -s "cols=apid:info" usb0/1.5
       ApId                         Information
       usb0/1.5                      Mfg:"Iomega"  Product:"USB Zip 250"
       NConfigs:1  Config:0 : Default



     Example 9 Displaying Detailed Information About All USB Dev-
     ices


     The following command displays  detailed  information  about
     all USB devices on the system:


       example# cfgadm -l -s "select=class(usb),cols=apid:info"
       ApId                         Information
       usb0/1                        Mfg:  Product:
       NConfigs:1  Config:0 
       usb0/2
       usb0/1.1                      Mfg:  Product:
       NConfigs:1  Config:0 
       usb0/1.2
       usb0/1.3
       usb0/1.4                      Mfg:"Wizard"  Product:"Modem/ISDN"
       NConfigs:3  Config:1 : V.90 Analog Modem
       usb0/1.5                      Mfg:"Iomega"  Product:"USB Zip 250"
       NConfigs:1  Config:0 : Default
       usb0/1.6                      Mfg:"SOLID YEAR"  Product:"SOLID YEAR
       USB"NConfigs:1  Config:0 
       usb0/1.7




     Lines containing only an apid are empty ports. These can be
     filtered  out.  This example only lists USB apids with con-
     nected devices, and information about those devices.


       example# cfgadm -l -s "select=class(usb),cols=apid:info"  grep Mfg
       usb0/1                        Mfg:  Product:
       NConfigs:1  Config:0 
       usb0/1.1                      Mfg:  Product:
       NConfigs:1  Config:0 
       usb0/1.4                      Mfg:"Wizard"  Product:"Modem/ISDN"
       NConfigs:3  Config:1 : V.90 Analog Modem
       usb0/1.5                      Mfg:"Iomega"  Product:"USB Zip 250"
       NConfigs:1  Config:0 : Default
       usb0/1.6                      Mfg:"SOLID YEAR"  Product:"SOLID YEAR USB"
       Config:0 




SunOS 5.11           Last change: 1 Mar 2007                   13






System Administration Commands                     cfgadmusb(1M)



     Example 10 Listing Information About  a  Multi-configuration
     USB Device


     The following  example  lists  information  about  a  multi-
     configuration USB device.



     Notice the NConfigs field: the configurations available  for
     this device are 0, 1, and 2 (0 to (NConfigs-1)).


       example# cfgadm -l -s "cols=apid:info" usb0/1.4
       ApId                         Information
       usb0/1.4                      Mfg:"Wizard"  Product:"Modem/ISDN"
       NConfigs:3  Config:1 V.90 Analog Modem"



     Example 11 Setting the Current  Configuration  of  a  Multi-
     configuration USB Device


     The following example sets the current  configuration  of  a
     multi-configuration USB device:


       example# cfgadm -o config=2 -x usbconfig usb0/1.4
       Setting the device: /devices/pci@1f,2000/usb@1/device@3
       to USB configuration 2
       This operation suspends activity on the USB device
       Continue (yes/no)?

       Enter:

       y

       USB configuration changed successfully.




     The device path should be checked to ensure that  the  right
     instance of a device is being referred to, in the case where
     multiple devices of the exact same type are on the same bus.
     This information is available in the 'Information' field.


FILES
     /usr/lib/cfgadm/usb.so.1




SunOS 5.11           Last change: 1 Mar 2007                   14






System Administration Commands                     cfgadmusb(1M)



         Hardware  specific  library  for  generic   USB   device
         administration


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Availability                 SUNWcsl                     
    


SEE ALSO
     cfgadm(1M),      configadmin(3CFGADM),       attributes(5),
     scsa2usb(7D), usba(7D)


     Universal Serial Bus 1.1 Specification (www.usb.org)


NOTES
     cfgadm(1M) can not unconfigure, disconnect, reset, or change
     the  configuration of any USB device currently opened by any
     application. These operations also fail on a hub if a device
     in   its   hierarchy   is  opened  by  an  application.  See
     scsa2usb(7D) for unconfiguring  a  USB  mass-storage  device
     that is currently in use.


     Only super-users can execute any functions on an  attachment
     point.  However,  one  need  not be a super-user to list the
     attachment points.


















SunOS 5.11           Last change: 1 Mar 2007                   15



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™