Drukowanie w Linux-ie: Drukarki szeregowe pod lpd.
Następna strona
Poprzednia strona
Spis treści
15. Drukarki szeregowe pod lpd.
15.1 Ustawianie w printcap-ie.
Lpd udostepnia pięć atrybutów, które możesz ustawić w pliku
/etc/printcap, aby kontrolować wszystkie ustawienia portu
szeregowego, do którego dołączona jest drukarka. Przeczytaj stronę
podręcznika systemowego na temat
printcap i
zapamiętaj znaczenia: br#, fc#, xc#,
fs# i xs#. Ostatnie cztery z tych atrybutów to
mapy bitowe oznaczające ustawienia portu. Atrybut br# jest
prędkością: np. br#9600.
Tłumaczenie z postaci stty na printcap jest bardzo
proste. Jeśli musisz, to zobacz stronę podręcznika systemowego na
temat stty.
Użyj stty, aby ustawić port drukarki, tak żebyś mógł wysłać
plik do tego portu (poleceniem cat) i otrzymał poprawny
wydruk. Oto co wyświetla polecenie stty -a dla mojego portu
drukarki:
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
Jedynymi zmianami między tym, i stanem w jakim port jest
inicjowany podczas startu są -clocal, -crtscts i
ixon. Twój port może mieć inne ustawienia w zaleźności od tego
jak twoja drukarka kontroluje przepływ (flow control).
stty używa się właściwie w dziwny sposób. Ponieważ polecenie
stty operuje na terminalu podłączonym do jego standardowego
wejścia, ty używasz je, aby manipulować danym portem szeregowym
przez użycie znaku < jak powyżej.
Jak już masz dobre ustawienia, tak że cat plik >
/dev/ttyS2 (w moim przypadku) działa, zajrzyj do pliku
/usr/src/linux/include/linux/termios.h. Zawiera on wiele
#define (definicji) i kilka struktur - możesz go sobie
wydrukować (przecież drukarka działa, nie ?) i używać jako
pomocy. Idź do sekcji, która zaczyna się tak:
/* c_cflag bit meaning */
#define CBAUD 0000017
Sekcja ta zawiera znaczenia bitów fc# i
fs#. Zauważysz, że nazwy (po ilości bodów) są identyczne z
tymi z polecenie stty. A nie mówiłem, że to będzie proste ?
Zobacz, które z tych ustawień mają znak "-" na początku przy
poleceniu stty. Zsumuj te wszystkie liczby (są one zapisane w
systemie ósemkowym). To będą te bity, które będziesz chciał
wyzerować, tak więc wynik jest tym, co masz wpisać do
fc#. Pamiętaj oczywiście, że będziesz ustawiał bity zaraz
po tym jak je wyzerujesz, tak więc możesz użyć
"fc#0177777" (ja tak robię).
Teraz zrób to samo dla tych ustawień, które nie mają znaku "-" na
początku w poleceniu stty. W moim przykładzie ważne są CS8
(0000060), HUPCL (0002000) i CREAD (0000200). Zapamiętaj też
ustawienie dla swojej prędkości (u mnie jest to 0000015). Zsumuj to
wszystko - w moim przykładzie będzie to 0002275. To będzie to, co
masz wpisać do fs#. ("fs#02275 działa u mnie.)
Zrób to samo z ustawieniem i zerowaniem dla następnej sekcji pliku
nagłówkowego. "c_lflag bits". W moim przypadku nie musiałem niczego
ustawiać, tak więc użyłem tylko "xc#0157777" i
"xs#0".
15.2 Starsze drukarki szeregowe, które gubią znaki.
Jon Luckey pisze, że u niektórych starszych szeregowych drukarek z
interfejsem za 10 centów i małym buforem, stop w kontroli przepływu
oznacza rzeczywiste stop dla drukowania. Potem odkrył, że żeby
naprawić tę niedogodność wystarczy wyłączyć FIFO w układzie 16550
poleceniem
setserial
(żeby to zrobić po prostu podajesz typ ukladu uart jako 8250).
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
printing howto pl 5printing howto pl 4printing howto pl 6printing howto pl 12ax25 howto pl 15printing howto pl 10Keyboard HOWTO pl 15 (2)printing howto pl 8printing howto pl 9printing howto pl 14printing howto pl 3printing howto plprinting howto pl 1PostgreSQL HOWTO pl 15Serial HOWTO pl 15 (2)printing howto pl 13Printing HOWTO pl (2)printing howto pl 7Printing HOWTO plwięcej podobnych podstron