Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > e05c4514608e650af9b28d9be1d35a18 > files > 1489

howto-html-it-10.1-4mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
 <TITLE>The Linux Printing HOWTO: Le stampanti seriali e lpd</TITLE>
 <LINK HREF="Printing-HOWTO-8.html" REL=next>
 <LINK HREF="Printing-HOWTO-6.html" REL=previous>
 <LINK HREF="Printing-HOWTO.html#toc7" REL=contents>
</HEAD>
<BODY>
<A HREF="Printing-HOWTO-8.html">Avanti</A>
<A HREF="Printing-HOWTO-6.html">Indietro</A>
<A HREF="Printing-HOWTO.html#toc7">Indice</A>
<HR>
<H2><A NAME="s7">7.</A> <A HREF="Printing-HOWTO.html#toc7">Le stampanti seriali e lpd</A></H2>

<H2><A NAME="ss7.1">7.1</A> <A HREF="Printing-HOWTO.html#toc7.1">Configurazione di printcap.</A>
</H2>

<P>Lpd prevede cinque attributi da configurare in <EM>/etc/printcap/</EM> per controllare
il funzionamento della porta seriale a cui e' collegata la stampante. Leggete
la man page di <EM>
<A HREF="http://www.picante.com/~gtaylor/pht/man/printcap.html">printcap</A></EM> e notate il 
significato degli attributi
<EM>br#</EM>, <EM>fc#</EM>, <EM>xc#</EM>, <EM>fs#</EM> e <EM>xs#</EM>.
Gli ultimi quattro sono mappe di bit che indicano i settaggi della porta.
L'attributo <EM>br#</EM> e' semplicemente il baud rate, ad esempio
`<CODE>br#9600</CODE>'.</P>

<P>E' molto semplice tradurre i settaggi da 
<A HREF="http://www.picante.com/~gtaylor/pht/man/stty.html">stty</A> in attributi per
printcap. Se ne avete bisogno date un'occhiata alla man page di stty adesso.</P>

<P>Usate stty per configurare la porta della stampante, in modo che possiate fare
il cat di un file sulla porta ed ottenere una stampa corretta. Nel mio caso
`<EM>stty -a</EM>' fornisce le seguenti informazioni:
<BLOCKQUOTE><CODE>
<PRE>
       dina:/usr/users/andy/work/lpd/lpd# stty -a &lt; /dev/ttyS2
       speed 9600 baud; rows 0; columns 0; line = 0;
       intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &lt;undef>;
       eol2 = &lt;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
       
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>L'unica differenza tra questo ed il modo in cui la porta e' inizializzata al
boot e' data da -clocal, -crtscts, e ixon. Per voi potrebbe essere anche
differente, a seconda del modo in cui la vostra stampante fa il controllo di
flusso.</P>

<P>In realta' l'uso di stty e' un po' strano. Infatti stty opera sul terminale
collegato al suo standard input, lo si usa per manipolare una data porta
seriale utilizzaando il carattere '<CODE>&lt;</CODE>' come sopra.</P>

<P>Dopo aver configurato correttamente i settaggi di stty, in modo che `<EM>cat file >
/dev/ttyS2</EM>' (nel mio caso) invia il file alla stampante, guardate il file 
/usr/src/linux/include/linux/termios.h. Contiene molti #defines ed alcune
strutture (potreste farne il cat sulla stampante (ormai funziona, no?)). Andate
alla sezione che comincia con
<BLOCKQUOTE><CODE>
<PRE>
      /* c_cflag bit meaning */
       #define CBAUD   0000017
</PRE>
</CODE></BLOCKQUOTE>
      </P>
<P>Questa sezione elenca i significati  dei bit <EM>fc#</EM> ed <EM>fs#</EM>.
Noterete che i nomi (dopo il baud rate) coincidono con una delle linee 
dell'output di stty. Non e' forse facile?</P>

<P>Annotate quali di questi settaggi sono preceduti da un - nell'output di stty.
Sommate tutti questi numeri (sono in ottale). Questo rappresenta i bit che
dovete azzerare, quindi il risultato e' la vostra capacita' di <EM>fc#</EM>.
Naturalmente ricordate che poi setterete i vari bit direttamente dopo averli
azzerati, pertanto potete semplicemente usare `<CODE>fc#0177777</CODE>' 
(io lo faccio).</P>

<P>Ora fate lo stesso per quei settaggi (elencati in questa sezione) che non
hanno un - davanti nell'output di stty. Nel mio esempio i piu' importanti
sono CS8 (0000060), HUPCL (0002000), e CREAD (0000200). Controllate anche la
flag relativa al baud rate (la mia e' 0000015). Sommate tutti questi numeri,
nel mio esempio ottenendo 0002275. Questo numero viene messo nelle vostre
capacita' di <EM>fs#</EM> (`<CODE>fs#02275</CODE>' funziona correttamente per me).</P>

<P>Fata la stessa cosa di azzeramento e settaggio dei bit nella successiva
sezione del file di include, "c_lflag bits". Nel mio caso io non devo settare
niente, quindi uso `<CODE>xc#0157777</CODE>' e `<CODE>xs#0</CODE>'.</P>

<H2><A NAME="ss7.2">7.2</A> <A HREF="Printing-HOWTO.html#toc7.2">Stampanti seriali antiquate che perdono caratteri.</A>
</H2>

<P>Jon Luckey ha evidenziato come alcune stampanti seriali con interfacce da due
lire e buffer molto piccoli, intendono veramente stop  quando indicano cio'
attraverso i meccanismi di controllo di flusso. Jon ha scoperto che
disabilitando il buffer FIFO della porta seriale 16550 con <CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/setserial.html">setserial</A></CODE> ha
risolto il problema (in pratica e' come se si indicasse a Linux che la porta
seriale e' una 8250).</P>

<HR>
<A HREF="Printing-HOWTO-8.html">Avanti</A>
<A HREF="Printing-HOWTO-6.html">Indietro</A>
<A HREF="Printing-HOWTO.html#toc7">Indice</A>
</BODY>
</HTML>