Dokumentasjon PrinterWorkShop 5.Mai 1998 (oppdatert litegrann 27/1/1999)


SunOS 4.x:
        Her kunne vi skrive en laang avhandling om 
        å sette opp printservere fra SunOS, men i og med at dette er så godt
        som dødt, hopper vi rett til klient-oppsett.

        All printeroppsett til SunOS 4.x foregår i filen /etc/printcap,
        her følger ett eksempel:
        hplaser|HpPrinter|HPLJ5support: \
                :lp=:rm=hplaser:rp=raw:sd=/var/spool/hplaser:\
                :lf=/var/spool/hplaser/lpderrs:mx#0:

        rm-feltet: skal inneholde IP-adressen til serveren    
        rp-feltet: skal ha kø-navnet på serveren
        mx-feltet: Angir begrensing på filstørrelse, #0 er ubegrenset
                                og det bør den vel være f.eks for postscript-printere.

        For alle de andre sikkert 100 feltene du kan bruke: man printcap

        Printerrelaterte kommandoer: lpc, lpr
   


SunOS 5.[345]:
 
Serveroppsett:
                lpadmin -p (kønavn) -v /dev/xxx  -I any -T unknown 
                lpadmin -p (kønavn) -i interfacescript
                lpadmin -o 'stty="9600 cs8 ixany"'

                Devicer (-v): /dev/bppN, /dev/term/N, /dev/printers/N
                Slå av bannerpage: #vi /etc/lp/interfaces/kønavn)
                        editer 'nobanner="no"' til 'nobanner="yes"'
                Noen ganger kan det være nyttig å lage ett låse-device
                selv:   #cd /dev/printers ; mknod Laser c 13 2 ; chown lp Laser
                        #chgrp lp Laser   ; chmod 0600 Laser


                Dumping av filtere:
                #cd /etc/lp/fd
                #for i in *.fd ; do
                        lpfilter -xf `basename $i .fd`
                        lpfilter -F $i -f `basename $i .fd`
                done

                Start av listen-tjenester (IKKE 2.6 og nyere):
                #sacadm -r -p tcp

                #sacadm -a -p tcp -t listen -c "/usr/lib/saf/listen tcp" \
                -v `nlsadmin -V` -n 9999

                #pmadm -a -p tcp -s lp -i root \
                -m `nlsadmin -o /var/spool/lp/fifos/listenS5` \
                -v `nlsadmin -V`

                #pmadm -a -p tcp -s lpd -i root \
                -m `nlsadmin -o /var/spool/lp/fifos/listenBSD -A \
                '\x00020203000000000000000000000000'` -v `nlsadmin -V`

                #pmadm -a -p tcp -s 0  -i root \
                -m `nlsadmin -c /usr/lib/saf/nlps_server -A \
                '\x00020ACE000000000000000000000000'` -v `nlsadmin -V`

                
                Dumping av filtere og oppstart av listentjeneste kan gjøres
                på to andre måter også: 
                1)      Start Admintool, lag en postscript-printer på en lokal port,
                        og slett denne igjen.
                2)      Kjør (fra supportCD'en): /cdrom/cdrom0/home/esm/scripts/server.2x





Klientoppsett:
                #lpsystem -t bsd (servernavn)
                editer i /etc/lp/Systems, slik at det blir seende slik ut(felt8): 
                        server:x:-:bsd:-:n:10:SVR4-Extensions:-:

                #lpadmin -p (lokalt kønavn) -s server\!remote-kø
                #enable lokalkø
                #accept lokalkø


SunOS 5.[67]:
 
Serveroppsett:
        Det er ikke mye nytt når det gjelder serveroppsett på SunOS 5.6
                Det "store" nye er support av netprinting, via raw tcp.
                Dette supporteres også av de fleste nyere nettverksprintere, slike 
                som f.eks HP jetdirect.
                #lpadmin -p lokalkø -v /dev/XXX -i /usr/lib/lp/model/netstandard
                #lpadmin -p lokalkø -o dest=hplaser:9100 -o protocol=tcp -o timeout=5
                #lpadmin -p lokalkø -I PS -T PS
                Du kan også sette opp dette slik at det oppfattes som en lokal printer med vanlig
                bsd-protokoll:
                #cd /dev/printers
                #mknod printPS c 13 2
                #chown lp:lp printPS
                #chmod 0600 printPS

                #lpadmin -p printPS -v /dev/printers/printPS -I PS -T PS \
                   -o dest=NT-maskin -o protocol=bsd -i /usr/lib/lp/model/netstandard
   
                #enable printPS
                #accept printPS

                #cd /etc/lp/interfaces
                #vi printPS
                 - bytt ut "nobanner=no" til "nobanner=yes"
                ------------------------------------------------------------------------- 
                lp -d printPS /etc/group  - OK, konverteres til PS og dyttes ut
                lp -d printPS /usr/openwin/share/images/PostScript/peter.ps
                                          - OK, dyttes rett ut!
                

Klientoppsett:
                Klientoppsettet ligger nå definert i /etc/printers.conf, og 
                administreres helst via kommandoen "lpset".
                Denne kan distribueres enten via fns(nisplus) eller nis.
                printer.conf.byname (NIS)
                fns.ctx_dir.domain  (NIS+)
                Hver bruker kan også ha sin egen $HOME/.printers

                Dette er egentlig det samme som på tidligere OS'er er beskrevet
                som "PrintClient".  Hovedpoenget her er at en klient aldri 
                spooler lokalt, men tar direkte kontakt med printerserver.
                Spesielt brukbart på diskløse klienter, som tidligere
                flyttet jobben 4-5 ganger over nett-verket.

                I /etc/printers.conf kan det også opprettes aliaser for printere.
                man printers.conf       


                For å styre rekkefølgen på output fra lpstat-kommandoen,
                opprett en entry i /etc/printers.conf:
                    _all:\
                         :all=skutt_a4,skutt_a4_d,skutt_a3,skutt_a3_d:



SunSoft Print-client:
                Se klientoppsett SunOS 5.[67]



Annen printsoftware:
 
jetadmin:
                Jetadmin er HP's printerprogram. Freeware. Ligger som 
                streams-pakke på supportCD'en.  Dette er faktisk å anbefale 
                mot HP-printere, da jetdirect ikke er særlig stabil på vanlig
                lpd-printing.  Produktet supporterer en rekke printere i tillegg
                til HP's egne printere(IBM, lexmark, optra etc).
                Installer pakken, og start "jetadmin"

Spiderprint:
                Spiderprint er et USUPPORTERT program, som dytter en fil ut på 
                en spesifisert telnet-port.  Dette kan f.eks integreres på
                denne måten:
                #ping spider
                spider is alive
                #cd /etc/lp/fd
                #vi spider.fd 
                Input types: any
                Output types: any
                Printer types: any
                Printers: 
                Filter type: fast
                Command: /usr/local/bin/sp_print_retry spider 2051

                #lpfilter -f spider -F spider.fd


                /usr/local/bin/sp_print_retry:
                #!/bin/sh
                cat - > /tmp/LP$$
                i=1 ; while [ $i -le 15 ] ; do
                        nice /usr/local/bin/sp_print -p $1 $2 < /tmp/LP$$ 
                        status=$?
                        if [ $status = 0 ] ; then
                                rm /tmp/LP$$
                                rm /tmp/sp_print*
                                exit 0
                        fi
                        sleep 10 ; i=`expr $i + 1`
                done
                rm /tmp/LP$$ ; exit $status

                #cd /dev/printers ; mknod spider c 13 2 
                #chown lp spider ; chgrp lp spider ; chmod 0600 spider
                #lpadmin -p spider -v /dev/printers/spider -I spider
                #enable spider ; accept spider

WinLink:
                Er ett kommersielt produkt, først og fremst nyttet
                til å printe mot telnet-linjer (TIU'er)
                Karakterbasert/menystyrt. Selvforklarende.

Axis:
                AXIS har noen nettverksbokser som bruker ftp som filoverføring.
                På disse ligger det et interface-script som kan lastes fra 
                boksen selv. Det ser omtrent slik ut: (Dette IF-scriptet printer
                til port 5 (pr5) på boksen)

                #!/bin/sh
                #
                # interface for output paa axis-nettverksboks
                #
                # bruker ftp!!
                #
                # local setup:
                internet_address=admin      # oppslag i /etc/hosts
                logical_printer=pr5         # logisk printer, prX
                
                login_name=anyone           # alltid "anyone"
                password=none               # alltid "none"
                
                copies=$4
                shift ; shift ; shift ; shift ; shift
                files="$*"
                i=1
                while [ $i -le $copies ] ; do
                for file in $files ; do
                        /bin/cat > /tmp/ftp-$$.axis << endftp
                user $login_name $password
                put $file $logical_printer
                quit
                endftp
                        /bin/ftp -n $internet_address < /tmp/ftp-$$.axis
                        /bin/rm /tmp/ftp-$$.axis
                done
                i=`expr $i + 1`
                done
                exit 0
                # end of interface-script!

                1)      Lag NULL-device. (se spiderprint)
                2)  Lagre skriptet f.eks under /usr/local/axis/ftp-admin-5
                3)  lpadmin -p axisprint -v /dev/printers/axisprint
                    lpadmin -p axisprint -i /usr/local/axis/ftp-admin-5
                        lpadmin -p axisprint -I PS -T PS
                        enable axisprint ; accept axisprint





