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: