Naprej Nazaj Kazalo

17. Zaporedni tiskalniki pod lpd

Zaporedni tiskalniki so v lpd bolj zapleteni.

17.1 Postavitev v printcap

Strežniku lpd lahko podaste pet atributov, ki jih nastavite v datoteki /etc/printcap, in s tem nadzorujete vse nastavitve zaporednih vrat, na katerih je tiskalnik. Preberite stran referenčnega priročnika o printcap in si poglejte pomen atributov br#, fc#, xc#, fs# in xs#. Zadnji štirje od teh atributov so bitne slike, ki pomenijo nastavitve za uporabo vrat. Atribut br# je preprosto hitrost prenosa v baudih, npr. ,br#9600`.

Zelo lahko je preslikavati iz nastavitev stty v nastavitev zastavic v printcap. Če morate to storiti, zdaj poglejte stran o stty v referenčnem priročniku.

Uporabite stty za postavitev tiskalniških vrat, tako da lahko izpišete na njih datoteko (s cat) in se ta pravilno natisne. Takole je videti ,stty -a` za moja tiskalniška vrata:

dina:/usr/users/andy/work/lpd/lpd# stty -a < /dev/ttyS2
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr
-igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 
bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase
-tostop -echoprt -echoctl -echoke
Edine razlike med tem in načinom, kako se vrata inicializirajo ob zagonu, so -clocal, -crtscts in ixon. Vaša vrata so prav lahko drugačna, odvisno od tega, kako vaš tiskalnik zganja kontrolo toka.

Pravzaprav uporabljate stty nekam čudno. Ker stty deluje na terminalu, priključenem na standardni vhod, ga uporabite za obvladovanje danih zaporednih vrat z uporabo znaka ,<`, kakor zgoraj.

Ko ste enkrat zadeli svoje nastavitve v stty tako, da ukaz ,,cat file > /dev/ttyS2`` (v mojem primeru) pošlje datoteko na tiskalnik, si oglejte datoteko /usr/src/linux/include/asm-i386/termbits.h. Ta vsebuje veliko definicij z #define in nekaj struktur struct (morda boste želeli natisniti to datoteko na tiskalniku (saj vam deluje, kajne?) in jo uporabili kot papir za čečkanje). Pomaknite se v razdelek, ki se začenja takole:

/* c_cflag bit meaning */
#define CBAUD 0000017
Ta razdelek našteva pomen posameznih bitov v fc# in fs#. Opazili boste, da se tamkajšnja imena (po hitrostih prenosa v baudih) ujemajo z eno od vrstic izhoda stty. Vam nisem rekel, da bo to lahko?

Poglejte, katere nastavitve izhoda stty se začnejo z znakom ,-`. Seštejte vse take številke (osmiške so). To predstavlja bite, ki bi jih radi ugasnili, zato je rezultat vaša zmožnost fc#. Seveda, spomnite se, da boste prižgali bite takoj, ko jih boste ugasnili, zato lahko le uporabite ,fc#0177777` (jaz storim tako).

Zdaj napravite isto za tiste nastavitve (naštete v tem razdelku), ki pred seboj nimajo znaka ,-` v vašem izhodu stty. V mojem primeru so pomembni biti CS8 (0000060), HUPCL (0002000) in CREAD (0000200). Pazite tudi na zastavice za vašo baudno hitrost (moja je 0000015). Seštejte vse to in v mojem primeru boste dobili 0002275. To gre v vašo zmožnost fs# (,fs#02275` v mojem primeru deluje čisto v redu).

Napravite isto s prižiganjem in ugašanjem za naslednji razdelek vključne datoteke, ,,c_lflag bits``. V mojem primeru mi ni bilo treba nastavljati ničesar, torej uporabim le ,xc#0157777` in xs#0`.

17.2 Starejši zaporedni tiskalniki, ki izgubljajo znake

Jon Luckey opozarja, da nekateri starejši tiskalniki z zaporednimi vmesniki za dva stotina in majhnimi vmesnimi pomnilniki zares mislijo ,,stop``, ko tako pravijo s kontrolo toka. Opazil je, da je onemogočenje FIFO na njegovih zaporednih vratih Linuxa s čipom UART 16550 s pripomočkom setserial odpravilo težavo izgubljanja znakov (očitno za to le določite tip kot UART 8250).


Naprej Nazaj Kazalo