/usr/share/doc/HOWTO/pl-html/Printing-HOWTO.pl.html is in doc-linux-pl-html 2002.06.14-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<META HTTP-EQUIV="content-type" content="text/html; charset=iso-8859-2">
<TITLE>Drukowanie w Linux-ie</TITLE>
</HEAD>
<BODY>
<H1>Drukowanie w Linux-ie<BR></H1>
<H2>Autor: Grant Taylor,
<A HREF="mailto:gtaylor+pht@picante.com">gtaylor+pht@picante.com</A><BR>
v3.14, 23 Wrze¶nia 1997<BR>
<B>Wersja polska: Bartosz Maruszewski
<A HREF="mailto:B.Maruszewski@jtz.org.pl">B.Maruszewski@jtz.org.pl</A><BR></B>
v1.3, 12 Lutego 1998</H2>
<P><HR>
<EM>Jest to dokument zawieraj±cy informacje na takie tematy jak:
generowanie wydruku, podgl±dniêcie go przed drukowaniem, wydrukowanie go
oraz przefaxowanie czego¶ pod Linux-em (i innymi Unix-ami w ogólno¶ci).
Dokument ten zosta³ napisany w standardzie ISO-8859-2.
Orygina³ mo¿na znale¼æ pod adresem
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/docs/HOWTO">ftp.icm.edu.pl</A> w katalogu /pub/Linux/sunsite/docs/HOWTO.</EM>
<HR>
<H2><A NAME="s1">1. Wprowadzenie.</A></H2>
<P>
<P>Printing HOWTO powinno zawieraæ wszystko co powiniene¶ wiedzieæ,
aby ustawiæ drukarkê na swoim Linux-ie. Jest to trochê bardziej
skomplikowane ni¿ w ¶wiecie poka¿-i-kliknij Microsoft-u i Apple'a,
ale za to bardziej elastyczne i z pewno¶ci± prostsze je¶li chodzi
o administrowanie w du¿ych sieciach lokalnych.
<P>Dokument ten jest tak u³o¿ony, ¿e wiêkszo¶æ bêdzie musia³a
przeczytaæ tylko pierwsz± po³owê czy co¶ ko³o tego. Wiêkszo¶æ
nieciekawych informacji i takich, które s± zale¿ne od sytuacji
znajduje siê w drugiej po³owie i ³atwo je znale¼æ w spisie tre¶ci,
podczas gdy informacje zawarte w sekcjach 9 i 10 bêd± potrzebne
wiêkszo¶ci.
<P>Wiêkszo¶æ informacji z poprzedniej wersji zosta³o usuniêtych,
poniewa¿ zdecydowa³em siê na napisanie tego dokumentu ca³kowicie od
nowa. Zrobi³em tak, bo poprzednie wersje by³y takie wielkie - oko³o
60 stron A4, i narracja by³a do kitu. Je¶li nie znalaz³e¶ tutaj
odpowiedzi to powiniene¶ a) przeszukaæ poprzedni± wersjê
<A HREF="http://www.picante.com/~gtaylor/pht/">na stronie domowej tego HOWTO</A>, b) podrzuciæ mi informacjê co powinno tu byæ, a nie
ma tego.
<P>
<A HREF="http://www.picante.com/~gtaylor/pht/">Strona domowa tego HOWTO</A> jest dobrym miejscem na szukanie
nowszych wersji tego dokumentu; jest ona oczywi¶cie tak¿e
dystrybuowana przez Projekt Dokumentacji Linux-a; archiwum zawieraj±ce
dokumenty HOWTO mo¿esz znale¼æ w Polsce pod adresem
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/docs/HOWTO">ftp.icm.edu.pl</A> w katalogu
<CODE>/pub/Linux/sunsite/docs/HOWTO</CODE>.
<P>
<H2>1.1 Historia</H2>
<P>
<P>To jest trzecia generacja, a szczerze mówi±c, to trzecia edycja
zrobiona od nowa, dokumentu Printing-HOWTO. Historia PHT mo¿e w
ujêciu chronologicznym wygl±daæ tak:
<P>
<OL>
<LI>Napisa³em Printing-HOWTO w 1992 w odpowiedzi na wiele pytañ
pojawiaj±cych siê na grupie comp.os.linux dotycz±cych drukowania
napisa³em PHT i wys³a³em go tam. Dokument ten wyprzedzi³ Projekt
Dokumentacji Linux-a o kilka miesiêcy i by³ pierwszym dokumentem
a'la FAQ zwanym HOWTO. Edycja ta by³a w czystym ASCII.</LI>
<LI>Po do³±czeniu do PDL, PHT zosta³o wcielone do tego¿ projektu
przez Briana McCauley <EM><B.A.McCauley@bham.ac.uk></EM>; przez
kolejne dwa lata wspó³tworzyli¶my PHT. Po jakim¶ czasie
do³±czyli¶my pracê Karla Auera<EM><Karl.Auer@anu.edu.au></EM>. Ta
generacja PHT by³a w TeXinfo oraz tak¿e w PS, HTML, ASCII i Info.</LI>
<LI>Po tym jak pozwolili¶my PHT ¿eby trochê "podgni³o" przez rok i
po nieskutecznych poszukiwaniach jakiej¶ osoby, która zajê³aby siê
PHT, mia³o miejsce powstanie tej wersji. Ta generacja PHT jest w Linuxdoc-SGML.</LI>
</OL>
<P>
<H2>1.2 Prawa autorskie.</H2>
<P>
<P>Prawa autorskie nale¿± do Granta Taylora (c) 1997. Proszê kopiowaæ i
dystrybuowaæ ten dokument do woli, ale nie modyfikoewaæ ani nie
zapomnieæ mojego nazwiska.
<P>
<H2><A NAME="s2">2. Jak drukowaæ.</A></H2>
<P>
<P>Je¶li masz ju¿ zainstalowany program lpd i jest on ustawiony dla
twojej drukarki przez kogokolwiek, to wszystko czego potrzebujesz,
to nauczyæ siê pos³ugiwaæ poleceniem <I>lpr</I>. Dokument
<A HREF="http://www.jtz.org.pl/~bart/Tlumaczenie/Html/Printing-Usage-HOWTO.pl.html">Printing-Usage-HOWTO</A> zawiera opis tego polecenia i kilku
innych u¿ywanych do manipulowania kolejk± wydruku.
<P>Jednak je¶li masz nowy system albo now± drukarkê, to bêdziesz
musia³ ustawiæ serwis drukowania w ten lub inny sposób zanim
bêdziesz móg³ drukowaæ. Czytaj dalej!
<P>
<H2><A NAME="s3">3. Urz±dzenia dotycz±ce drukarki w j±drze.</A></H2>
<P>
<P>
<H2>3.1 Urz±dzenie lp.</H2>
<P>
<P>J±dro Linux-a (<=2.1.32), zak³adaj±c, ¿e wkompilowa³e¶ lub za³adowa³e¶
urz±dzenie <I>lp</I> (polecenie <CODE>cat /proc/devices</CODE> powinno
pokazaæ urz±dzenie <I>lp</I>), dostarcza jedno lub wiêcej urz±dzeñ
<I>/dev/lp0</I>, <I>/dev/lp1</I> i <I>/dev/lp2</I>. <B>Nie s±</B>
one kojarzone dynamicznie, ale s± one na sta³e przypisane
konkretnym adresom I/O. Oznacza to, ¿e twoja pierwsza drukarka mo¿e
byæ na <I>lp0</I>, albo <I>lp1</I> w zale¿no¶ci od sprzêtu. Spróbuj
obu. ;)
<P>Kilku u¿ytkowników zg³osi³o, ¿e ich dwukierunkowe porty lp nie
zostaj± wykryte je¶li u¿ywaj± starszego, jednokierunkowego kabla.
Sprawd¼ czy masz przyzwoity kabel.
<P>Na danym porcie nie mo¿na mieæ na raz sterowników <I>plip</I> oraz
<I>lp</I>. Ale mo¿na za³adowaæ jeden albo drugi sterownik w ka¿dej
chwili; rêcznie albo przez <I>kerneld</I> przy j±drze w wersji 2.x.x
(lub pó¼niejsze 1.3.x). Je¶li dok³adnie ustawisz przerwania itp., to
mo¿esz przypuszczalnie mieæ <I>plip</I> na jednym porcie, a <I>lp</I>
na drugim. Jedna osoba zrobi³a tak, przez edycjê sterowników; z
niecierpliwo¶ci± oczekujê osoby, która zrobi³aby to tylko przy
u¿yciu argumentów z linii poleceñ.
<P>Jest takie narzêdzie zwane <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/tunelp.html">tunelp</A></I>, przy pomocy którego "root" mo¿e ustawiaæ
przerwania i inne opcje na urz±dzeniu <I>lp</I>.
<P>Je¶li urz±dzenie <I>lp</I> jest wbudowane w j±dro w wersji 1.3.x lub
wy¿szej, to mo¿esz przekazaæ parametr <CODE>lp=</CODE> do j±dra, w którym
mo¿esz ustawiæ przerwanie, adres itp.
<P>
<PRE>
Je¶li sterownik lp jest wbudowany w j±dro, to mo¿esz u¿yæ parametru
LILO/LOADLIN, aby ustawiæ adres portu i przerwanie, których sterownik
bêdzie u¿ywa³.
Sk³adnia: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]
Na przyk³ad: lp=0x378,0 lub lp=0x278,5,0x378,7 **
Zauwa¿, ¿e je¶li u¿ywasz tego parametru, to musisz podaæ *wszystkie*
porty, których bêdziesz u¿ywaæ - nie ma warto¶ci domy¶lnych. Mo¿esz
wy³±czyæ wbudowany sterownik parametrem lp=0.
</PRE>
<P>Je¶li ³adujesz sterownik drukarki jako modu³ w wersji j±dra 2.x.x
lub pó¼nej 1.3.x, to mo¿esz podaæ przerwanie i port jako parametr w
linii poleceñ przy <I>insmod</I> (albo w pliku
<CODE>/etc/conf.modules</CODE>, ¿eby dzia³a³o tak¿e dla
kerneld). Parametry to: <I>io=port0,port1,port2</I> i
<I>irq=irq0,irq1,irq2</I>. Wiêcej informacji znajdziesz w podrêczniku
systemowym <I>man</I> na stronie dotycz±cej <I>insmod</I>.
<P>**Dla tych, którzy (jak ja) nigdy nie mog± znale¼æ standardowego
portu kiedy go potrzeba, to s± one takie jak w podanym wy¿ej drugim
przyk³adzie. Drugi port (<I>lp0</I>) jest pod adresem 0x3bc. Nie mam
pojêcia jakiego przerwania zwykle u¿ywa.
<P>Kod ¼ród³owy linux-owego sterownika portu równoleg³ego jest w
pliku /usr/src/linux/drivers/char/lp.c
<P>
<H2>3.2 Urz±dzenie parport (j±dra >= 2.1.33)</H2>
<P>
<P>Pocz±wszy od j±dra w wersji 2.1.33 (dostêpne tak¿e jako ³ata dla
j±dra 2.0.30), urz±dzenie lp jest po prostu klientem nowego
urz±dzenia parport. Dodanie urz±dzenia parport naprawia pewn±
ilo¶æ b³êdów, które drêczy³y poprzedni sterownik urz±dzenia lp -
mo¿e ono wpó³dzieliæ port z innym urz±dzeniem, przypisuje
dynamicznie dostêpne porty równoleg³e numerom urz±dzeñ zamiast
wymuszaæ z góry narzucon± komunikacjê pomiêdzy adresami I/O a
numerami portów i tak dalej.
<P>Wiêcej szczegó³ów na temat parport podam kiedy sam znajdê siê w
sytuacji kiedy bêdê tego u¿ywa³. A w miêdzyczasie mo¿esz
przeczytaæ plik Documentation/parport.txt w drzewie ze ¼ród³ami
j±dra albo zajrzyj
<A HREF="http://www.cyberelk.demon.co.uk/parport.html">na stronê parport</A>.
<P>
<H2>3.3 Urz±dzenia szeregowe.</H2>
<P>
<P>Urz±dzenia szeregowe pod Linux-em zwykle nazywaj± siê
<CODE>/dev/ttyS1</CODE> lub podobnie. Narzêdzie <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/stty.html">stty</A></I> pozwala na interaktywne przegl±danie lub okre¶lanie
ustawieñ dla portu szeregowego; <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/setserial.html">setserial</A></I>
pozwoli ci na kontrolowanie kilku rozszerzonych w³a¶ciwo¶ci oraz na
skonfigurowanie IRQ i adresów I/O dla niestandardowych
portów. Wiêcej na temat portów szeregowych znajdziesz w
<A HREF="http://www.jtz.org.pl/Html/Serial-HOWTO.pl.html">Serial-HOWTO</A> dostêpnym tak¿e w jêzyku polskim.
<P>Je¶li u¿ywasz wolnej drukarki szeregowej z kontrol± przep³ywu (flow
control), mo¿e siê okazaæ, ¿e niektóre z twoich wydruków s±
obcinane. Mo¿e byæ to spowodowane zachowaniem portu szeregowego,
który wyrzuca wszystkie znaki ze swojego bufora po 30 sekundach od
momentu zamkniêcia portu. W buforze mo¿e siê znajdowaæ do 4096
znaków a je¶li twoja drukarka u¿ywa kontroli przep³ywu i jest
wystarczaj±co wolna, tak ¿e nie mo¿e przyj±æ wszystkich 4096 znaków
z portu w ci±gu 30 sekund, po tym jak oprogramowanie drukuj±ce
zakmnê³o port, to koñcowa zawarto¶æ bufora zostanie utracona. Je¶li
w wyniku polecenia <I>cat plik > /dev/ttyS2</I> pojawia siê
ca³y wydruk dla krótkich plików, a d³u¿sze s± obcinane, to to mo¿e
byæ twój problem.
<P>Okres 30 sekund mo¿e zostaæ zmieniony poprzez opcjê "closing_wait"
programu setserial (wersja 2.12 i pó¼niejsze). Porty szeregowe
maszyny s± z regu³y inicjowane poprzez odwo³anie do setserial w
pliku startowym rc.serial. Odwo³anie do portu szeregowego drukarki
mo¿e byæ zmodyfikowane, tak aby ustawiæ closing_wait w tym samym
czasie kiedy ustawia inne parametry tego portu.
<P>
<H2><A NAME="s4">4. Obs³ugiwane drukarki.</A></H2>
<P>
<P>J±dro Linux-a obs³uguje raczej ka¿d± drukarkê, któr± mo¿esz
pod³±czyæ do szeregowego albo równoleg³ego portu, ale s± rzeczy na
które trzeba spojrzeæ oraz drukarki których nie bêdziesz w stanie
u¿yæ nawet pomimo, ¿e (elektrycznie mówi±c) mog± one komunikowaæ
siê z Linux-em. W grupie tych niekompatybilnych drukarek przewa¿aj±
te, które polegaj± na "Windows Printing System". (Czêsto s± one
oznaczone "for Windows".) Te drukarki <I>nie</I> wspó³pracuj± z
Linux-em. Nie maj± ¿adnych inteligentnych czê¶ci i polegaj± na
procesorze komputera, który musi zrobiæ wiêkszo¶æ tego co kiedy¶
robi³y procesory w drukarce. Niestety te zadania mog± byæ wykonane
tylko przez sterowniki dostarczone przez producenta, które
dzia³aj± tylko pod Windows. Wiêc nie kupuj takiej drukarki do
Linux-a.
<P>Je¶li chodzi o drukarki, które <I>dzia³aj±</I> z Linux-em,
to najlepszym wyborem jest kupienie drukarki z interpreterem
PostScript-u. Prawie ka¿de oprogramowanie pod Unix-a, które
tworzy jaki¶ drukowalny wynik tworzy go w PostScripcie, wiêc
oczywistym jest, ¿e najlepiej kupiæ drukarkê obs³uguj±c±
PostScript. Niestety, ale obs³uga tego jêzyka poza drukarkami
laserowymi jest bardzo rzadko spotykana.
<P>Je¶li nie uda ci siê wydobyæ (raczej wiêkszego) bud¿etu
potrzebnego na kupno drukarki PostScript-owej, mo¿esz u¿yæ
jakiejkolwiek drukarki obs³ugiwanej przez Ghostcript, darmowy
interpreter PostScript-u u¿ywanego do druku PostScript-owego. Na
<A HREF="http://www.cs.wisc.edu/~ghost/">domowej stronie Ghostscript-u</A> znajdziesz obs³ugiwane drukarki i informacje na
temat nowych i ekpserymentalnych sterowników. Pomó¿ proszê w
ulepszaniu Ghostscript-u poprzez zg³aszanie sukcesów b±d¼ pora¿ek
jak o to prosz±.
<P>
<H2><A NAME="s5">5. Jakie oprogramowanie do kolejkowania ?</A></H2>
<P>
<P>Do niedawna wybór dla u¿ytkowników Linux-a by³ prosty - wszyscy
u¿ywali tego samego, starego lpd wziêtego bezpo¶rdnio z kodu
Net-2 BSD. Nawet dzisiaj wiêkszo¶æ sprzedawców dostarcza ten
w³a¶nie program. Ale to siê zaczyna zmieniaæ. Systemy SVR4
w³±czaj±c w to Solaris Sun-a dostarczaj± ca³kiem inny pakiet do
kolejkowania oparty na <I>lpsched</I>. Pojawiaj± siê tak¿e oznaki, i¿
niektórzy sprzedawcy Linux-a przejd± na dostarczanie LPRng, o wiele
mniej zabytkowej implementacji, która jest dostêpna za darmo. LPRng
jest o wiele prostszy w administrowaniu dla wiêkszych instalacji i
ma o wiele przyja¼niejsz± bazê danych ani¿eli lpd.
<P>Na dzieñ dzisiejszym nawet w ¶wietle nowych opcji, lpd jest
przypuszczalnie dobry dla wiêkszo¶ci u¿ytkowników Linux-a. Raz
ustawiony dzia³a dobrze i jest ³atwy w zrozumieniu oraz szeroko
udokumentowany w ksi±¿kach o Unix-ie.
<P>Je¶li chcesz wiêcej informacji na temat LPRng to zobacz
<A HREF="http://ltpwww.gsfc.nasa.gov/ltpcf/about/unix/Depotdoc/LPRng/">LPRng - An Enhanced Printer Spooler</A>.
Przysz³e wersje tego dokumentu bêd± zawiera³y informacje o zwyk³ym
lpd oraz o LPRng.
<P>
<H2><A NAME="s6">6. Jak to dzia³a - podstawy.</A></H2>
<P>
<P>¯eby drukowanie dzia³a³o, musisz zrozumieæ jak dzia³a system lpd.
<P>LPD to skrót od Line Printer Daemon i odnosi siê w ró¿nych
kontekstach do demona i do ca³ej kolekcji programów, które
drukuj±. S± to:
<P>
<DL>
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpd.html">lpd</A></CODE></B><DD><P>Demon
kolejkowania. Jeden z nich jest uruchomiony, aby kontrolowaæ
wszystko na maszynie, I jeden jest uruchamiany dla drukarki podczas
drukowania.
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpr.html">lpr</A></CODE></B><DD><P>Polecenie
dla u¿ytkowników do kolejkowania wydruków. Lpr kontaktuje siê z
lpd i umieszcza nowe zadanie w katalogu kolejkowania.
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpq.html">lpq</A></CODE></B><DD><P>Wy¶wietla
wydruki umieszczone w kolejce.
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpc.html">lpc</A></CODE></B><DD><P>Polecenie
do kontrolowania systemu lpd. Poleceniem tym mo¿esz wystartowaæ,
zatrzymaæ, zmieniæ porz±dek w kolejce drukowania.
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lprm.html">lprm</A></CODE></B><DD><P>Usuwa wydruk z kolejki.
</DL>
<P>
<P>To jak to wszystko dzia³a ? No... kiedy system startuje, uruchamiany
jest lpd. Czyta on plik <CODE>/etc/printcap</CODE>, aby siê dowiedzieæ
dla jakich drukarek bêdzie obs³ugiwa³ kolejki. Za ka¿dym razem
kiedy kto¶ uruchomi <I>lpr</I>, lpr kontaktuje siê z lpd poprzez
gniazdko <CODE>/dev/printer</CODE> i podaje mu wydruk oraz kilka
informacji o tym kto drukuje i jak ma to byæ wydrukowane. Potem lpd
drukuje otrzymany plik na odpowiedniej drukarce.
<P>System lp powsta³ w czasach kiedy wiêkszo¶æ drukarek by³a
drukarkami liniowymi - tzn. ludzie drukowali w wiêkszo¶æi teksty w
ASCII. Jak siê okaza³o, nie trzeba du¿o pracy, aby lpd dzia³a³
dobrze dla dzisiejszych wydruków takich jak PostScript, czy text,
czy dvi, czy ...
<P>
<H2><A NAME="s7">7. Jak poustawiaæ to wszystko - podstawy.</A></H2>
<P>
<P>
<H2>7.1 Tradycyjna konfiguracja lpd.</H2>
<P>
<P>Minimalne ustawienia objawiaj± siê tym, ¿e system mo¿e kolejkowaæ
pliki i je drukowaæ. Nie bêdzie zwraca³ uwagi na to, czy twoja
drukarka je zrozumie czy nie i przypuszczalnie nie pozwoli ci na
zrobienie atrakcyjnego wydruku. Jednak jest to pierwszy krok do
zrozumienia, wiêc czytaj dalej !
<P>Ogólnie mówi±c, ¿eby dodaæ kolejkê dla drukarki musisz dodaæ
pozycjê do <CODE>/etc/printcap</CODE> i utworzyæ katalog do
kolejkowania w <CODE>/var/spool/lpd/</CODE>.
<P>Pojedyncza pozycja w <CODE>/etc/printcap</CODE> wygl±da tak:
<P>
<PRE>
# LOCAL djet500
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:mx#0:\
:lp=/dev/lp0:\
:sh:
</PRE>
<P>Definiuje ona drukarkê o nazwach <I>lp</I>, <I>dj</I> i <I>deskjet</I>, z
katalogiem kolejkowania <CODE>/var/spool/lpd/dj/</CODE>, bez limitu na
ka¿dy wydruk, która drukuje na urz±dzeniu <CODE>/dev/lp0</CODE> i która
nie ma strony tytu³owej (z danymi o osobie, która drukowa³a itp.)
na pocz±tku wydruku.
<P>Teraz poczytaj stronê w podrêczniku systemowym na temat <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/printcap.html">printcap</A></I>.
<P>Powy¿szy przyk³ad wygl±da bardzo prosto, ale jest tam jeden kruczek
- drukarka bêdzie tak d³ugo dobrze drukowa³a, dopóki bêdê wysy³a³
pliki, które ona rozumie. Na przyk³ad wys³anie na drukarkê zwyk³ego
unix-owego pliku tekstowego spowoduje, ¿e na papierze pojawi siê
co¶ takiego:
<P>
<PRE>
To jest pierwsza linia.
To jest druga linia.
To jest trzecia linia.
</PRE>
<P>Wys³anie na tê drukarkê pliku w PostScripcie spowodowa³oby
wydrukowanie piêknej listy poleceñ PostScript z dodatkowym efektem
schodków :) - be¿ ¿adnego po¿ytecznego efektu.
<P>Wynika z tego jasno, ¿e czego¶ tu jeszcze brakuje - i to jest
w³a¶nie celem filtrowania. Ci, którzy czytali stronê podrêcznika
systemowego o pliku "printcap" mogli zuwa¿yæ atrybuty kolejki -
<I>if</I> i <I>of</I>. <I>if</I> - czyli input filter - to w³a¶nie to
czego potrzebujemy.
<P>Je¶li napiszemy krótki skrypt o nazwie "filter", który doda przed
koñcem linii znak CR (cariage return - powrót karetki), to efekt
schodów mo¿e byæ wyeliminowany. Tak wiêc musimy dodaæ do naszej
pozycji w <CODE>/etc/printcap</CODE> jeszcze jedn± liniê informuj±c± o
istniej±cym filtrze:
<P>
<PRE>
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:mx#0:\
:lp=/dev/lp0:\
:if=/var/spool/lpd/dj/filter:\
:sh:
</PRE>
<P>Przyk³adem prostego skryptu mo¿e byæ:
<P>
<PRE>
#!perl
# Powy¿sza linia tak na prawdê powinna zawieraæ pe³n± ¶cie¿kê do perl-a
# Skrypt ten musi byæ wykonywalny: chmod 755 filter
while(<STDIN>){chop $_; print "$_\r\n";};
# Mo¿esz te¿ zakoñczyæ znacznikiem "form feed": print "\f";
</PRE>
<P>Je¶li zrobimy powy¿sze, to otrzymamy drukarkê, na któr± bêdziemy
mogli wysy³aæ pliki tekstowe z Unix-a i otrzymamy sensowny
wydruk. (Tak, s± 4 miliony lepszych sposobów na napisanie tego
skryptu, ale tylko kilka jest tak bardzo ilustracyjnych. Ty masz to
napisaæ bardziej wydajnie.)
<P>Jedynym problemem jest to, ¿e drukowanie plików tekstowych nie jest
takie znowu fajne - by³oby o wiele lepiej, je¶li moglibysmy
drukowaæ pliki PostScriptowe czy graficzne. No... tak, by³oby i jest
to ³atwe do zrobienia. Metoda jest rozszerzeniem tego co
zrobili¶my, ¿eby siê pozbyæ schodków. Je¶li napiszesz program,
który mo¿e przyjmowaæ ró¿ne formaty i t³umaczyæ je na jêzyk
zrozumia³y dla drukarki, to masz naprawdê dobry filtr.
<P>Taki filtr nazywany jest filtrem magicznym. Nie mêcz siê nad
pisaniem w³asnego - o ile nie drukujesz jakichs cudów - na sieci
jest ju¿ pe³no filtrów, które mo¿esz ¶mia³o u¿ywaæ.
<P>
<H2>7.2 Prawa dostêpu do plików.</H2>
<P>
<P>Poniewa¿ otrzyma³em wiele pró¶b, za³±czam listê plików wraz z
prawami dostêpu jakie maj± one w moim systemie. Jest wiele lepszych
sposobów na zrobienie tego - idealnym sposobem jest u¿ywanie
programów tylko z atrybutami SGID, a nie robienie wszystkiego SUID
dla "root-a", ale mój system tak ju¿ mia³ i dla mnie to dzia³a.
<P>
<PRE>
-r-sr-sr-x 1 root lp /usr/bin/lpr*
-r-sr-sr-x 1 root lp /usr/bin/lprm*
-rwxr--r-- 1 root root /usr/sbin/lpd*
-r-xr-sr-x 1 root lp /usr/sbin/lpc*
drwxrwxr-x 4 root lp /var/spool/lpd/
drwxr-xr-x 2 root lp /var/spool/lpd/lp/
</PRE>
<P>W chwili obecnej lpd musi byæ uruchamiany z prawami "root-a",
poniewa¿ u¿ywa on numerów portów zastrze¿onych dla
systemu (poni¿ej 1024). Po tym jak ju¿ siê podczepi pod ten port
powinien siê zmieniæ na lp.lp, ale raczej tego nie robi...
<P>
<H2><A NAME="s8">8. Zdobywanie oprogramowania do drukowania.</A></H2>
<P>
<P>Wiele napisanych pakietów filtruj±cych (i innych programów
zwi±zanych z drukowaniem) dostêpnych jest na
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/printing/">SunSite Polska</A>.
Mo¿na tam znale¼æ takie programy jak: psutils, a2ps, mpage,
dvitodvi, flpr.
<P>
<H2>8.1 Magicfilter.</H2>
<P>
<P>"Magic filter" jest jednym z najlepszych pakietów filtruj±cych;
zaprojektowany jest do instalacji w 10 minut. Powiedziano mi te¿,
¿e zawiera specjaln± obs³ugê LPRng.
<P>
<PRE>
Title: magicfilter
Version: 1.1b
Entered-date: 04APR95
Description: A customizable, extensible automatic printer filter.
Lets you automatically detect and print just about any
data type you can find a conversion utility for. This
filter is written in C and is controlled completely
from an external printer configuration file.
This version adds automagic creation of configuration
files based on the installed software on your system,
courtesy of GNU Autoconf.
This version is a bug fix from 1.1/1.1a; filters for
non-ASCII capable PostScript printers have been added.
Author: H. Peter Anvin <hpa@zytor.com>
Primary-site: sunsite.unc.edu
53000 /pub/Linux/system/printing/magicfilter-1.1b.tar.gz
Copying-policy: GPL
</PRE>
<P>
<H2>8.2 Filtr APS.</H2>
<P>
<P>Innym z wielu magicznych filtrów jest APS zrobiony przez Andreasa
Klemma. Linux Software Map wygl±da tak:
<P>
<PRE>
Begin3
Title: apsfilter
Version: 4.9.1
Entered-date: Montag, 10. Juli 1995, 21:22:35 Uhr MET DST
Description: magicfilter for lpd with auto filetype detection
Keywords: lpd magicfilter aps apsfilter
Original-site: ftp-i2.informatik.rwth-aachen.de
/pub/Linux/pak/APSfilter/aps-491.tgz
211KB aps-491.tgz
Platforms: C-Compiler, gs Postscript emulator, pbmutils
Copying-policy: GPL
End
</PRE>
<P>Filtr APS instaluje siê jako filtr <I>if</I> dla kolejki drukowania,
i t³umaczy z wielu popularnych typów plików na polecenia twojej
drukarki.. Rozumie np. tekst, PostScript, dvi, gif i inne.
<P>
<P>
<H2>8.3 EZ-Magic.</H2>
<P>
<P>EZ-Magic to kolejny pakiet filtruj±cy, napisany w bash-u, dostepny
na sunsite.
<P>
<PRE>
Title: ez-magic printer filter
Version: 1.0.5
Entered-date: January 26, 1997
Description: ez-magic is a printer filter that supports 8 common file
formats (txt,ps,gif,bmp,pcx,png,jpg,tif) for printing.
It can print over a network (SMB), or to a local printer.
Reads from a file, STDIN, or lpd. Simple to use and
configure. Just one script file, no huge manuals and
multibillion drivers. The only catch is that you need a
few common helper programs like netpbm and ghostscript.
Written in bash. Easy to add formats and code. Still more
bugs than I have appendages, but less than the number of
grams of fat in a hot dog. Pre-configured for HP DeskJet
870Cse over network. Comparable to apsfilter and others.
Keywords: magic filter, print, graphics, samba, network, smb,
ghostscript, postscript, gif, jpg, simple
Author: toby@eskimo.com (Toby Reed)
Maintained-by: toby@eskimo.com (Toby Reed)
Primary-site: http://www.eskimo.com/~toby/ez-magic-1.0.5.tar.gz
38 kb ez-magic-1.0.5.tar.gz
Alternate-site: sunsite.unc.edu /pub/Linux/system/printing
38 kb ez-magic-1.0.5.tar.gz
Copying-policy: Copyrighted, full manipulation rights, with one or two
restrictions.
</PRE>
<P>
<H2><A NAME="s9">9. Rozwi±zania sprzedawców.</A></H2>
<P>
<P>[ Sekcja ta, jest z definicji niekompletna. Przysy³aj szczegó³y
twojej ulubionej dystrybucji. ]
<P>
<H2>9.1 RedHat.</H2>
<P>
<P>W RedHacie znajduje siê graficzne narzêdzie do admiistracji, przy
pomocy którego mo¿na dodawaæ drukarki odleg³e oraz lokalne. Pozwala
ono na wybór drukarki z obs³ug± "ghostscript" oraz pliku
urz±dzenia, do którego kierowany jest wydruk; potem dana drukarka
instalowana jest w <CODE>/etc/printcap</CODE>. Nastêpnie tworzony jest
krótki filtr magiczny PostScript-ASCII na podstawie <I>gs</I> i
<I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/nenscript.html">nenscript</A></I>.
Rozwi±zanie to dzia³a ca³kiem dobrze i jest ³atwe do ustawienia dla
popularnych przypadków.
<P>
<H2>9.2 Inne dystrybucje.</H2>
<P>
<P>Proszê o informacje jakie s± rozwi±zania w innych dystrybucjach.
<P>
<H2><A NAME="s10">10. Ghostscript.</A></H2>
<P>
<P>
<A HREF="http://www.cs.wisc.edu/~ghost/">Ghostscript</A> jest
najbardziej znacz±cym programem do drukowania dla Linux-a. Wiêkszo¶æ
oprogramowania do drukowania pod Unix-a generuje PostScript, który
jest opcj± dla drukarki wart± ok. $100. Jednak
ghostscript jest za darmo i wygeneruje jêzyk dla twojej drukarki z
PostScriptu. Je¶li jest on podczepiony pod filtr wej¶ciowy dla
lpd, to daje wirtualn± drukarkê PostScriptow± i bardzo u³atwia
¿ycie.
<P>Ghostscript jest dostêpny w dwóch postaciach. Komercyjna wersja
Ghostscript-u pod nazw± Alladin Ghostscript mo¿e byæ u¿ywana dla
celów osobistych, ale nie mo¿e byæ rozprowadzana w komercyjnych
dystrybucjach Linux-a. Jest on z regu³y o jaki¶ rok do przodu
wzglêdem darmowej wersji; w tym momencie na przyk³ad, obs³uguje on
Adobe Acrobat's Portable Document Format, podczas gdy starsze
wersje tego nie maj±.
<P>Wersja darmowa to GNU Ghostscript i jest starsz± wersj± Aladdina
uprzejmie u¿yczon± dla GNU. (Cze¶æ i chwa³a dla Aladdina za to;
wiêcej sprzedawców oprogramowania powinna wspomagaæ darmowe
oprogramowanie w ten sposób)
<P>Cokolwiek robisz w <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/gs.html">gs</A></I>, upewnij
siê, ¿e uruchomi³e¶ go z opcj± wy³±czaj±c± dostêp do
plików (<CODE>-dSAFER</CODE>). PostScript jest jêzykiem w pe³ni funkcjonalnym
i z³y program w PostScripcie móg³by ciê przyprawiæ o ból g³owy.
<P>Mówi±c o PDF-ie (Adobe's Portable Document Format), w³a¶ciwie jest
to trochê bardziej zorganizowany PostScript w skompresowanym
pliku. Ghostscript umie obs³u¿yæ PDF tak samo jak PostScript, wiêc
mo¿esz byæ pierwszym w swoim otoczeniu z drukark± umiej±c±
wydrukowaæ PDF.
<P>
<H2>10.1 Wywo³ywanie Ghosscript-u.</H2>
<P>
<P>Zwykle ghostscript jest uruchamiany przez filtr, który za³o¿y³e¶,
ale w celach ¶ledzenia b³êdó÷ dobrze jest go uruchamiaæ rêcznie.
<P><CODE>gs -help</CODE> poka¿e krótk± listê opcji i dotêpnych sterowników
(lista ta pokazuje tylko sterowniki wkompilowane, a nie wszystkie
dostêpne sterowniki).
<P>Mo¿esz uruchomiæ gs w celach testowych np. tak:
<P>
<PRE>
gs <opcje> -q -dSAFER -sOutputFile=/dev/lp1 test.ps
</PRE>
<P>
<H2>10.2 Dostrajanie wyników w Ghostscripcie.</H2>
<P>
<P>Jest wiele rzeczy, które mo¿na zrobiæ je¶li wynik powsta³y przy
opracowywaniu tekstu nie jest zadowalaj±cy (w³a¶ciwie, to mo¿esz
zrobiæ co ci siê tylko zamarzy, je¶li masz ¼ród³a).
<P>
<H3>Umiejscowienie i rozmiar wyniku.</H3>
<P>
<P>Umiejscowienie, rozmiar i wspolczynik ksztaltu obrazu na stronie jest kontrolowane
przez specyficzny dla danej drukarki sterownik w
ghostscripcie. Je¶li na przyk³ad zauwa¿ysz, ¿e strony wychodz± za
krótkie, albo za d³ugie, albo za du¿e o dwa razy, mo¿esz zajrzeæ do
¼róde³ twojego sterownika i dopasowaæ jakiekolwiek parametry, które
ci nie pasuj±. Niestety, ka¿dy sterownik jest inny, tak wiêc nie
mogê ci powiedzieæ co tak na prawdê trzeba zmieniæ, ale wiêkszo¶æ z
nich jest dobrze skomentowana.
<P>
<H3>Gamma, rozmiar pikseli itp.</H3>
<P>
<P>Wiêkszo¶æ nielaserowych drukarek ma tê wadê, ¿e rozmiar ich punktu
jest raczej du¿y. Rezultatem tego s± zbyt ciemne obrazy. Je¶li masz
ten problem, to powiniene¶ u¿yæ swojej w³asnej funkcji do
transferu. Po prostu stwórz nastêpuj±cy plik w katalogu
bibliotecznym ghostscripta i dodaj jego nazwê do wywo³ania <I>gs</I>
zaraz przed w³a¶ciwym plikiem. Mo¿e bêdziesz musia³ zmieniæ
warto¶ci, ¿eby pasowa³y do twojej drukarki. Mniejsze warto¶ci daj±
ja¶niejszy obraz. Mniejsze warto¶ci (0.2 - 0.15) s± dobrym
pomys³em, szczególnie je¶li twój sterownik u¿ywa algorytmu
Floyda-Steinberga do rasteryzacji kolorów.
<P>
<PRE>
---8<---- gamma.ps ----8<---
%!
%transfer functions for cyan magenta yellow black
{0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer
---8<------------------8<---
</PRE>
<P>Przez dopasowanie tych warto¶ci mo¿liwe jest te¿ naprawienie
drukarki, która ma jak±¶ wadê zwi±zan± z kolorami. Je¶li bêdziesz
robi³ co¶ takiego, to radzê u¿yæ pliku <I>colorcir.ps</I>, który
dostarczany jest wraz z ghostscriptem (w podkatalogu <CODE>examples</CODE>)
jako przyk³adowa strona.
<P>
<H2><A NAME="s11">11. Jak drukowaæ poprzez sieæ.</A></H2>
<P>
<P>Jedn± z zalet <I>lpd</I> jest to, ¿e mo¿na przy jego pomocy drukowaæ
na drukarkach przy³±czonych fizycznie do innych komputerów. Je¶li
dobrze dobierzesz kombinacjê skryptów i narzêdzi, to mo¿esz
drukowaæ przy pomocy <I>lpr</I> na wszelkiego rodzaju sieciach.
<P>
<H2>11.1 Na ho¶cie unix/lpd.</H2>
<P>
<P>Aby pozwoliæ odleg³ym maszynom drukowaæ na twojej drukarce, musisz
je umie¶ciæ w <CODE>/etc/hosts.equiv</CODE> lub
<CODE>/etc/hosts.lpd</CODE>. (Zauwa¿, ¿e <CODE>hosts.equiv</CODE> ma kilka
innych efektów; upewnij siê, ¿e wiesz co robisz je¶li umieszczasz
tam jak±¶ maszynê). U¿ywaj±c opcji <I>rs</I> mo¿esz pozwoliæ tylko
wybranym u¿ytkownikom na drukowanie; informacje na ten temat
znajdziesz na stronie podrêcznika systemowego na temat <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpd.html">lpd</A></I>.
<P>
<H3>Przy pomocy lpd.</H3>
<P>
<P>Aby wydrukowaæ co¶ na innej maszynie, musisz zrobiæ pozycjê w
<CODE>/etc/printcap</CODE> podobn± do tej:
<P>
<PRE>
# REMOTE djet500
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:rm=jaka¶.odleg³a.maszyna.pl:\
:rp=nazwa_drukarki:\
:lp=/dev/null:\
:sh:
</PRE>
<P>Zauwa¿, ¿e lokalnie nadal znajduje siê katalog zadañ obs³ugiwany
przez <I>lpd</I>. Je¶li odleg³a maszyna jest zajêt± albo wy³±czona,
to zadania do drukowania czekaj± lokalnie a¿ bêd± mog³y zostaæ
wys³ane.
<P>
<H3>Przy pomocy rlpr.</H3>
<P>
<P>¯eby omin±æ konfigurowanie lokalnego lpd, mo¿esz u¿yæ <I>rlpr</I>,
aby wys³aæ co¶ bezpo¶rednio do kolejki na odleg³ej maszynie. Jest
to bardzo u¿yteczne je¶li drukujesz na ró¿nych drukarkach tylko
okazyjnie. Z og³oszenia o <I>rlpr</I>:
<P>Rlpr u¿ywa protoko³u TCP/IP, aby wys³aæ zadania do drukowania do
serwera lpd gdziekolwiek w sieci.
<P>W przeciwieñstwie do lpr, ten *nie* wymaga, ¿eby drukarki, na
których chcesz drukowaæ by³y znane dla lokalnej maszyny (np. w
<CODE>/etc/printcap</CODE>) i przez to jest bardziej elastyczny i
wymaga mniejszego nak³adu pracy administratora.
<P>rlpr mo¿e zostaæ u¿yty gdziekolwiek, gdzie móg³by zostaæ u¿yty zwyk³y
lpr, i jest kompatybilny w dó³ z tradycyjnym lpr z BSD.
<P>Najwa¿niejsz± zalet± <I>rlpr</I> jest, to ¿e mo¿na drukowaæ
*sk±dkolwiek dok±dkolwiek*, niezale¿nie od tego jak jest
skonfigurowany system, z którego chcesz drukowaæ. Mo¿e te¿ byæ
u¿yty jako serwer, tak ¿e klienci uruchomieni na innych maszynach
jak np.: netscape, xemacs, itp. mog± drukowaæ na twojej drukarce
ma³ym nak³adem wysi³ku.
<P>Rlpr dostêpny jest na
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/printing/">SUNSite Polska</A>.
<P>
<H2>11.2 Na Win95, WinNT, LanManager lub Sambie.</H2>
<P>
<P>Jest dostêpne mini-HOWTO "Printing to Windows", które zawiera
wiêcej inormacji ni¿ ta sekcja.
<P>Mo¿liwe jest przekierowanie kolejki lpd poprzez program <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/smbclient.html">smbclient</A></I>
(czê¶æ pakietu Samba) do serwisu drukowania Samby opartego na
TCP/IP. Samba zawiera odpowiedni skrypt pod nazw±
<I>smbprint</I>. Krótko mówi±c umieszczasz plik konfiguracyjny dla
konkretnej drukarki w katalogu zadañ i instalujesz skrypt
<I>smbprint</I> jako <I>if</I>.
<P>Odpowiednia pozycja w <CODE>/etc/printcap</CODE> powinna wygl±daæ tak:
<P>
<PRE>
lp|remote-smbprinter:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lp:\
:if=/usr/local/sbin/smbprint:
</PRE>
<P>Aby uzyskaæ wiêcej informacji na temat konfigurowania takich
przypadków przeczytaj dokumentacjê zawart± w skrypcie
<I>smbprint</I>.
<P>Mo¿esz tak¿e u¿yæ <I>smbclient</I>, aby wys³aæ zadanie drukowania
bezpo¶rednio do serwisu drukowania SMB bez w³±czania w to
lpd. Zobacz informacje w podrêczniku systemowym.
<P>
<H2>11.3 Na drukarce NetWare.</H2>
<P>
<P>Pakiet ncpfs zawiera narzêdzie zwane <I>nprint</I>, które udostêpnia
te same funkcje co <I>smbprint</I>, ale dla NetWare. Pakiet ten mo¿na
zdobyæ z
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/filesystems/ncpfs">SunSITE Polska</A>. Z informacji LSM dla wersji
0.16:
<P>
<BLOCKQUOTE>
Przy pomocy pakietu ncpfs mo¿esz montowaæ wolumeny z serwera netware
pod Linux-em. Mo¿esz tak¿e drukowaæ na drukarkach pod³±czonych pod
netware oraz kolejkowaæ zadania z netware dla drukarek pod³±czonych
do Linux-a. Potrzebujesz j±dra w wersji 1.2.x lub 1.3.54 i nowsze.
ncpfs nie bêdzie dzia³a³ z j±drem w wersji 1.3 poni¿ej 1.3.54.
</BLOCKQUOTE>
<P>Aby <I>nprint</I> dzia³a³ poprzez lpd, musisz napisaæ ma³y skrypt,
aby drukowaæ "stdin" na drukarkach NetWare i zainstalowaæ go jako
<I>if</I> dla kolejki lpd. Otrzymasz co¶ takiego:
<P>
<PRE>
sub2|remote-NWprinter:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/sub2:\
:if=/var/spool/lpd/nprint-script:
</PRE>
<P>Skrypt "nprint-script" mo¿e wygl±daæ tak:
<P>
<PRE>
#! /bin/sh
# Powiniene¶ najpierw sprawdziæ konto guest bez has³a!
/usr/local/bin/nprint -S sieæ -U nazwa -P has³o -q nazwa-kolejki -
</PRE>
<P>
<H2>11.4 Na drukarce EtherTalk (Apple).</H2>
<P>
<P>Pakiet netatalk zawiera co¶ podobnego do <I>nprint</I> i
<I>smbclient</I>. Werner Eugster udokumentowa³ procedurê dla drukowania
do i z sieci Apple o wiele lepiej ni¿ ja kiedykolwiek; zobacz to w
<A HREF="http://thehamptons.com/anders/netatalk/">Netatalk-HOWTO</A>.
<P>Netatalk nie dzia³a z kart± SMC Etherpower PCI z chip-em DEC tulip.
<P>
<H2>11.5 Na drukarce HP i innych ethernetowych drukarkach.</H2>
<P>
<P>Drukarki HP i niektóre inne maj± ethernetowy interfejs, do którego
mo¿esz drukowaæ bezpo¶rednio u¿ywaj±c lpd. Powiniene¶ postêpowaæ
zgodnie z instrukcj±, któr± dosta³e¶ do drukarki albo jej
sterownika, ale ogólnie takie drukarki "maj± uruchomionego" lpd i
dostarczaj± jedn± lub wiêcej kolejek, do których mo¿esz
drukowaæ. HP mo¿e pracowaæ np. z takim <CODE>/etc/printcap</CODE>:
<P>
<PRE>
lj-5|remote-hplj:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lj-5:\
:rm=nazwa.drukarki.pl:rp=raw:
</PRE>
<P>Drukarki HP LaserJet z interfejsami Jet Direct obs³uguj±
generalnie dwie wbudowane kolejki - "surow±" (raw), która akceptuje
PCL (i mo¿liwe, ¿e PostScript) oraz "tekstow±", która akceptuje
zwyk³e ASCII i radzi sobie od razu z "efektem schodków".
<P>W ¶rodowisku wielkoskalowym, szczególnie w du¿ych ¶rodowiskach,
gdzie niektóre drukarki nie obs³uguj± PostScript-u, mo¿e byæ
po¿yteczne ustawienie specjalnego serwera drukowania, do którego
drukuj± wszystkie maszyny i na którym uruchamiane s± wszystkie
zadania ghostscript-a.
<P>Pozwala to twojemu Linux-owi dzia³aæ jako serwer wydruków dla
drukarki, i u¿tykownicy mog± robiæ swoje wydruki szybko i zajmowaæ
siê swoimi rzeczami zamiast czekaæ a¿ drukarka skoñczy drukowaæ
pracê kogo¶ innego.
<P>Aby to zrobiæ, ustaw na swoim Linux-ie kolejkê, która wskazuje na
HP LJ wyposa¿on± w ethernet. Teraz ustaw kolejkê u wszystkich
swoich klientów na tego Linux-a.
<P>Niektóre drukarki sieciowe HP wyra¼nie nie akceptuj± ustawieñ
strony tytu³owej (banner page) wys³anej przez klienta; mo¿na
wy³±czyæ ich wewnêtrznie generowan± tak± stronê przez po³±czenie
siê z drukark± telnet-em, wci¶niêcie dwa razy <<ENTER>>, wpisanie
"banner: 0" i nastêpnie "quit". S± inne ustawienia, które mo¿esz
tak¿e w taki sposób zmieniæ - wpisz "?", ¿eby wy¶wietliæ ich
listê.
<P>
<H3>Na starszych drukarkach HP.</H3>
<P>
<P>Niektóre drukarki (oraz "czarne pude³ka" z sieciowym drukowaniem)
obs³uguj± tylko pro¶ciutkie nie-protoko³owane czyste po³±czenia
TCP. Zauwa¿alne w tej kategorii s± wczesne modele kart JetDirect
(w³aczaj±c niektóre JetDirectEx). Ogólnie, aby drukowaæ na takiej
drukarce, musisz otworzyæ po³±czenie TCP na danym porcie (z regu³y
9100) i umie¶ciæ tam swoje zadanie do wydrukowania. Mo¿na to
zaimplementowaæ m.in. w Perl-u:
<P>
<PRE>
#!/usr/bin/perl
# Thanks to Dan McLaughlin for writing the original version of this
# script (And to Jim W. Jones for sitting next to Dan when writing me
# for help ;)
$fileName = @ARGV[0];
open(IN,"$fileName") || die "Can't open file $fileName";
$dpi300 = "\x1B*t300R";
$dosCr = "\x1B&k3G";
$ends = "\x0A";
$port = 9100 unless $port;
$them = "bach.sr.hp.com" unless $them;
$AF_INET = 2;
$SOCK_STREAM = 1;
$SIG{'INT'} = 'dokill';
$sockaddr = 'S n a4 x8';
chop($hostname = `hostname`);
($name,$aliases,$proto) = getprotobyname('tcp');
($name,$aliases,$port) = getservbyname($port,'tcp')
unless $port =~ /^\d+$/;;
($name,$aliases,$type,$len,$thisaddr) =
gethostbyname($hostname);
($name,$aliases,$type,$len,$thataddr) = gethostbyname($them);
$this = pack($sockaddr, $AF_INET, 0, $thisaddr);
$that = pack($sockaddr, $AF_INET, $port, $thataddr);
if (socket(S, $AF_INET, $SOCK_STREAM, $proto)) {
# print "socket ok\n";
}
else {
die $!;
}
# Give the socket an address.
if (bind(S, $this)) {
# print "bind ok\n";
}
else {
die $!;
}
# Call up the server.
if (connect(S,$that)) {
# print "connect ok\n";
}
else {
die $!;
}
# Set socket to be command buffered.
select(S); $| = 1; select(STDOUT);
# print S "@PJL ECHO Hi $hostname! $ends";
# print S "@PJL OPMSG DISPLAY=\"Job $whoami\" $ends";
# print S $dpi300;
# Avoid deadlock by forking.
if($child = fork) {
print S $dosCr;
print S $TimesNewR;
while (<IN>) {
print S;
}
sleep 3;
do dokill();
} else {
while(<S>) {
print;
}
}
sub dokill {
kill 9,$child if $child;
}
</PRE>
<P>
<H2>11.6 Uruchamianie <I>if</I> dla odleg³ych drukarek.</H2>
<P>
<P>Jedn± wad± <I>lpd</I> jest to, ¿e <I>if</I> nie s± uruchamiane dla
drukarek odleg³ych. Je¶li oka¿e siê, ¿e potrzebujesz <I>if</I>, mo¿esz
ustawiæ podwójn± kolejkê i ponownie zkolejkowaæ dany wydruk. We¼
ten <I>printcap</I> jako przyk³ad:
<P>
<PRE>
lj-5:remote-hplj:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lj-5:\
:if=/usr/lib/lpd/filter-lj-5:
lj-5-remote:lp=/dev/null:sh:rm=nazwa.drukarki.pl:\
:rp=raw:sd=/var/spool/lpd/lj-5-raw:
</PRE>
<P>w ¶wietle tego, skrypt <I>filter-lj-5</I> to:
<P>
<PRE>
#!/bin/sh
gs <opcje> -q -dSAFER -sOutputFile=- - | \
lpr -Plj-5-remote -U$5
</PRE>
<P>Opcja <I>-U</I> dla lpr dzia³a tylko wtedy je¶li lpr jest uruchomiony
jako demon i ustawia ona poprawnie zleceniodawcê kolejki w ponownie
zainicjowanej kolejce. Powiniene¶ raczej u¿yæ bardziej pewnej
metody na zdobycie identyfikatora u¿ytkownika, poniewa¿ niezawsze
jest to argument 5. Zobacz w podrêcznik systemowym na temat
<I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/printcap.html">printcap</A></I>.
<P>
<H2>11.7 Z Windows.</H2>
<P>
<P>Drukowanie z Windows (czy OS/2) na Linux-ie jest obs³ugiwane
poprzez SMB w pakiecie SAMBA, który tak¿e umo¿liwia wspó³dzielenie
plików dla Windows.
<P>Samba zawiera ca³kiem poka¼n± dokumentacjê. Mo¿esz albo
skonfigurowaæ magic-filter na Linux-ie i drukowaæ tam PostScript,
albo zainstalowaæ sterowniki dla konkretnej drukarki na wszystkich
komputerach z Winndows i mieæ kolejkê dla nich bez ¿adnych
filtrów. Poleganie na tych sterownikach mo¿e czasami dawaæ lepsze
efekty, ale jest to uci±¿liwe ze strony administratora je¶li jest
du¿o komputerów z Windows. Wiêc spróbuj najpierw PostScript-u.
<P>
<H2>11.8 Z Apple.</H2>
<P>
<P>Netatalk obs³uguje drukowanie z Apple poprzez EtherTalk. Na
<A HREF="http://thehamptons.com/anders/netatalk/">stronie Netatalk HOWTO</A> znajdziesz wiêcej
informacji.
<P>
<H2>11.9 Z Netware.</H2>
<P>
<P>Jest jaka¶ obs³uga drukowania z Netware przez Linux-a oferowana
przez czy z powodu Calder-y, ale nie mam pojêcia czy Linux mo¿e
oferowaæ drukarki dla klientów Netware.
<P>
<P>
<H2><A NAME="s12">12. Jak drukowaæ na fax-ie.</A></H2>
<P>
<P>
<H2>12.1 U¿ywanie faxmodemu.</H2>
<P>
<P>Jest wiele programów, które pozwol± ci na odbieranie i wysy³anie
faxów. Jednym z bardziej z³o¿onych jest program Sama Lefflera pod
nazw± <I>HylaFax</I>. Jest on dostêpny na <CODE>ftp.sgi.com</CODE>. Obs³uguje
on wiele rzeczy od wiêkszej ilo¶ci modemów do rozg³aszania (broadcasting).
<P>Dostêpny jest tak¿e <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/efax.html">efax</A></I>, prosty
program wysy³aj±cy fax-y - jest on lepszym wyborem dla
Linux-owców. Program <I>mgetty</I> mo¿e odbieraæ faxy (a nawet
wysy³aæ pocztê g³osow± na niektórych modemach!).
<P>
<H2>12.2 U¿ywanie Zdalnego Serwisu Drukowania.</H2>
<P>
<P>Dostêpny jest eksperymentalny serwis, który pozwala ci na wys³anie
poczty elektronicznej z do³±czonym fragmentem, który ma byæ
wydrukowany na faxie gdzie¶ indziej. Obs³ugiwane s± takie formaty
jak PostScript, tak wiêc pomimo, i¿ nie obejmuje swym zasiêgiem
wszystkiego, mo¿e byæ on bardzo przydatnym serwisem. Wiêcej informacji
na temat drukowania poprzez Zdalny Serwis Drukowania znajdziesz na
<A HREF="http://www.tpc.int/">stronie o zdalnym drukowaniu</A>.
<P>
<H2><A NAME="s13">13. Jak wygenerowaæ co¶ wartego drukowania.</A></H2>
<P>
<P>Tutaj wchodzimy w prawdziw± sieæ oprogramowania. Ogólnie, Linux
mo¿e uruchamiaæ cztery typy binariów z ró¿nym sukcesem: Linux,
iBCS, Win16/Win32s (za pomoc± dosemu i kiedy¶ Wine) oraz Mac/68k
(przy pomocy Executora). Ja omówiê tylko czysto-Linux-owe i popularne
Unix-owe oprogramowanie, poza tym WordPerfect dla SCO i
przypuszczalnie inne komercyjne procesory tekstu tak¿e dobrze
dzia³aj± na Linux-owej emulacji iBCS.
<P>Dla Linux-a wybór jest przewa¿nie ograniczony do oprogramowania
dostêpnego ogólnie dla Unix-a.
<P>
<H2>13.1 Jêzyki "Markup".</H2>
<P>
<P>Wiêkszo¶æ jêzyków "markup" jest bardziej elastyczna dla wiêkszych
albo powtarzalnych projektów, gdzie chcesz, aby komputer
kontrolowa³ wygl±d rezultatu/wydruku, aby utworzyæ ogólny
wzór. Próba zrobienia jakiego¶ ³adnego znaczka w jêzyku "markup"
przypuszczalnie by "bola³a"...
<P>
<DL>
<DT><B><CODE>nroff</CODE></B><DD><P>To by³ jeden z pierwszych jêzyków "markup" dla
Unix-a. Strony z podrêcznika systemowego s± najpopularniejszym
przyk³adem tekstów sformatowanych przy pomocy makr *roff-a. Wiele
ludzi przeklina ten jêzyk, ale nroff ma, przynajmniej dla mnie,
bardziej z³o¿on± sk³adniê ni¿ to jest konieczne i przypuszczalnie
jest z³ym wyborem dla nowych prac. Jednak warto jest wiedzieæ, ¿e
mo¿esz zamieniæ napisan± w groff-ie stronê bezpo¶rednio na
PostScript. Wiêkszo¶æ poleceñ "man" zrobi to za ciebie np. <I>man
-t co¶| lpr</I>.
<DT><B><CODE>TeX</CODE></B><DD><P>oraz jêzyk makr - LaTeX, s± jednym z najczê¶ciej
u¿ywanych jêzyków "markup" na Unix-ie. Techniczne prace s± czêsto
napisane w LaTeX-u poniewa¿ bardzo upraszcza okre¶lenie wygl±du
tekstu i jest <B>wci±¿</B> jednym z niewielu systemów obróbki tekstu,
który obs³uguje zapisy matematyczne dok³adnie i dobrze na
raz. Formatem wyj¶ciowym TeX-a jest <I>dvi</I> (DeVice Independent -
czyli niezale¿ny od urz±dzenia [przyp. t³um.]) i mo¿na go zamieniæ
na PostScript lub Hewlett Packard PCL przy pomocy <I>dvips</I> lub
<I>dvilj</I>. [TeX czyta siê "tech" - przyp. t³um.].
<DT><B><I>SGML</I></B><DD><P>Dostêpny jest przynajmniej jeden program do
obróbki tego jêzyka na Unix-a; formuuje on podstawy systemu
dokumentów Linuxdoc-SGML. Mo¿e on tak¿e obs³ugiwaæ inne DTD.
<DT><B><I>HTML</I></B><DD><P>Kto¶ zasugerowa³, ¿e dla prostych projektów,
wystarczy napisanie w HTML-u i drukowaæ przy pomocy Netscape-a. Ja
siê z tym jednak nie zgadzam.
</DL>
<P>
<H2>13.2 WYSIWYG.</H2>
<P>
<P>[ Jest to skrót od What You See Is What You Get - czyli to co
widzisz to dostaniesz, a oznacza, i¿ wydrukowane zostanie DOK£ADNIE
to co jest widoczne na ekranie i DOK£ADNIE w taki sam sposób -
przyp. t³um.]
<P>W tej chwili jest niedobór oprogramownia do obróbki tekstu
WYSIWYG. Nie bój siê napisaæ jakiego¶ i daj mi znaæ je¶li omin±³em
co¶ tutaj.
<P>
<DL>
<DT><B><I>LyX</I></B><DD><P>Jest to zakoñczenie dla LaTeX-a, które wygl±da
bardzo obiecuj±co. Odwied¼
<A HREF="http://www-pu.informatik.uni-tuebingen.de/users/ettrich/">stronê domow± LyX-a</A> je¶li
chcesz wiêcej informacji.
<DT><B><I>Andrew User Interface System</I></B><DD><P>AUIS zawiera <I>ez</I> -
edytor w stylu WYSIWYG z wiêkszo¶ci± cech podstawowego procesora
tekstu, mo¿liwo¶ciami HTML oraz pe³n± obs³ug± poczty elektronicznej
MIME i grup dyskusyjnych (news-ow).
<DT><B><I>Oferty komercyjne</I></B><DD><P>Przynajmniej Caldera i Red Hat
dostarczaj± pakiety zawieraj±ce zwyk³e aplikacje biurowe jak edytor
w stylu WYSIWYG i arkusz kalkulacyjny. Powiedzia³bym, ¿e robi±
dobr± robotê, ale nigdy nie u¿ywa³em takich pakietów. S±dze, ¿e
Caldera dostarcza tak¿e WABI firmy Sun, tak wiêc móg³by¶
przypuszczalnie uruchomiæ jaki¶ MS Office pod tym je¶li musia³by¶
zintegrowaæ siê z plikami innych.
<P>Jeff Phillips <EM><jeff@I_RATUS.org></EM> u¿ywa WordPerfect-a dla
Linux-a z Caldery (w Slackware ró¿nego rodzaju) i twierdzi, ¿e
dzia³a mu to dobrze. Wygl±da na to, ¿e zawiera on wbudowan±
obs³ugê drukarek, jak to mo¿na by siê spodziewaæ. Caldera powinna
mieæ jakie¶ informacje na
<A HREF="http://www.caldera.com/">swojej stronie WWW</A>.
<P>RedHat dostarcza pakiet o nazwie <I>Applixware</I>;
<A HREF="http://www.redhat.com/">Ich stronê</A> mo¿na znale¼æ pod
adresem www.redhat.com.
<P>Inni sprzedawcy niech mi dadz± znaæ jakie maj± oferty.
</DL>
<P>
<P>
<H2><A NAME="s14">14. Podgl±d przed wydrukiem.</A></H2>
<P>
<P>Prawie wszystko co mo¿esz wydrukowaæ, mo¿esz te¿ zobaczyæ na
ekranie.
<P>
<H2>14.1 PostScript.</H2>
<P>
<P>Ghostscript posiada sterownik do X11; najlepiej je¶li jest on u¿yty
pod kontrol± podgl±darki PostScript o nazwie <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/ghostview.html">Ghostview</A></I>.
Najnowsza wersja tego programu powinna byæ tak¿e w stanie
wy¶wietliæ pliki PDF.
<P>
<H2>14.2 TeX dvi.</H2>
<P>
<P>Niezale¿ne od urz±dzenia (DeVice Independant) pliki TeX-a mog± byæ
wy¶wietlane w X11 u¿ywaj±c <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/xdvi.html">xdvi</A></I>. Nowsze
wersje <I>xdvi</I> wywo³uj± ghostscript, aby wykonaæ polecenia
typowo PostScriptowe.
<P>Jest tak¿e sterownik na VT100. Nazywa siê <I>dgvt</I>. <I>Tmview</I>
dzia³a z Linux-em i svgalib je¶li to wszystko na co ciê staæ.
<P>
<P>
<H2><A NAME="s15">15. Drukarki szeregowe pod lpd.</A></H2>
<P>
<P>
<H2>15.1 Ustawianie w printcap-ie.</H2>
<P>
<P>Lpd udostepnia piêæ atrybutów, które mo¿esz ustawiæ w pliku
<CODE>/etc/printcap</CODE>, aby kontrolowaæ wszystkie ustawienia portu
szeregowego, do którego do³±czona jest drukarka. Przeczytaj stronê
podrêcznika systemowego na temat <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/printcap.html">printcap</A></I> i
zapamiêtaj znaczenia: <I>br#</I>, <I>fc#</I>, <I>xc#</I>,
<I>fs#</I> i <I>xs#</I>. Ostatnie cztery z tych atrybutów to
mapy bitowe oznaczaj±ce ustawienia portu. Atrybut <I>br#</I> jest
prêdko¶ci±: np. <I>br#9600</I>.
<P>T³umaczenie z postaci <I>stty</I> na <I>printcap</I> jest bardzo
proste. Je¶li musisz, to zobacz stronê podrêcznika systemowego na
temat <I>stty</I>.
<P>U¿yj <I>stty</I>, aby ustawiæ port drukarki, tak ¿eby¶ móg³ wys³aæ
plik do tego portu (poleceniem <I>cat</I>) i otrzyma³ poprawny
wydruk. Oto co wy¶wietla polecenie <I>stty -a</I> dla mojego portu
drukarki:
<P>
<PRE>
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
</PRE>
<P>Jedynymi zmianami miêdzy tym, i stanem w jakim port jest
inicjowany podczas startu s± <CODE>-clocal</CODE>, <CODE>-crtscts</CODE> i
<CODE>ixon</CODE>. Twój port mo¿e mieæ inne ustawienia w zale¼no¶ci od tego
jak twoja drukarka kontroluje przep³yw (flow control).
<P><I>stty</I> u¿ywa siê w³a¶ciwie w dziwny sposób. Poniewa¿ polecenie
<I>stty</I> operuje na terminalu pod³±czonym do jego standardowego
wej¶cia, ty u¿ywasz je, aby manipulowaæ danym portem szeregowym
przez u¿ycie znaku <CODE><</CODE> jak powy¿ej.
<P>Jak ju¿ masz dobre ustawienia, tak ¿e <I>cat plik >
/dev/ttyS2</I> (w moim przypadku) dzia³a, zajrzyj do pliku
<CODE>/usr/src/linux/include/linux/termios.h</CODE>. 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:
<P>
<PRE>
/* c_cflag bit meaning */
#define CBAUD 0000017
</PRE>
<P>Sekcja ta zawiera znaczenia bitów <I>fc#</I> i
<I>fs#</I>. Zauwa¿ysz, ¿e nazwy (po ilo¶ci bodów) s± identyczne z
tymi z polecenie <I>stty</I>. A nie mówi³em, ¿e to bêdzie proste ?
<P>Zobacz, które z tych ustawieñ maj± znak "-" na pocz±tku przy
poleceniu <I>stty</I>. 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
<I>fc#</I>. Pamiêtaj oczywi¶cie, ¿e bêdziesz ustawia³ bity zaraz
po tym jak je wyzerujesz, tak wiêc mo¿esz u¿yæ
"<I>fc#0177777</I>" (ja tak robiê).
<P>Teraz zrób to samo dla tych ustawieñ, które nie maj± znaku "-" na
pocz±tku w poleceniu <I>stty</I>. 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 <I>fs#</I>. ("<I>fs#02275</I> dzia³a u mnie.)
<P>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 "<I>xc#0157777</I>" i
"<I>xs#0</I>".
<P>
<H2>15.2 Starsze drukarki szeregowe, które gubi± znaki.</H2>
<P>
<P>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 <B>rzeczywiste</B> stop dla drukowania. Potem odkry³, ¿e ¿eby
naprawiæ tê niedogodno¶æ wystarczy wy³±czyæ FIFO w uk³adzie 16550
poleceniem <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/setserial.html">setserial</A></I>
(¿eby to zrobiæ po prostu podajesz typ ukladu uart jako 8250).
<P>
<H2><A NAME="s16">16. Wyrazy uznania.</A></H2>
<P>
<P>Informacje na temat <I>smbprint</I> zosta³y zaczerpniête z artyku³u
Marcela Roelofsa <CODE><marcel@paragon.nl></CODE>.
<P>Informacje na temat <I>nprint</I> i u¿ywania drukarek NetWare zosta³y
dostarczone przez Michaela Smitha
<CODE><mikes@bioch.ox.ac.uk></CODE>.
<P>Sekcja na temat drukarek szeregowych pod lpd zosta³a napisana przez
Andrew Teffta <CODE><teffta@engr.dnet.ge.com></CODE>.
<P>Te wszystkie gammy i inne takie dla "gs" zosta³y dostarczone przez
Andreasa <CODE><quasi@hub-fue.franken.de></CODE>.
<P>Dwa paragrafy na temat 30 sekundowego "closing_wait" przy
sterownikach szeregowych zosta³y dostarczone przez Chrisa Johnsona
<CODE><cdj@netcom.com></CODE>.
<P>Robert Hart przys³a³ kilka doskona³ych paragrafów na temat
ustawiania serwera drukarek dla po³±czonych HP, któych ja u¿ywam w
niezmienionej wersji.
<P>I specjalne podziêkowania dla tuzinów nad tuzinami tych, którzy
wskazywali literówki, z³e adresy i b³êdy w tym dokumencie przez
lata.
<P>
<H2>16.1 Od t³umacza.</H2>
<P>
<P>Wersja ta jest wersj± ostateczn±. Dodany zosta³ odno¶nik
do w³a¶nie powsta³ego t³umaczenia dokumentu Printing-Usage-HOWTO.
<P>T³umaczenie to jest chronione prawami autorskimi © Bartosza
Maruszewskiego.
Dozwolone jest rozprowadzanie i dystrybucja na prawach takich
samych jak dokument oryginalny.
<P>Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne,
sk³adniowe, techniczne (a mo¿e ich tu trochê byæ, bo nie znam siê
tak bardzo na poligrafii) to pisz do mnie:
<P>
<A HREF="mailto:B.Maruszewski@jtz.org.pl">B.Maruszewski@jtz.org.pl</A><P>Oficjaln± stron± t³umaczeñ HOWTO jest
<A HREF="http://www.jtz.org.pl/">http://www.jtz.org.pl/</A><P>Aktualne wersje przet³umaczonych dokumentów znajduj± siê na
tej¿e stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem
<A HREF="ftp://ftp.jtz.org.pl/JTZ/">ftp.jtz.org.pl</A> w katalogu <CODE>/JTZ</CODE>.
<P>Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na
<A HREF="http://www.jtz.org.pl/bartek/tlumaczenie.html">mojej stronie WWW.</A> S± tam te¿ odwo³ania do Polskiej Strony
T³umaczeniowej.
<P>Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê
dyskusyjn± jtz@jtz.org.pl. Je¶li chcesz sie na ni± zapisaæ, to
wy¶lij list o tre¶ci <CODE>subscribe jtz Imiê Nazwisko</CODE> na adres
<CODE>majordomo@ippt.gov.pl</CODE>
<P>
</BODY>
</HTML>
|