sgen(4d) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

sgen(4d)

sgen(4D)                  Device Drivers & /dev files                 sgen(4D)

NAME
       sgen - Generic SCSI device driver

SYNOPSIS
       #include <sys/scsi/targets/sgendef.h>


       sgen@target,lun:<devtype>

DESCRIPTION
       The sgen driver exports the uscsi(4I) interfaces to user processes. The
       sgen driver can be configured to bind to SCSI devices for which no sys‐
       tem driver is available. Examples of such devices include SCSI scanners
       and SCSI processor devices.

SECURITY
       Typically, drivers which export the uscsi(4I) interface unconditionally
       require  that  the  user present superuser credentials. The sgen driver
       does not, and relies on the filesystem permissions on its  device  spe‐
       cial  file  to govern who may access that device. By default, access is
       restricted and device nodes created by the sgen driver are readable and
       writable exclusively by the superuser.


       It is important to understand that SCSI devices coexisting on the  same
       SCSI bus may potentially interact with each other. This may result from
       firmware  bugs  in  SCSI devices, or may be made to happen programmati‐
       cally by sending appropriate SCSI commands to  a  device.  Potentially,
       any  application controlling a device via the sgen driver can introduce
       data integrity or security problems in that device or any other  device
       sharing the same SCSI bus.


       Granting  unprivileged  users  access to an sgen-controlled SCSI device
       may create other problems. It may be possible for a user to instruct  a
       target  device  to  gather  data from another target device on the same
       bus. It may also  be  possible  for  malicious  users  to  install  new
       firmware  onto  a  device to which they are granted access. In environ‐
       ments where security is a concern but user access to devices controlled
       by the sgen driver is nonetheless desired, it is recommended  that  the
       devices  be separated onto a dedicated SCSI bus to mitigate the risk of
       data corruption and security violations.

CONFIGURATION
       The sgen driver is configurable via the sgen.conf file. In addition  to
       standard  SCSI  device configuration directives (see scsi(5)), adminis‐
       trators can set several additional properties for the sgen driver.


       By default, the sgen driver will not claim or bind to  any  devices  on
       the  system. To do so, it must be configured by the administrator using
       the inquiry-config-list and/or the device-type-config-list properties.


       As with other SCSI drivers, the sgen.conf configuration file enumerates
       the targets sgen should use. See scsi(5) for  more  details.  For  each
       target  enumerated  in the sgen.conf file, the sgen driver sends a SCSI
       INQUIRY command to gather information about the device present at  that
       target. The inquiry-config-list property specifies that the sgen driver
       should  bind  to  a particular device returning a particular set of in‐
       quiry data. The device-type-config-list specifies that the sgen  driver
       should  bind  to every device that is of a particular SCSI device type.
       When examining the device, the sgen driver tests to see if  it  matches
       an entry in the device-type-config-list or the inquiry-config-list. For
       more detail on these two properties, see the PROPERTIES section.


       When  a  match  against the INQUIRY data presented by a device is made,
       the sgen driver attaches to that device and creates a device  node  and
       link  in  the  /devices and /dev hierarchies. See the FILES section for
       more information about how these files are named.


       It is important for the administrator to ensure that devices claimed by
       the sgen driver do not conflict with existing  target  drivers  on  the
       system.  For example, if the sgen driver is configured to bind to a di‐
       rect access device, the standard sd.conf file will usually cause sd  to
       claim the device as well. This can cause unpredictable results. In gen‐
       eral,  the  uscsi(4I)  interface exported by sd(4D) or st(4D) should be
       used to gain access to direct access and sequential devices.


       The sgen driver is disabled by default. The sgen.conf file  is  shipped
       with all of the 'name="sgen" class="scsi" target=...' entries commented
       out  to shorten boot time and to prevent the driver from consuming ker‐
       nel resources. To use the sgen driver effectively on  desktop  systems,
       simply  uncomment  all  of  the name="sgen" lines in sgen.conf file. On
       larger systems with many SCSI controllers, carefully edit the sgen.conf
       file so that sgen binds only where needed. Refer to driver.conf(5)  for
       further details.

