BSD Tiskárny - Lpd
Lpd (Line Printer Daemon) se stará o tisk v BSD systémech.
Stejně je pojmenovaný protokol pro tisk po síti definovaný v RFC1179
(tento protokol používá standardně port 515). Lpd běží na pozadí a kontroluje, jestli se ve spool adresářích pro jednotlivé tiskárny, nenacházejí nějaké úlohy. Pokud ano, vytvoří potomka, který se o vykonání dané úlohy postará.
Pro ovládání tiskárny a tiskového démona se používá několik pomocných programů:
- lpc(8) - ovládání tiskového démona, lze zakázat nebo povolit zařazování úloh do tiskových front, měnit pořadí úloh ve frontě...
- lpr(1) - pokyn k tisku dokumentu na tiskárně
- lpq(1) - zjištění stavu tiskové fronty
- lprm(1) - odebrání tiskové úlohy z fronty
- lptest(1) - ASCII test stránka
Konfigurace démona je uložena v souboru /etc/printcap, konfiguraci jedné tiskárny je věnován jeden řádek.
Stroje s oprávněním tisknout na našem stroji jsou v souboru /etc/hosts.lpd
Každá tiskárna musí mít definovaný svůj spoolovací adresář (/var/spool/lpd/tiskárna).
Příklad konfigurace lokální tiskárny:
# LOCAL djet540
lp|dj|deskjet| HP Deskjet 540:\
:sd=/var/spool/lpd/dj:\
:mx#0:\
:lp=/dev/lp1:\
:sh:
#sh \ potlačení banner page před každou úlohou
#sf potlačení form feedu za každou úlohou
#lf=/varloglpd-errs\ log file
#pl#60 page length
#mx - maximalní velikost tiskové úlohy
#mc maximum kopií mc nebo mx#0 bez omezení
#if=/usr/... input filter - pro postscript...
Příklad konfigurace vzdálené tiskárny:
# REMOTE djet500
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:rm=nekde.jinde.cz:\
:rp=dj5:\
:sh:
#rp - remote printer
Většina distribucí má nějaký klikací nástroj na nastavení výše uvedeného....
LPRng
LPR next generation je rozšířená implementace tiskového subsystému BSD, která pracuje podle RFC1179.
LPRng rozumí i způsobu tisku používanému v SYSTEM V. Je zde dobře vyřešena bezpečnost, podporována je autentizace přes Kerberos nebo PGP.
LPRng řeší rozložení zátěžě a má podrobněji vyřešená oprávnění k tisku atd.
Používá soubory s identickými názvy, ale s odlišnou implementací.
>lpd - tiskový server
lpr, lpq, lprm, lpc, lpstat - stejné jak lpd, emulace lpstat ze System V.
printcap - "databáze" záznamů tiskáren a tiskových front...
lpd.conf - LPRng konfigurační soubor používaný jak serverem, tak klienty
lpd.perms - oprávění, které používá lpd při kontrole uživatelských akcí
printcap
Systémový printcap je uložen v adresáři specifikovaném při kompilaci jako ${sysconfdir}. Kromě toho si může každý uživatel vytvořit ve svém domovském adresáři svůj vlastní .printcap. Pokud takový existuje, používá se přednostně. Pokud neexistuje při instalaci /etc/printcap, pak je defaultně jako systémový printcap nainstalován soubor:
# dummy printcap file
lp:cm=Dummy Printcap Entry:
:lp=/dev/null
:sd=/var/spool/lpd/%P
Formát printcap
Formát lpd.conf
Podobně jako pro printcap platí, že proměnné (options) záznamu mohou být
nastaveny buď na logickou hodnotu nebo string:
# set option value to 1 or ON
ab
:ab
# set otion value to 0 or OFF
ab@
:ab
#set option value to string
str=name
Filtry
Filstry se řeší tisk poscriptu na neposcriptové tiskárně, záměna crlf za lf v ASCII atd.
Magický filtr se pokusí analyzovat typ souboru, který chceme tisknout a až
podle toho zařídí patřičné transformace. Příkladem jsou filtry APSfilter, Magic-Filter, gslp.ps.
Posledně jmenovaný je dodávaný s kompletní distribucí Ghostscriptu.
Jiná řešení
-
XPP (X Printing Panel)
http://cups.sourceforge.net/xpp
X windows tiskový správce.
-
CUPS (Common Unix Printing System)
http://www.cups.org
Relativně nový tiskový démon. Od firmy Easy Software Production. Je pod GPL licencí.
-
PPR
(Page Printer Spooler)
http://ppr.trincoll.edu
Unixový tiskový démon pro PS tiskárny, které jsou
připojeny lokálně, přes AppleTalk, LanManages, LPD, TCP/IP protokoly. Lze tisknout i přes Samba clienta.
Spolupráce lpd se Sambou
Z Unixu tiskneme ve Windows:
Z Unixu lze na Windows tisknout pomocí Samby. Tento balík obsahuje smbprint, který se nastaví v souboru /etc/printcap jako vstupní filtr. Lze také použít smbclient a poslat úlohu přímo na SMB tiskovou službu, bez nutnosti vyvolávat lpd.
Příklad konfigurace tiskárny:
lp|remote-smbprinter:\
:sh:\
:lp=/dev/null:\
:sd=/var/spool/lpd/lp:\
:if=/usr/local/sbin/smbprint:
Z Windows tiskneme v Unixu:
I zde probíhá tisk za pomoci Samby. Abychom mohli z Windows tisknout na Unixu musíme změnit konfigurační soubor smb.conf:
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
[printers]
comment = All Printers
security = server
path = /var/spool/lpd/lp
browseable = no
printable = yes
public = yes
writable = no
create mode = 0700
lpq command = /usr/bin/lpq -P%p
lprm command = /usr/bin/lprm -P%p %j
lppause command = /usr/sbin/lpc hold %p %j
lpresume command = /usr/sbin/lpc release %p %j
queuepause command = /usr/sbin/lpc -P%p stop
queueresume command = /usr/sbin/lpc -P%p start
[ljet]
security = server
path = /var/spool/lpd/lp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -r -h -P %p %s
Odkazy
www.linuxprinting.org
Printing Usage HOWTO
Printing HOWTO
LPRng
Samba
SMB HOWTO