Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info.

BSD LPR and SGI

From Higher Intellect Wiki
Jump to navigation Jump to search
                                     Silicon Graphics Technical Support
            ____________________________________________________________

            Before You Configure the BSD LPR Print Spooler

            SGI        IRIX 5.X does not support configuring the BSD LPR  print
            spooler  locally  (you  can         not have the printer physically
            connected to an SGI        system).  If you  want        to  be        a  print
            server  then  you  will  need to refer to the Communications
            guide for setting up printers for the SYSTEM V  LP        spooling
            system.
            The        BSD lpr        print spooler will allow you to        access        printers
            that  are  attached        to other systems on the        network.  Please
            be sure to check the other system,        or  contact  the  system
            administrator to verify the        type of        spooling system        they are
            using.  Generally speaking,        if they         have  an  /etc/printcap
            file  configured  they  are        using the BSD LPR print        spooling
            system.
            You        can  not  use  the  System  Manager's  printer        tool  to
            configure  a  BSD  LPR  spooling system, nor can you use the
            mknetpr(1M)        command        for configuring        a network printer.  Both
            of        these  utilities  only        support        the SYSTEM V LP        spooling
            system.
            This document will assist you in  configuring  the        IRIS  so
            that  you will be able to submit and print your files on the
            BSD         print        server.          Please  make        sure  that  the          System
            Administrator  of  the  print  server  puts        your hostname in
            their /etc/hosts.equiv file, and that your        IP  address  and
            hostname  appear in        their /etc/hosts file.        You will need to
            add        the print server's  IP        address         and  hostname        to  your
            /etc/hosts        file.        If  your  documents don't print        once you
            have configured the        BSD print spooler please see the section
            ``Troubleshooting        the  BSD  LPR  Spooling         System.''   The
            troubleshooting section will take you to the point where you
            can        see a copy of your document on the print server.  If the
            document  disappears  from        the   server's         queue         without
            printing,  contact        the  System Administrator of that system
            for        further        assistance.

            ____________________________________________________________

            September 09, 1993                -jst                          Page 1


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Verifying the BSD LPR Subsystem was        Properly Installed

            You        should be able to verify the version  of  software  that
            you        are running by entering        the following command:
                 #  uname  -a
            Enter the following        command        to verify that the BSD LPR print
            spooling system was        properly installed.
                 #  versions  long  |  grep  eoe2.sw.bsdlpr
            Your output        should be similar to:
                 eoe2.sw.bsdlpr           etc/init.d/bsdlpr
                 eoe2.sw.bsdlpr           etc/printcap
                 eoe2.sw.bsdlpr           etc/rc0.d/K26bsdlpr
                 eoe2.sw.bsdlpr           etc/rc2.d/S61bsdlpr
                 eoe2.sw.bsdlpr           usr/bsd/lpq
                 eoe2.sw.bsdlpr           usr/bsd/lpr
                 eoe2.sw.bsdlpr           usr/bsd/lprm
                 eoe2.sw.bsdlpr           usr/bsd/lptest
                 eoe2.sw.bsdlpr           usr/etc/lpc
                 eoe2.sw.bsdlpr           usr/etc/lpd
                 eoe2.sw.bsdlpr           usr/etc/pac
                 eoe2.sw.bsdlpr           usr/lib/lpf
                 eoe2.sw.bsdlpr           var/spool/lpd
            The        BSD spooler is not loaded by default.  Most  users  will
            have  to  use  inst(1M)  and  select  the  manual option, to
            install this subsystem.
            Please make        sure you do the        versions command (versions  long
            |  grep  lpr)  to  verify that you have the        entire subsystem
            loaded.  Just having an /etc/printcap file is not enough.
            If you don't have the subsystem installed and would        like  to
            do the installation        please refer to        your sytems's manuals.


            ____________________________________________________________

            September 09, 1993                -jst                          Page 2


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Configuring        the /etc/printcap file

            You        will need  to  edit  the  /etc/printcap         file  manually.
            Please  make  sure        you  format  the entries correctly.  The
            /etc/printcap file expects information in a         format         similar
            to /etc/termcap.
            This document will use two examples.  The first example will
            show  you how to configure the printer configuration file in
            two         lines.          The  second  example        will  show  you         how  to
            configure  each  option  of         the  printcap        file on        separate
            lines.  There will be explanations of both examples.
            Please note        that the printcap  file         is  very  sensitive  to
            syntax  errors.   The  name         field        must  begin at the first
            character on a line        of the /etc/printcap file.  The         printer
            names  must         be  separated by pipe symbols (the vertical bar
            ``|'').  The name line  must  be  terminated  with        a  colon
            followed  by a backslash (``:\'').        Make sure that there are
            no spaces, tabs, or        any other character after the backslash.
            The         definition  lines  must  begin         with  a  tab  character
            followed  by  a colon (``:''), followed by the field you are
            defining, followed by an equal sign.   The        definition  line
            must end with a colon.  If you are using multiple lines, see
            example two.
            There is only one name and four definition fields that  must
            be defined.         They are:

            name  This should be all  the  names  the  printer        will  be
                  accessed  as.         If it includes        ``lp'',        and is the first
                  such entry in        the printcap  file,  ``lpr''  will  work
                  without  specifying  a  printer  name.   The names are
                  separated with pipe symbols.

            :lp=  (blank) This specifies the device to        which  the  file
                  should  be  printed.        No  files are printed locally so
                  this is left blank.

            :rm=  (remote machine name)        This is        the name of  the  system
                  that has the printer physically connected.

            :rp=  (remote printer name)        This is        the name of  the  remote
                  printer  on  the  remote system that you are trying to
                  access.

            :sd=  (spool  directory)  The  name         of  your  local   spool
                  directory.   If  you        don't  use the default directory
                  /var/spool/lpd, you will need        to create the  directory
                  by using the mkdir(1M) command.

            ____________________________________________________________

            September 09, 1993                -jst                          Page 3


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Printcap Examples

            Example Number One

                 sleepy|lp|sleepyprinter:\
                         :lp=:rm=snowwhite.story.land:rp=doc:sd=/var/spool/lpd:
            Example number one can access the printer by  the  following
            names:
                 sleepy
                 lp
                 sleepyprinter
            The        remote system (where the printer is physically attached)
            is called:
                 snowwhite.story.land
            The        name of        the printer on the print server        (remote         system)
            is called:
                 doc
            The        local spool directory is called:
                 /var/spool/lpd

            Example Number Two

                 sleepy|lp|sleepyprinter:\
                         :lp=:\
                         :rm=snowwhite.story.land:\
                         :rp=doc:\
                         :sd=/var/spool/lpd:
            Example number two can access the printer by  the  following
            names:
                 sleepy
                 lp
                 sleepyprinter
            The        remote system (where the printer is physically attached)
            is called:
                 snowwhite.story.land
            The        name of        the printer on the print server        (remote         system)
            is called:
                 doc
            The        local spool directory is called:
                 /var/spool/lpd


            ____________________________________________________________

            September 09, 1993                -jst                          Page 4


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Attempting to Print        Using the LPR command

            Now        that you have the /etc/printcap         file  configured,  make
            sure  that        the  daemon  is         running.   Enter  the following
            command:
                 #  ps        -ef  |        grep  lpd
            Your system        should return something        similar        to:
                 root        195    1   0   11:06:04          ?        0:00 /usr/etc/lpd
                 root  1293  753   2   13:20:39         ttyq6        0:00 grep lpd
            The        /usr/etc/lpd at        the end        of the lines indicates that  the
            daemon  is        running.   If you only got one line back (``grep
            lpd''), then start the lpd daemon by entering the  following
            command:
                 #  /usr/etc/lpd
            Now        if you do ``ps -ef | grep lpd''        you should see        2  lines
            returned to        you.
            From examples one and two note that         the  printer  could  be
            accessed  by three names (sleepy, lp and sleepyprinter).  By
            default the        lpr command will look for the first lp entry  in
            the        /etc/printcap file.  If        this is        not found, then        you will
            need to do one of two things:

              1.  Whenever you enter the lpr command you must use the -P
                  option to specify a printer name other than lp.
                       %  lpr  -Psleepyprinter        filename

              2.  In your shell        you can         set  the  environment        variable
                  PRINTER  to  the  name of the        printer        you wish to use.
                  In the C shell:
                       %  setenv  PRINTER  sleepy
                  In the Bourne        shell:
                       $   PRINTER=sleepy;  export  PRINTER

              3.  Now you can enter the        command:
                       lpr  filename

              4.  After        submitting your        request        to the printer.         You can
                  see  if  your         job  has  made        it to the print        spooling
                  queue        by entering the        following command:
                       #  lpq
                  Your system should return something similar to:
                       doc is ready and        printing
                       Rank  Owner  Job         Files               Total Size
                       1st    nina  113         filename      851 bytes


            ____________________________________________________________

            September 09, 1993                -jst                          Page 5


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Troubleshooting the        BSD LPR        Spooling System

            If your print request doesn't make it to the queue:

              1.  Check        for error messages

              2.  Double check the command that        you entered.

              3.  Try submitting the /etc/group        file to        the queue.   The
                  file you submitted might have        had problems.

            If your print request makes        it to the queue        and  never  gets
            to the print server:

              1.  Do you have the print        server's IP address and        hostname
                  in the /etc/hosts file?

              2.  Does the print server         name  match  the  name         in  the
                  /etc/hosts  file?   Do  they match the hostname of the
                  print        server?

              3.  Did you get the error        message        that says...
                       Waiting for remote queue        to be enabled.
                  This usually means that your hostname        is  not         in  the
                  print        server's /etc/hosts.equiv file.
            If your print request disappears from the queue, and doesn't
            print or prints garbage.

              1.  Become root and enter        the commands:
                       #  /usr/etc/lpc        stop  lp   (or your printername)
                       #  lpr  /etc/group
                       #  cd  /var/spool/lpd           (or your spool directory)
                       #  ls  -l
                  Your system should return something similar to:
                       -rw-rw----  1 root   lp          69 Aug 23 14:02   cfA117tls
                       -rw-rw----  1 root   lp         227 Aug 23 14:02   dfA117tls
                       -rwxr-----  1 root   lp           0 Aug 23 14:01   lock
                       -rw-rw-r--  1 root   lp          25 Aug 23 14:46   status

              2.  Check        the contents of        the control file:
                       #  cat  cfA117tls
                  Your system should return something similar to:

                  Htls                H   the        hostname that sent the print request
                  Proot                P   the        person who sent        the request
                  Jgroup        J   the        jobname


            ____________________________________________________________

            September 09, 1993                -jst                          Page 6


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Troubleshooting the        BSD LPR        Spooling System

                  Ctls                C   class/hostname
                  Lroot                L   the        person who sent        the request
                  fdfA117tls        f   name of the        file to        print
                  UdfA117tls        U   name of the        file to        remove after printing
                  N/etc/group        N   the        original file name

              3.  Check        the copy of the        print file.
                  It is        suggested that you use more(1)
                  just in case your test file is not as        short
                  as the /etc/group file.
                  The df file should look exactly like the file        you
                  attempted to print.
                  In this case the file        dfA117tls should be exactly the        same
                  as the /etc/group file.
                       #  more        dfA117tls
                  The system should return something similar to:
                       sys::0:root,bin,sys,adm
                       root::0:root
                       daemon::1:root,daemon
                       bin::2:root,bin,daemon
                       adm::3:root,adm,daemon
                       mail::4:root
                       uucp::5:uucp
                       rje::8:rje,shqer
                       lp::9:
                       nuucp::10:nuucp
                       user::20:
                       other::995:
                       demos:*:997:
                       guest:*:998:

              4.  Now  that  you  have        verified  that        the  request  is
                  properly spooling on the local system, check the print
                  server.   You         may  need  to        contact          their          system
                  administrator        first.        You will need the root password,
                  and once you enter the stop command on their system no
                  one  will see        their print request print.  It will just
                  remain in the        queue.        Make  sure  that  there         are  no
                  requests in the queue        that are currently printing.  It
                  would        be ideal if there were no requests currently  in
                  the queue.

              5.  On the print server log  in  as  root         and  enter  the
                  command:
                       #  /usr/etc/lpc        stop  lp

            ____________________________________________________________

            September 09, 1993                -jst                          Page 7


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Troubleshooting the        BSD LPR        Spooling System

              6.  On the local system enter the        command
                       #  /usr/etc/lpc        start  lp

              7.  On the print server ``cd'' to        the spool directory.  If
                  you don't know where the spool directory is, cat(1) or
                  more(1) the /etc/printcap file and look at what is set
                  in the sd: variable.

              8.  On the print server, after changing directories to the
                  spool        directory enter        the following command:
                       #  ls  -l
                  The print server should return something similar to:
                       -rw-r----x  1 root     4        Aug 15 10:27   .seq
                       -rw-rw----  1 root    69        Aug 23 14:02   cfA117tls.csd.sgi.com
                       -rw-rw----  1 root   227        Aug 23 14:02   dfA117tls
                       -rwxr------ 1 root     0        Aug 23 14:01   lock
                       -rw-rw-r--  1 root    25        Aug 23 14:46   status

              9.  Now check the        contents of the        control        file.
                       #  cat  cfA117tls.csd.sgi.com
                  The print server should return something similar to:

                       Htls             H         the hostname that sent        the print request
                       Proot             P         the person who        sent the request
                       Jgroup             J         the jobname
                       Ctls             C         class/hostname
                       Lroot             L         the person who        sent the request
                       fdfA117tls    f         name of the file to print
                       UdfA117tls    U         name of the file to remove after printing
                       N/etc/group   N         the original file name

             10.  The df file should look  exactly  like  the  file  you
                  attempted  to         print.         In this case the print        server's
                  dfA117tls file should         be  exactly  the  same         as  the
                  dfA117tls file that was on your system.
                       #  more        dfA117tls
                  The system should return something similar to:
                       sys::0:root,bin,sys,adm
                       root::0:root
                       daemon::1:root,daemon
                       bin::2:root,bin,daemon
                       adm::3:root,adm,daemon
                       mail::4:root
                       uucp::5:uucp
                       rje::8:rje,shqer
                       lp::9:


            ____________________________________________________________

            September 09, 1993                -jst                          Page 8


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Troubleshooting the        BSD LPR        Spooling System

                       nuucp::10:nuucp
                       user::20:
                       other::995:
                       demos:*:997:
                       guest:*:998:

             11.  On the print server enter the        following command:
                       #  /usr/etc/lpc        start  lp
                  Your file should now print on        the printer.  It  should
                  look        exactly        like the output        of the more command.  If
                  it doesn't then contact the  System  Administrator  of
                  the print server.


            ____________________________________________________________

            September 09, 1993                -jst                          Page 9


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Integrating        The AT&T Spooler With The BSD LPR Print        Spooler


            ____________________________________________________________
           |                         Support Statement                       |
           |___________________________________________________________|
           |                   SGI IRIX 5.X        does not  support               |
           |                   configuring        the BSD        LPR print               |
           |                   spooler locally (you         can  not               |
           |                   have         the  printer  physically               |
           |                   connected to        an  SGI         system).               |
           |                   If  you  want  to  be  a print               |
           |                   server then you will         need  to               |
           |                   refer  to  the  Communications               |
           |                   guide for setting up         printers               |
           |                   for        the  SYSTEM V LP spooling               |
           |                   system.                                       |
           |                   However, SGI        system users have               |
           |                   requested         any        available               |
           |                   information on  this         subject,               |
           |                   whether    or    not          it   is               |
           |                   supported.                                       |
           |___________________________________________________________|

            You        can  not  use  the  System  Manager's  printer        tool  to
            configure  a  BSD  LPR  spooling system, nor can you use the
            mknetpr(1M)        command        for configuring        a network printer.  Both
            of        these  utilities  only        support        the SYSTEM V LP        spooling
            system.
            This document will assist you in  configuring  the        IRIS  so
            that  other        systems        will be        able to        submit print jobs to the
            LPR        spooler, which will then pass the job to the LP         spooler
            for        local printing.
            Before beginning to         use  this  document,  you  should  have
            already configured and tested the LP print spooler.

            ____________________________________________________________

            September 9,1993                -jst                          Page 1


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Verifying the BSD LPR Subsystem was        Properly Installed

            You        should be able to verify the version  of  software  that
            you        are running by entering        the following command:
                 #  uname  -r
            Enter the following        command        to verify that the BSD LPR print
            spooling system was        properly installed.
                 #  versions  long  |  grep  eoe2.sw.bsdlpr
            Your output        should be:
                 eoe2.sw.bsdlpr           etc/init.d/lpd
                 eoe2.sw.bsdlpr           etc/printcap
                 eoe2.sw.bsdlpr           etc/rc0.d/K26lpd
                 eoe2.sw.bsdlpr           etc/rc2.d/S61lpd
                 eoe2.sw.bsdlpr           usr/bsd/lpq
                 eoe2.sw.bsdlpr           usr/bsd/lpr
                 eoe2.sw.bsdlpr           usr/bsd/lprm
                 eoe2.sw.bsdlpr           usr/bsd/lptest
                 eoe2.sw.bsdlpr           usr/etc/lpc
                 eoe2.sw.bsdlpr           usr/etc/lpd
                 eoe2.sw.bsdlpr           usr/etc/pac
                 eoe2.sw.bsdlpr           usr/lib/lpf
                 eoe2.sw.bsdlpr           var/spool/lpd
            The        BSD spooler is not loaded by default.  Most  users  will
            have  to  use  inst(1M)  and  select  the  manual option, to
            install this subsystem.
            Please make        sure you execute the versions command  (versions
            long  | grep eoe2.sw.lpr) to verify        that you have the entire
            subsystem loaded.  Just having an /etc/printcap file is  not
            enough.
            If you don't have the subsystem installed and would        like  to
            do        the  installation  please  refer  to your Release Notes,
            Installation guide or the System Administrator's Guide.


            ____________________________________________________________

            September 9,1993                -jst                          Page 2


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Configuring        the /etc/printcap file

            You        will need  to  edit  the  /etc/printcap         file  manually.
            Please  make  sure        you  format  the entries correctly.  The
            /etc/printcap file expects information in a         format         similar
            to /etc/termcap.
            This document will show you        an example of how  to  configure
            each  option  of the printcap file on separate lines.  There
            will be explanations of both examples.
            Please note        that the printcap  file         is  very  sensitive  to
            syntax  errors.   The  name         field        must  begin at the first
            character on a line        of the /etc/printcap file.  The         printer
            names  must         be  separated by pipe symbols (the vertical bar
            ``|'').  The name line  must  be  terminated  with        a  colon
            followed  by a backslash (``:\'').        Make sure that there are
            no spaces, tabs, or        any other character after the backslash.
            The         definition  lines  must  begin         with  a  tab  character
            followed  by  a colon (``:''), followed by the field you are
            defining, followed by an equal sign.   The        definition  line
            must end with a colon.  If you are using multiple lines, see
            example two.
            There is only one name and five definition fields that  must
            be specified.  They        are:

            name  This should be all  the  names  the  printer        will  be
                  accessed  as.          It  should  include  ``lp'' so ``lpr''
                  without a printer  name  will         work.         The  names  are
                  separated with pipe symbols.

            :lp=  (line        printer) The name of the  device  to  use.   Use
                  /dev/null.

            :sd=  (spool  directory)  The  name         of  your  local   spool
                  directory.   If  you        don't  use the default directory
                  /var/spool/lpd, you will need        to create the  directory
                  by using the mkdir(1M) command.

            :lf=  (log        file)  This  is          the        LPR   log   file.    Use
                  /var/spool/lpd/lp-log.

            :sh          (supress header) This         will  supress        the  LPR  header
                  (banner)  page.   It        has  no         affect        on the LP banner
                  page.

            :of=  (output filter) This is the name of the filter to send
                  all  output  through.          Use /var/spool/lp/etc/lprtolp.
                  You will create this file in this procedure.

            ____________________________________________________________

            September 9,1993                -jst                          Page 3


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Configuring        the /etc/printcap file

            Printcap example(/etc/printcap)

                 lp:\
                         :lp=/dev/null:\
                         :sd=/var/spool/lpd:\
                         :lf=/var/spool/lpd/lp-log:\
                         :sh:\
                         :of=/var/spool/lp/etc/lprtolp:
            The        printer        can be accessed        by the following name:
                 lp
            The        local spool directory is called:
                 /var/spool/lpd
            The        device where the LPR spooler will actually  output  data
            is        /dev/null.   This  is  because the data        will actually be
            sent to the        LP spooler by lprtolp before LPR can output it.
            The        log file for LPR is:
                 /var/spool/lpd/lp-log
            The        output filter for LPR is:
                 /var/spool/lp/etc/lprtolp

            ____________________________________________________________

            September 9,1993                -jst                          Page 4


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Configuring        for Lprtolp

            You        will need to  edit  the         /var/spool/lp/etc/lprtolp  file
            manually.  Please make sure        you format the lines correctly.
            The        first line of the file must begin with ``#!'',        followed
            by a single        space, followed        by /bin/sh.

                 #! /bin/sh
                 lp -s
            The        shell /bin/sh will be invoked when the filter is called.
            All        input to this filter will be sent to:
                 lp -s
            Other options may be appropriate for LP  depending        on  your
            particular printer type and        configuration.

            You        will also need to  set        permission  correctly  for  this
            script to execute:
                 #  chown  lp  /var/spool/lp/etc/lprtolp
                 #  chgrp  lp  /var/spool/lp/etc/lprtolp
                 #  chmod  755        /var/spool/lp/etc/lprtolp

            Configuring        for Remote Access
            Put        the hostname of        any systems that will want to  print  in
            your /etc/hosts.equiv file,        and verify that        their IP address
            and        hostname appear        in their  /etc/hosts  file.   They  will
            need  to  add  the        your  IP  address  and hostname        to their
            /etc/hosts file.

             Configuring the log file
            You        will need  to  make  a        log  file  and        set  permissions
            accordingly:
                 #  touch  /var/spool/lpd/lp-log
                 #  chmod  644        /var/spool/lpd/lp-log
                 #  chown  lp  /var/spool/lpd/lp-log
                 #  chgrp  lp  /var/spool/lpd/lp-log

            ____________________________________________________________

            September 9,1993                -jst                          Page 5


                                      Silicon Graphics Technical Support
            ____________________________________________________________

            Attempting to Print        Using the LPR command

            Now        that you have the /etc/printcap         file  configured,  make
            sure  that        the  daemon  is         running.   Enter  the following
            command:
                 #  ps        -ef  |        grep  lpd
            Your system        should return something        similar        to:
                 root        195    1   0   11:06:04          ?        0:00 /usr/etc/lpd
                 root  1293  753   2   13:20:39         ttyq6        0:00 grep lpd
            The        /usr/etc/lpd at        the end        of the lines indicates that  the
            daemon  is        running.   If you only got one line back (``grep
            lpd''), then start the lpd daemon by entering the  following
            command:
                 #  /usr/etc/lpd
            Now        if you do ``ps -ef | grep lpd''        you should see        2  lines
            returned to        you.
            From the configuration  pages,  note  that        the  printer  is
            accessed  by  the  name lp.         By default the        lpr command will
            look for the entry lp in the /etc/printcap file.

            Now        enter the command:
                 lpr  filename

            After submitting your request to the printer.  You        can  see
            if        your  job  has        made  it  to the print spooling        queue by
            entering the following command:
                 #  lpq
            Your system        should return something        similar        to:
                 lp is ready and printing
                 Rank  Owner  Job  Files         Total Size
                 1st        guest 113  filename         851 bytes

            ____________________________________________________________

            September 9,1993                -jst                          Page 6