


Schily's USER COMMANDS                            SCGSKELETON(1L)



NNAAMMEE
     scgskeleton - Skeleton  program  for  SCSI  transport  using
     libscg

SSYYNNOOPPSSIISS
     ssccggsskkeelleettoonn ddeevv==_d_e_v_i_c_e [ _o_p_t_i_o_n_s ]

DDEESSCCRRIIPPTTIIOONN
     SSccggsskkeelleettoonn is s skeleton program to demonstrate the  inter-
     faces and capabilities of the SCSI transport library lliibbssccgg.

  DDeevviiccee nnaammiinngg
     For a list of possible device name parameters call ssccggsskkeellee--
     ttoonn  -ssccaannbbuuss or ssccggsskkeelleettoonn ddeevv==hheellpp and then use the right
     ddeevv== parameter based on the device listing.


OOPPTTIIOONNSS
     -hheellpp
          Prints a short summary of the pp options and exists.

     -vveerrssiioonn
          Print version information and exit.

     ddeevv==_t_a_r_g_e_t
          Set the SCSI target for the CD/DVD/BluRay-Recorder, see
          notes  above.  A typical target device specification is
          ddeevv==_1,_6,_0 .  If a filename must  be  provided  together
          with  the  numerical target specification, the filename
          is implementation specific.  The  correct  filename  in
          this  case  can be found in the system specific manuals
          of the target operating system.  On  a  _F_r_e_e_B_S_D  system
          without _C_A_M support, you need to use the control device
          (e.g.  /_d_e_v/_r_c_d_0._c_t_l).  A correct device  specification
          in this case may be ddeevv==/_d_e_v/_r_c_d_0._c_t_l:@ .

        GGeenneerraall SSCCSSII aaddddrreessssiinngg
          The  _t_a_r_g_e_t  _d_e_v_i_c_e  to  the  ddeevv==  option  refers   to
          _s_c_s_i_b_u_s/_t_a_r_g_e_t/_l_u_n  of the CD/DVD/BluRay-Recorder. Com-
          munication on _S_u_n_O_S  is  done  with  the  SCSI  general
          driver ssccgg.. Other operating systems are using a library
          simulation of this driver.  Possible syntax  is:   ddeevv==
          _s_c_s_i_b_u_s,_t_a_r_g_e_t,_l_u_n  or  ddeevv== _t_a_r_g_e_t,_l_u_n.  In the latter
          case, the CD/DVD/BluRay-Recorder has to be connected to
          the  default  SCSI bus of the machine.  _S_c_s_i_b_u_s, _t_a_r_g_e_t
          and _l_u_n are integer numbers. Some operating systems  or
          SCSI transport implementations may require to specify a
          filename in addition.  In this case the correct  syntax
          for  the device is:  ddeevv== _d_e_v_i_c_e_n_a_m_e:_s_c_s_i_b_u_s,_t_a_r_g_e_t, or
          ddeevv== _d_e_v_i_c_e_n_a_m_e:_t_a_r_g_e_t,_l_u_n.  If the name of the  device
          node that has been specified on such a system refers to
          exactly one SCSI device, a shorthand in the  form  ddeevv==



Joerg Schilling      Last change: 2010/05/13                    1






Schily's USER COMMANDS                            SCGSKELETON(1L)



          _d_e_v_i_c_e_n_a_m_e:@  or  ddeevv==  _d_e_v_i_c_e_n_a_m_e:@,_l_u_n  may  be  used
          instead of ddeevv== _d_e_v_i_c_e_n_a_m_e:_s_c_s_i_b_u_s,_t_a_r_g_e_t,

        RReemmoottee SSCCSSII aaddddrreessssiinngg
          To access remote SCSI devices, you need to prepend  the
          SCSI  device  name  by  a  remote device indicator. The
          remote device indicator is either RREEMMOOTTEE::_u_s_e_r@_h_o_s_t:  or
          RREEMMOOTTEE::_h_o_s_t:   A  valid remote SCSI device name may be:
          RREEMMOOTTEE::_u_s_e_r@_h_o_s_t:  to allow remote SCSI bus scanning or
          RREEMMOOTTEE::_u_s_e_r@_h_o_s_t:_1,_0,_0  to  access  the  SCSI device at
          _h_o_s_t connected to SCSI bus # 1,target  0,  lun  0.   In
          order  to  allow  remote access to a specific _h_o_s_t, the
          rrssccssii(1) program needs to be present and configured  on
          the _h_o_s_t.

        AAlltteerrnnaattee SSCCSSII ttrraannssppoorrttss
          AATTAAPPII drives are just SSCCSSII drives that  inherently  use
          the  _A_T_A  _p_a_c_k_e_t  _i_n_t_e_r_f_a_c_e  as  SSCCSSII command transport
          layer build into the IDE (ATA) transport.  You may need
          to  specify an alternate transport layer on the command
          line if your OS does not implement a  fully  integrated
          kernel driver subsystem that allows to access any drive
          using SSCCSSII commands via a single unique user interface.

          To access SCSI devices via alternate transport  layers,
          you need to prepend the SCSI device name by a transport
          layer indicator.  The transport layer indicator may  be
          something like UUSSCCSSII:: or AATTAAPPII::.  To get a list of sup-
          ported transport layers for  your  platform,  use  ddeevv==
          _H_E_L_P:

        PPoorrttaabbiilliittyy BBaacckkggrroouunndd
          To make ssccggsskkeelleettoonn portable to all UNIX platforms, the
          syntax  ddeevv== _d_e_v_i_c_e_n_a_m_e:_s_c_s_i_b_u_s,_t_a_r_g_e_t, is preferred as
          it hides OS specific knowledge about device names  from
          the  user.  A specific OS may not necessarily support a
          way to specify a real device file name  nor  a  way  to
          specify _s_c_s_i_b_u_s,_t_a_r_g_e_t,_l_u_n.

          _S_c_s_i_b_u_s 0 is the default SCSI bus on the machine. Watch
          the  boot  messages  for  more information or look into
          //vvaarr//aaddmm//mmeessssaaggeess for more information about  the  SCSI
          configuration of your machine.  If you have problems to
          figure out what values for _s_c_s_i_b_u_s,_t_a_r_g_e_t,_l_u_n should be
          used,  try the -ssccaannbbuuss option of ssccggsskkeelleettoonn described
          below.

        UUssiinngg llooggiiccaall nnaammeess ffoorr ddeevviicceess
          If no _d_e_v option is present, ssccggsskkeelleettoonn  will  try  to
          get the device from the CCDDRR__DDEEVVIICCEE environment.

          If a file  /etc/default/cdrecord  exists,  and  if  the