PROPERTIES
       inquiry-config-list

           The inquiry-config-list property is a list of pairs of strings that
           enumerates a list of specific devices to which the sgen driver will
           bind.  Each pair of strings is referred to as <vendorid, productid>
           in the discussion below.


       vendorid

           The vendorid property is used to match the Vendor  ID  reported  by
           the device. The SCSI specification limits Vendor IDs to eight char‐
           acters.  Correspondingly,  the length of this string should not ex‐
           ceed eight characters. As a special case, "*"  may  be  used  as  a
           wildcard  which matches any Vendor ID. This is useful in situations
           where more than one vendor produces a particular model of  a  prod‐
           uct.  vendorid is matched against the Vendor ID reported by the de‐
           vice in a case-insensitive manner.


       productid

           The productid property is used to match the product ID reported  by
           the  device.  The  SCSI specification limits product IDs to sixteen
           characters (unused characters are filled with the whitespace  char‐
           acters). Correspondingly, the length of productid should not exceed
           sixteen  characters.  When  examining the product ID of the device,
           sgen examines the length  l  of  productid  and  performs  a  match
           against  only  the  first  l characters in the device's product ID.
           productid is matched against the product ID reported by the  device
           in a case-insensitive manner.

           For  example,  to match some fictitious devices from ACME corp, the
           inquiry-config-list can be configured as follows:


             inquiry-config-list =  "ACME",         "UltraToast 3000",
                                    "ACME",         "UltraToast 4000",
                                    "ACME",         "UltraToast 5000";

           To match "UltraToast 4000" devices, regardless of vendor,  inquiry-
           config-list is modified as follows:


             inquiry-config-list =  "*",            "UltraToast 4000";

           To match every device from ACME in the "UltraToast" series (i.e Ul‐
           traToast 3000, 4000, 5000, ...), inquiry-config-list is modified as
           follows:


             inquiry-config-list =  "*",            "UltraToast";

           Whitespace  characters  are  significant when specifying productid.
           For example, a productid of "UltraToast 1000" is fifteen characters
           in length. If a device reported its ID as "UltraToast  10000",  the
           sgen driver would bind to it because only the first fifteen charac‐
           ters are considered significant when matching. To remedy this situ‐
           ation,  specify  productid  as  "UltraToast  1000 ", (note trailing
           space). This forces the sgen driver to consider all sixteen charac‐
           ters in the product ID to be significant.


       device-type-config-list

           The device-type-config-list property is a list of strings that enu‐
           merate a list of device types to which the sgen driver  will  bind.
           The  valid  device  types correspond to those defined by the SCSI-3
           SPC Draft Standard, Rev. 11a. These types are:


           tab() box; cw(2.44i) |cw(3.06i) lw(2.44i) |lw(3.06i)  Type  NameIn‐
           quiry  Type  ID  _  direct0x00  sequential0x01 printer 0x02 proces‐
           sor0x03 worm0x04 rodirect0x05 scanner 0x06 optical0x07  changer0x08
           comm0x09 prepress10x0a prepress20x0b array_ctrl0x0c ses0x0d rbc0x0e
           ocrw0x0f bridge0x10 type_unknown0x1f

           Alternately, you can specify device types by INQUIRY type ID. To do
           this, specify type_0x<typenum> in the sgen-config-list. Case is not
           significant when specifying device type names.


       sgen-diag

           The sgen-diag property sets the diagnostic output level. This prop‐
           erty  can  be set globally and/or per target/lun pair. sgen-diag is
           an integer property, and can be set to 0, 1, 2, or 3. Illegal  val‐
           ues  will  silently  default  to  0. The meaning of each diagnostic
           level is as follows:


           0    No error reporting [default]


           1    Report driver configuration information,  unusual  conditions,
                and  indicate  when  sense data has been returned from the de‐
                vice.


           2    Trace the entry into and exit from routines inside the driver,
                and provide extended diagnostic data. No error reporting  [de‐
                fault].


           3    Provide  detailed output about command characteristics, driver
                state, and the contents of each CDB passed to the driver.

           In ascending order, each level includes the  diagnostics  that  the
           previous level reports. See the IOCTLS section for more information
           on the SGEN_IOC_DIAG ioctl.


FILES
       sgen.conf

           Driver configuration file. See CONFIGURATION for more details.


       /dev/scsi/<devtype>/cntndn

           The  sgen driver categorizes each device in a separate directory by
           its SCSI device type. The files inside the directory are named  ac‐
           cording to their controller number, target ID and LUN as follows:

           cn  is  the  controller number, tn is the SCSI target id, and dn is
           the SCSI LUN.

           This is analogous to the {controller;target;device} naming  scheme,
           and  the  controller numbers correspond to the same controller num‐
           bers   which   are   used   for   naming   disks.   For    example,
           /dev/dsk/c0t0d0s0  and  /dev/scsi/scanner/c0t5d0 are both connected
           to controller c0.


IOCTLS
       The sgen driver exports the uscsi(4I) interface for each device it man‐
       ages. This allows a user process to talk directly to a SCSI device  for
       which  there  is no other driver installed in the system. Additionally,
       the sgen driver supports the following ioctls:

       SGEN_IOC_READY

           Send a TEST UNIT READY command to the device and return 0 upon suc‐
           cess, non-zero upon failure. This ioctl accepts no arguments.


       SGEN_IOC_DIAG

           Change the level of diagnostic reporting provided  by  the  driver.
           This  ioctl  accepts a single integer argument between 0 and 3. The
           levels have the same meaning as in the sgen-diag property discussed
           in PROPERTIES above.


ERRORS
       EBUSY     The device was opened by another thread or process using  the
                 O_EXCL  flag,  or  the device is currently open and O_EXCL is
                 being requested.


       ENXIO     During opening, the device did not respond  to  a  TEST  UNIT
                 READY  SCSI command.


       ENOTTY    Indicates  that  the  device  does  not support the requested
                 ioctl function.


EXAMPLES
       Here is an example of how sgen can be configured to bind to scanner de‐
       vices on the system:


       device-type-config-list = "scanner";


       The  administrator  should  subsequently  uncomment   the   appropriate
       name="sgen"... lines for the SCSI target ID to which the scanner corre‐
       sponds. In this example, the scanner is at target 4.


       name= "sgen" class= "scsi" target=4 lun=0;


       If  it is expected that the scanner will be moved from target to target
       over time, or that more scanners might be added in the  future,  it  is
       recommended  that  all  of  the name="sgen"... lines be uncommented, so
       that sgen checks all of the targets on the bus.


       For large systems where boot times are a  concern,  it  is  recommended
       that  the  parent=""  property  be  used to specify which SCSI bus sgen
       should examine.

ATTRIBUTES
       See attributes(7) for a description of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ ArchitectureSPARC, x86 _ Availabilitysystem/kernel


SEE ALSO
       sd(4D), st(4D), uscsi(4I), driver.conf(5), scsi(5)


       Writing Device Drivers in Oracle Solaris 11.4


       ANSI Small Computer System Interface-2 (SCSI-2)


       SCSI-3 SPC Draft Standard, Rev. 11a

Oracle Solaris 11.4               15 Mar 2024                         sgen(4D)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3