Debugging:
Noen ganger kan det være veldig nyttig å høre hva scheduleren
sa den gjorde med jobben. #tail -f /var/lp/logs/requests (s-feltet)

DEKODING AV /VAR/LP/LOGS/REQUESTS


=   : separator-linje, inneholder: request-ID, UID GID, antall bytes i den 
      ufiltrerte fila, og tidspunkt for queuing.
C   : antall kopier printet
D   : Printer eller class eller ordet 'any'
F   : fila's navn
f   : navn på 'form'
H   : special handling: 'resume|hold|immediate'
      (Bør vel være immediate)
N   : Type of alert M=mail, W=write_to_terminal  
O   : -o parametre
P   : prioritet
p   : liste over sider som er printet
r   : hvis det er spurt etter "raw" processing (lp -r)
S   : Character-set eller PrintWheel
s   : resultat av request'en
T   : The title placed on the banner page
t   : The type of content found in the file(s)
U   : The name of the user submitted the request
x   : The slow filter used 
Y   : The list of special modes to give to the filters used to print the requests
y   : The fast filter used for the request
z   : The printer used for the request

Koder for s-feltet:
        0x0001  The request was held pending resume 
        0x0002  The request has a slow filter is running 
        0x0004  The request's slow filter has finished running 
        0x0008  The request is on printer 
        0x0010  The request has finished printing 
        0x0020  The request held pending userchange 
        0x0040  The request was cancelled 
        0x0080  The request should be next to print 
        0x0100  The request's slow filter or interface failed 
        0x0200  The Request is in transit to a remote 
        0x0400  The user is to be notified (alert) 
        0x0800  A notification (alert) is running 
        0x1000  The Request accepted on remote system 
        0x2000  The administrator placedRS_HELD 
        0x4000  had to change filters 
        0x8000  temporarily stopped the request 