Joerg Schilling      Last change: 2010/05/13                    2






Schily's USER COMMANDS                            SCGSKELETON(1L)



          argument  to the ddeevv== option or the CCDDRR__DDEEVVIICCEE environ-
          ment does not contain the characters ',', '/',  '@'  or
          ':',  it is interpreted as a device label name that was
          defined in the file  /etc/default/cdrecord  (see  FILES
          section).

        AAuuttoottaarrggeett MMooddee
          If no ddeevv== option  and  no  CCDDRR__DDEEVVIICCEE  environment  is
          present,  or  if it only contains a transport specifyer
          but no address notation, ssccggsskkeelleettoonn tries to scan  the
          SCSI  address  space for CD-ROM drives.  If exactly one
          is found, this is used by default.

     ttiimmeeoouutt==#
          Set  the  default  SCSI  command  timeout  value  to  #
          seconds.   The  default  SCSI  command  timeout  is the
          minimum timeout used for sending SCSI commands.   If  a
          SCSI  command  fails  due  to a timeout, you may try to
          raise  the  default  SCSI  command  timeout  above  the
          timeout  value  of  the failed command.  If the command
          runs correctly with a raised  command  timeout,  please
          report  the  better timeout value and the corresponding
          command to the author of the program.   If  no  _t_i_m_e_o_u_t
          option  is  present, a default timeout of 40 seconds is
          used.

     ddeebbuugg==#, --dd
          Set the misc debug value to # (with debug=#) or  incre-
          ment  the  misc  debug  level  by one (with -d). If you
          specify -_d_d, this equals to ddeebbuugg==_2.  This may help  to
          find  problems  while  opening a driver for libscg.  as
          well as with sector  sizes  and  sector  types.   Using
          -ddeebbuugg slows down the process and may be the reason for
          a buffer underrun.

     kkddeebbuugg==#, kkdd==#
          Tell the ssccgg-driver to modify the  kernel  debug  value
          while SCSI commands are running.

     -ssiilleenntt, -ss
          Do not print out a status report for failed  SCSI  com-
          mands.

     -vv   Increment the level of general verbosity by one.   This
          is used e.g. to display the progress of the process.

     -VV   Increment the verbose level with respect of  SCSI  com-
          mand  transport  by  one.  This helps to debug problems
          during the process, that occur in the  CD-Recorder.  If
          you  get incomprehensible error messages you should use
          this flag to get more detailed output.  -VVVV  will  show
          data buffer content in addition.  Using -VV or -VVVV slows



Joerg Schilling      Last change: 2010/05/13                    3






Schily's USER COMMANDS                            SCGSKELETON(1L)



          down the process.  -ssccaannbbuuss Scan all  SCSI  devices  on
          all  SCSI  busses  and  print the inquiry strings. This
          option may be used to find SCSI address of the  devices
          on  a  system.   The  numbers printed out as labels are
          computed by: bbuuss ** 110000 ++ ttaarrggeett

     ttss==# Set the maximum transfer size for a single SCSI command
          to #.  The syntax for the ttss== option is the same as for
          cdrecord fs=# or sdd bs=#.

          If  no  ttss==  option  has  been  specified,  ssccggsskkeelleettoonn
          defaults  to  a transfer size of 256 kB. If libscg gets
          lower values from the operating system,  the  value  is
          reduced  to the maximum value that is possible with the
          current operating system.  Sometimes, it  may  help  to
          further  reduce the transfer size or to enhance it, but
          note that it may take a long  time  to  find  a  better
          value by experimenting with the ttss== option.



EEXXAAMMPPLLEESS
EENNVVIIRROONNMMEENNTT
     RRSSHH  If the RRSSHH environment is present, the  remote  connec-
          tion will not be created via rrccmmdd(3) but by calling the
          program pointed to by RRSSHH.  Use  e.g.  RRSSHH==/usr/bin/ssh
          to create a secure shell connection.

          Note that this forces ccddrreeccoorrdd to create a pipe to  the
          rrsshh((11))  program  and  disallows  ccddrreeccoorrdd  to  directly
          access the network socket to the remote  server.   This
          makes  it  impossible  to set up performance parameters
          and slows down the connection compared to a  rroooott  ini-
          tiated rrccmmdd((33)) connection.

     RRSSCCSSII
          If the RRSSCCSSII environment is present,  the  remote  SCSI
          server  will  not be the program //oopptt//sscchhiillyy//ssbbiinn//rrssccssii
          but the program pointed to by  RRSSCCSSII.   Note  that  the
          remote  SCSI server program name will be ignored if you
          log in using an account that has been  created  with  a
          remote SCSI server program as login shell.

SSEEEE AALLSSOO
     ccddrreeccoorrdd(1), ssccgg(7), rrccmmdd(3), sssshh(1).

NNOOTTEESS
DDIIAAGGNNOOSSTTIICCSS
     A typical error message for a SCSI command looks like:

          scgskeleton: I/O error. test unit ready: scsi sendcmd: no error
          CDB:  00 20 00 00 00 00



Joerg Schilling      Last change: 2010/05/13                    4






Schily's USER COMMANDS                            SCGSKELETON(1L)



          status: 0x2 (CHECK CONDITION)
          Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
          Sense Key: 0x5 Illegal Request, Segment 0
          Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
          Sense flags: Blk 0 (not valid)
          cmd finished after 0.002s timeout 40s

     The first line gives information about the transport of  the
     command.   The  text  after  the first colon gives the error
     text for the system call from the view  of  the  kernel.  It
     usually  is:   II//OO  eerrrroorr  unless other problems happen. The
     next words contain a short description for the SCSI  command
     that fails. The rest of the line tells you if there were any
     problems for the transport of the command over the SCSI bus.
     ffaattaall  eerrrroorr means that it was not possible to transport the
     command (i.e.  no  device  present  at  the  requested  SCSI
     address).

     The second line prints the SCSI command descriptor block for
     the failed command.

     The third line gives information on  the  SCSI  status  code
     returned  by  the  command,  if the transport of the command
     succeeds. This is error information from the SCSI device.

     The fourth line is a hex dump  of  the  auto  request  sense
     information for the command.

     The fifth line is the error text for the sense key if avail-
     able,  followed  by the segment number that is only valid if
     the command was a _c_o_p_y command. If the error message is  not
     directly  related  to the current command, the text _d_e_f_e_r_r_e_d
     _e_r_r_o_r is appended.

     The sixth line is the error text for the sense code and  the
     sense  qualifier if available.  If the type of the device is
     known, the sense data is decoded from tables in _s_c_s_i_e_r_r_s._c .
     The text is followed by the error value for a field replace-
     able unit.

     The seventh line prints the block number that is related  to
     the  failed  command  and  text for several error flags. The
     block number may not be valid.

     The eight line reports the timeout set up for  this  command
     and the time that the command really needed to complete.


BBUUGGSS
AAUUTTHHOORR
     Joerg Schilling
     Seestr. 110



Joerg Schilling      Last change: 2010/05/13                    5






Schily's USER COMMANDS                            SCGSKELETON(1L)



     D-13353 Berlin
     Germany

     Additional information can be found on:
     http://cdrecord.berlios.de/private/cdrecord.html

     If you have support questions, send them to:

     ccddrreeccoorrdd--ssuuppppoorrtt@@bbeerrlliiooss..ddee

     If you have definitely found a bug, send a mail to:

     ccddrreeccoorrdd--ddeevveellooppeerrss@@bbeerrlliiooss..ddee
     or jjooeerrgg..sscchhiilllliinngg@@ffookkuuss..ffrraauunnhhooffeerr..ddee

     To subscribe, use:

     hhttttpp::////lliissttss..bbeerrlliiooss..ddee//mmaaiillmmaann//lliissttiinnffoo//ccddrreeccoorrdd--ddeevveellooppeerrss
     or hhttttpp::////lliissttss..bbeerrlliiooss..ddee//mmaaiillmmaann//lliissttiinnffoo//ccddrreeccoorrdd--ssuuppppoorrtt




































Joerg Schilling      Last change: 2010/05/13                    6