Seriekommunikasjon:
PGA manglende tid til forberedelse, kommer KUN dette om serieporter:

THE SAFE SETUP OF MODEM DIALIN/OUT (esm)

Kobl opp modemet mot serieport "b", bruke en kabel som IKKE er krysset
Sett følgende linje i /etc/remote:
modem:dv=/dev/cua/b:br#19200:el=^C^S^Q^U^D:ie=%$:oe=^D:

deretter: #tip modem
og sett følgende parametre:

        AT&D3 (hardware DTR)
        AT&C1 (hardware CD)
        ATX0 (basic result codes only)
        ATE0 (does not echo commands)
        ATL1 (reduce speaker volume)
        ATA (auto answer, S0 =1)
        AT&W0 (save as boot-up profile)


    Sett in følgende i /etc/ttydefs:

        M2400:2400 opost onlcr:2400 hupcl erase ^h::M9600
        M9600:9600 opost onlcr:9600 hupcl erase ^h::M19200
        M19200:19200 opost onlcr:19200 hupcl erase ^h::M38400
        M38400:38400 opost onlcr:38400 hupcl erase ^h::M2400

pmadm -r -p zsmon -s ttyb
pmadm -a -p zsmon -s ttyb -i root -v `ttyadm  -V` -fu -m "`ttyadm -d \
   /dev/term/b -s /usr/bin/login -l M38400 -b -S n -m ldterm,ttcompat`" \
    -y "dial in/out on serial port b"

Dessuten: Verdens beste seriport-dame: Celeste Stokely




Testplugg:
        Gudegave:
                Kobl sammen pinne 2 og 3
                Koble sammen pinne 4 og 5
                Koble sammen pinne 6, 8 og 20
                Seriekoble en Diode og en motstand på 1K fra pinne 2 til pinne 7
                (katode mot pinne 7)

                Denne pluggen "snur" alle signaler, og blinker når data passerer.


Notater: