Sophie

Sophie

distrib > Mandriva > 8.1 > i586 > by-pkgid > 1d876fa8c1caf5809b8232d098efff65 > files > 42

howto-text-pl-8.1-1mdk.noarch.rpm

  Jak ustawiæ drukarkê u¿ywaj±c± AppleTalk
  Autor: Werner Eugster, eugster@giub.unibe.ch
  WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii
  BB..MMaarruusszzeewwsskkii@@zzssmmeeiiee..ttoorruunn..ppll
  v1.01, 26 Lipca 1997


  Jako u¿ytkownik Linux-a chcesz mieæ dostêp do drukarek Mac-a takich
  jak LaserWriter siedz±cych na sieci z kontrolerem EtherTalk. Jako
  u¿ytkownik Mac-a chcesz mieæ dostêp do wszystkich drukarek na Linux-
  ie. Aby ustawiæ taki serwis na Linux-ie musisz postêpowaæ wed³ug tej
  samej procedury w obu przypadkach.  Po skompilowaniu i zainstalowaniu
  oprogramowania AppleTalk nneettaattaallkk (je¶li tego nie zrobi³e¶, to
  przeczytaj najpierw Podrêcznik instalacji atalk <http://thehamp­
  tons.com/anders/netatalk> napisany przez AAnnddeerrssaa BBrroowwnnwwoorrtthhaa) pewnie
  ju¿ uruchomi³e¶ wszystkie demony poprzez rc.atalk w swoim katalogu
  /etc. Ale najpierw upewnij siê, ¿e serwis AppleTalk rzeczywi¶cie
  dzia³a zanim zaczniesz konfigurowaæ drukarki.  Ja u¿ywam netatalk w
  wersji 1.3.3 z ³atami opisanymi w Przewodniku instalacyjnym Andersa
  Brownwortha. Powiedziano mi, ¿e ¶cie¿ka do filtrów netatalk zmieni³a
  siê w nowszych wersjach.

  11..  MMoojjaa ssttrreeffaa AApppplleeTTaallkk..


  Napisz /usr/local/atalk/bin/getzones, aby sprawdziæ czy wszystkie
  strefy AppleTalk s± widziane przez Linux-a. Powiniene¶ widzieæ
  przynajmniej jedn± nazwê, która jest twoj± stref± lokaln±, w innym
  przypadku bardzo prawdopodobne jest, ¿e twój serwis AppleTalk nie
  dzia³a poprawnie. Ja dostajê co¶ takiego (tylko kilka pierwszych
  linii):


          Pingo$ /usr/local/atalk/bin/getzones | more
          VLSB
          LSB-Integrative Biology
          LSB-Biology Library
          LSB-Herbaria
          LSB-UCMP
          LSB-MVZ
          Vanishing Packets
          MIP
          Barker Hall



  Przy pomocy opcji dowiesz siê która jest twoj± stref±:


          Pingo$ /usr/local/atalk/bin/getzones -m
          VLSB
          Pingo$



  Tak wiêc moj± stref± lokaln± jest VLSB, kompletn± listê wszystkich
  lokalnych stref mo¿na uzyskaæ przy pomocy opcji -l (w razie gdy twoja
  drukarka nie jest w twojej strefie musisz znaæ dok³adn± nazwê strefy).


  22..  DDoowwiieeddzz ssiiêê jjaakkaa jjeesstt nnaazzwwaa ddrruukkaarrkkii..


  Je¶li chcesz tylko, aby lokalna drukarka UNIX-owa by³a dostêpna dla
  klientów AppleShare, to przeskocz tê sekcjê i id¼ do ``sekcji nr 3''.

  Najpierw musimy siê dowiedzieæ jak s± zdefiniowane nazwy Internetowe w
  AppleTalk. Jest to bardzo podobne do tego co znasz ze swojego Linux-a.
  Nazwy wystêpuj± w formie: objekt:typ@strefa. Je¶li nie zale¿y ci na
  nazwie strefy lokalnej to u¿yj @*.

  Tak wiêc, aby znale¼æ wszystkie objekty w twojej strefie, napisz
  /usr/local/atalk/bin/nbplkup, co wypluje wielk± listê, z elementami
  jak ten:


  Pingo$ /usr/local/atalk/bin/nbplkup |more
           Sun ValleyUs Macintosh:Macintosh IIsi           12398.245:253
           Sun ValleyUs Macintosh:Workstation              12398.245:4
         IB Instructional Support:  Power Macintosh        12398.196:253
         IB Instructional Support:Workstation              12398.196:4
                    centris 660AV:  Macintosh              12398.51:253
                    centris 660AV:Workstation              12398.51:4
             Chapin Lab vx - JoeC:Macintosh IIvx           12398.101:253
             Chapin Lab vx - JoeC:Workstation              12398.101:4
                Pingo Mac Printer:LaserWriter              12398.164:129
            Pingo Default Printer:LaserWriter              12398.164:128
                            Pingo:AFPServer                12398.164:130
                            Pingo:netatalk                 12398.164:4
                            Pingo:Workstation              12398.164:4
                        Lucicutia:AFPServer                12398.123:248
             Theobald Chapin, III:LaserWriter              12398.73:191



  Je¶li chcesz znaæ tylko objekty konkretnego typu jak LaserWriter,
  musisz u¿yæ /usr/local/atalk/bin/nbplkup :LaserWriter. Upewnij siê, ¿e
  wstawi³e¶ dwukropek, który oznacza, ¿e chcesz znaæ tylko objekty typu
  LaserWriter. S³owo nie mo¿e zawieraæ du¿ych liter, ale nie mo¿esz
  omin±æ spacji. Tak wiêc, ¿eby zobaczyæ Macintosh IIvx musisz wstawiæ
  nazwê typu w cudzys³owia:


  Pingo$ /usr/local/atalk/bin/nbplkup  :"Macintosh IIvx"
             Chapin Lab vx - JoeC:Macintosh IIvx           12398.101:253
  Pingo$



  Dobra. Krótko: Chcê móc drukowaæ z mojego Linux-a na LaserWriter o
  nazwie Theobald Chapin, III. Zanim spróbujesz ustawiæ printcap dla
  kolejki tej drukarki, upewnij siê czy masz dostêp do tej drukarki.

  Napisz /usr/local/atalk/bin/papstatus -p "Theobald Chapin, III"
  (zauwa¿, ¿e cudzys³owia s³u¿± tylko temu, aby poinformowaæ twoj±
  pow³okê, i¿ Theobald Chaplin, III to jeden argument a nie trzy) i
  powiniene¶ otrzymaæ co¶ takiego:


  status: idle



  Je¶li nie, to sprawd¼ czy AppleTalk rzeczywi¶cie dzia³a (mo¿e demon
  nie jest uruchomiony ? Sprawd¼ tak: ps -xa | grep atalkd i ps -xa |
  grep afpd).

  Poniewa¿ LaserWriter spodziewa siê PostScriptu, powiniene¶ mieæ pod
  rêk± krótki plik testowy w PostScripcie. Nazwa mojego pliku to:
  test.eps i mogê go wys³aæ bezpo¶rednio do Theobald Chaplin, III
  uruchamiaj±c klienta drukowania AppleShare:

  /usr/local/atalk/bin/pap -p "Theobald Chapin, III":LaserWriter@VLSB test.eps



  Zauwa¿, ¿e do³aczy³em nazwê strefy tylko po to, ¿eby siê upewniæ, ¿e
  wszystko dzia³a dobrze. Je¶li twoje zadanie drukowania siê pojawi (co
  sekundê - czy jako¶ tak - otrzymasz komunikat je¶li kto¶ inny u¿ywa
  drukarki w tym samym momencie. Obserwuj odpowied¼ twojej drukarki i co
  robi kiedy zacznie drukowaæ twój plik).

  Je¶li bêdziesz mia³ jakie¶ k³opoty, u¿yj aecho, aby sprawdziæ objekty
  AppleTalk w ten sam sposób jakby¶ u¿ywa³ ping-a przez TCP/IP (Ctrl-C
  zatrzymuje aecho):


  /usr/local/atalk/bin/aecho "Theobald Chapin, III":LaserWriter@VLSB
  14 bytes from 12398.73: aep_seq=0. time=15. ms
  14 bytes from 12398.73: aep_seq=1. time=14. ms
  14 bytes from 12398.73: aep_seq=2. time=14. ms
  14 bytes from 12398.73: aep_seq=3. time=14. ms

  ----12398.73 AEP Statistics----
  5 packets sent, 4 packets received, 20% packet loss
  round-trip (ms)  min/avg/max = 14/14/15
  Pingo$



  Powiniene¶ straciæ tylko ostatni pakiet przy przerwaniu Ctrl-C, w
  innym wypadku co¶ jest nie talk z twoim po³±czeniem.


  33..  UUssttaawwiiaanniiee sseerrwwiissuu ddrruukkoowwaanniiaa nnaa LLiinnuuxx--iiee..


  Bêd± dwa kroki. Najpierw upewnisz siê, ¿e mo¿esz drukowaæ na Linux-ie
  potem upewnisz siê, ¿e ta drukarka jest dostêpna dla klientów
  AppleShare.

  Mówi±c ja¶niej: najpierw ustawisz swoj± drukarkê, ¿eby by³a dostêpna
  dla UNIX-a (lpd - demona drukowania) (sekcja 3.1 do 3.2), a potem
  udostêpnisz j± innym u¿ytkownikom w strefie AppleTalk (sekcja 3.3) co
  jest oczywi¶cie opcjonalne.

  Wielu ludzi nie lubi ustawiania z dwóch powodów:
  drukarka AppleTalk jest ju¿ dostepna w strefie AppleTalk, to
  u¿ytkownicy Mac-ów mog± siê do niej bezpo¶rednio do³±czyæ. Wiêc nie ma
  potrzeby istnienia kolejki na Linux-ie. Jednak ja jestem u¿ytkownikiem
  Linux-a i chcê mieæ dostêp do tej drukarki i dlatego mój poni¿szy opis
  robi dok³adnie to: pozwala u¿ytkownikowi Linux-a na drukowanie na
  drukarce AplleTalk.
  jest drukark± lokaln± pod³±czon± do równoleg³ego portu Linux-a (np.
  /dev/lp1), to jest kilka zmian w pliku /etc/printcap. Ja poka¿ê
  przyk³ad ustawienia z drukark± lokaln±, którego nie testowa³em, ale
  dosta³em od innego u¿ytkownika. Przeczytaj ``sekcjê 3.4'' na ten temat
  i sprawd¼ szczegó³owe informacje na temat u¿ywania Ghostscript-u razem
  z Netatalk <http://artoo.hitchcock.org/~flowerpt/projects/linux-
  netatalk/ghostscript.html> napisane przez Mike'a Pearsona i Billa
  McGonigle'a.


  33..11..  KKoonnffiigguurraaccjjaa ttwwoojjeeggoo //eettcc//pprriinnttccaapp..


  Je¶li twoja drukarka mo¿e ju¿ drukowaæ przy pomocy polecenia

  Pingo$ lpr -P lp test.eps



  to mo¿esz przeskoczyæ ten pierwszy krok.

  W innym przypadku stañ siê "root-em" i id¼ do katalogu /etc, ¿eby
  wyedytowaæ plik printcap. Szczegó³y znajdziesz na stronie podrêcznika
  systemowego "man". Ja opiszê tylko jak ustawiæ LaseWriter, tak ¿eby
  dzia³a³ z poleceniem lpr z Linux-a.

  Dodaj pozycjê dla swojej drukarki do pliku printcap. Ja mam
  zdefiniowan± tylko LaserWriter i mój plik wygl±da tak:


  lp|Pingo LaserWriter|Theobald Chapin, III:\
          :sd=/usr/spool/theobald:\
          :lp=/dev/null:\
          :pl#63:pw#85:\
          :mx#0:\
          :sh:sf:\
          :lf=/usr/adm/lpd-errs:\
          :if=/usr/local/bin/myif:\
          :of=/usr/local/atalk/etc/ofpap:




  33..11..11..  nnaazzwwaa ddrruukkaarrkkii ddllaa uu¿¿yyttkkoowwnniikkóóww LLiinnuuxx--aa


  Pierwsza linia definiuje trzy logiczne nazwy, które nie musz± mieæ
  ¿adnego podobieñstwa do nazw, jakie chcesz nadaæ tej drukarce w
  kliencie AppleShare. Dlatego nazwa³em j± lp, poniewa¿ jest to nazwa
  stosowana w wiêkszo¶ci UNIX-ów. Inne nazwy stosujê tylko po to, ¿eby
  wiedzieæ co to w³a¶ciwie za drukarka.


  33..11..22..  kkaattaalloogg zzaaddaaññ


  Potem musisz mieæ katalog zadañ, gdzie demon bêdzie sk³adowa³ zadania.
  Ja nazwa³em swój katalog zadañ /usr/spool/theobald w tej samej
  hierarchii co katalog poczty.


  Pingo$ ls -l
  drwxrwxr-x   2 root     mail         1024 Feb  8 08:46 mail
  drwxr-xr-x   2 root     mail         2048 Feb  8 17:23 mqueue
  drwxrwxr-x   5 news     news         1024 Sep  1  1994 news
  drwxrwxr-x   2 root     lp           1024 Feb  9 13:15 theobald



  Stwórz go u¿ywaj±c mkdir a potem ustaw w³a¶ciciela (root), grupê (lp)


  Pingo$ chown root.lp theobald



  i prawa dostêpu


  Pingo$ chmod 775 theobald

  Potem stworzy³em dwa pliki: lock i status w tym katalogu:


  Pingo$ cd theobald
  Pingo$ touch lock; chown root.root lock; chmod 004 lock
  Pingo$ touch status; chown root.root status; chmod 664 status



  teraz mo¿esz zdefiniowaæ ten katalog jako katalog zadañ jak ja to
  zrobi³em w linii 2.


  33..11..33..  uurrzz±±ddzzeenniiee ddrruukkaarrkkii


  Je¶li twoja drukarka jest lokaln± drukark± do³±czon± do urz±dzenia
  takiego jak/dev/lp1, to to jest urz±dzenie, którego potrzebujesz.
  U¿yjesz mknod, aby utworzyæ to urz±dzenie je¶li go jeszcze nie ma. Dla
  drukarki w AppleTalk nie chcesz w³a¶ciwie drukowaæ do ¿adnego
  urz±dzenia, ale wys³aæ zadanie do tej drukarki u¿ywaj±c programu pap z
  katalogu /usr/local/atalk/bin. Zrobi siê to przy pomocy filtra psf,
  który uruchomi program pap, aby mieæ dostêp do drukarki. Dlatego, po
  tym jak zadanie zosta³o wys³ane do LaserWriter, jest ono ci±gle w
  Linux-ie, poniewa¿ demon drukowania lpd ma na samym koñcu wys³aæ to
  zadania na urz±dzenie. Dlatego zdefiniujemy urz±dzenie /dev/null jako
  urz±dzenie drukarki, które wy¶le twoje zadanie w pró¿niê (bo chcesz
  mieæ tylko to co siê pojawi³o na drukarce AppleTalk, prawda?). Dlatego
  w trzeciej linii wpiszemy :lp=/dev/null:\. Przeczytaj stronê
  podrêcznika systemowego na temat psf, je¶li masz wiêcej ni¿ jedn±
  drukarkê AppleTalk i je¶li masz problemy z u¿ywaniem urz±dzenia
  /dev/null jako urz±dzenia drukarki.


  33..11..44..  rroozzmmiiaarr ssttrroonnyy,, mmaakkssyymmaallnnyy rroozzmmiiaarr pplliikkuu ii nnaagg³³óówweekk


  U¿yj pól pl i pw dla okre¶lenia d³ugo¶ci strony (linie) i szeroko¶ci
  (znaki). Polem mx mo¿esz zdefiniowaæ maksymalny rozmiar pliku
  drukowanego. Je¶li plik jest wiêkszy, demon drukarki obetnie go, albo
  odmówi drukowania. Je¶li ustawisz tê warto¶æ na 0 (mx#0), oznacza to,
  i¿ mo¿na drukowaæ pliki o nieograniczonych rozmiarach. Uwa¿aj, bo
  przypadkowo papier mo¿e siê skoñczyæ je¶li nikt siê nie bêdzie o to
  troszczyæ. A twoja g³odna drukarka bêdzie wo³aæ o papier ! Tak wiêc
  radzê nie ustawiaæ pola mx na 0 je¶li skoñczy³e¶ ju¿ testowaæ i
  wszystko jest w porz±dku.

  Polem sh mo¿emy zabroniæ drukowania strony pocz±tkowej (z
  identyfikatorem w³a¶ciciela itp.)

  Polem sf mo¿emy zabroniæ drukowania feed forms.


  33..11..55..  zzaappiissyywwaanniiee bb³³êêddóóww


  Ja zdefiniowa³em do tego celu plik /usr/adm/lpd-errs. Bêdziesz musia³
  stworzyæ ten plik samemu (np. poleceniem touch /usr/adm/lpd-errs)


  33..11..66..  ffiillttrryy


  TToo jjeesstt wwaa¿¿nnee !! Jak ju¿ to opisa³em, twoje zadanie zostanie wys³ane do
  drukarki AppleTalk tylko je¶li zainstalujesz odpowiedni filtr, który
  uruchomi program, pap. Pakiet netatalk u¿ywa konceptu hackerskiego,
  u¿ywaj±c filtru psf, ale z ró¿nymi do³±czeniami do niego. psf
  analizuje nazwê tego do³±czenia, aby dowiedzieæ siê, czy ma uruchomiæ
  pap je¶li pod³añcuch jest w nazwie do³±czenia, i odwróciæ kolejno¶æ
  drukowania je¶li w nazwie jest rev. Spójrz na to wydaj±c polecenie:


  Pingo$ ls -l /usr/local/atalk/etc
  lrwxrwxrwx   1 root     root            3 Feb  8 14:44 ifpap -> psf
  lrwxrwxrwx   1 root     root            3 Feb  8 14:44 ifpaprev -> psf
  lrwxrwxrwx   1 root     root            3 Feb  8 14:44 ofpap -> psf
  -rwxr-xr-x   1 root     root        49299 Feb  8 14:44 papd
  -rw-r--r--   1 root     root           35 Feb  9 13:48 papd.conf
  -rwxr-xr-x   1 root     root        11395 Feb  8 14:44 psf
  lrwxrwxrwx   1 root     root            3 Feb  8 14:44 tfpap -> psf
  lrwxrwxrwx   1 root     root            3 Feb  8 14:44 tfpaprev -> psf
  Pingo$



  Tak wiêc filtr o nazwie ifpap uruchomi pap, ifpaprev odwróci kolejno¶æ
  stron i uruchomi pap. Zamienia on zwyk³y tekst na PostScript, tak
  ¿eby¶ nie skoñczy³ na komunikacie z b³êdem.

  Jedyny filtr jaki musisz zainstalowaæ to of:


          :of=/usr/local/atalk/etc/ofpap:



  gdzie /usr/local/bin/myif jest prostym skryptem pow³oki, który pozwala
  mi na przerywanie linii w tek¶cie, które zosta³y zapisane programem,
  który automatycznie ³amie linie (bp. textedit). Niestety filtr psf nie
  robi nic takiego i ignoruje ustawienia szeroko¶ci papieru. Ja
  napisa³em swój w³asny filtr linebreak.c
  <http://www.giub.unibe.ch/~eugster/linebreak.c>, który robi to dla
  mnie i umie¶æ nastêpuj±ce linie w "myif":


  #!/bin/sh
  /usr/local/bin/linebreak $* | /usr/local/atalk/etc/ifpap $*



  Je¶li w ten sposób ustawisz filtr tekstowy, to linbreak bêdzie uwa¿a³
  tylko na szeroko¶æ strony (ustawion± pw), podczas gdy ifpap (psf)
  sprawdza tylko d³ugo¶æ. Wygl±da na to, ¿e psf zak³ada, ¿e pierwsza
  linia to 0, tak wiêc ustaw pl#63 je¶li chcesz mieæ 64 linii na
  stronie.

  Je¶li nie chcesz ³amania linii, to po prostu umie¶æ liniê:


          :if=/usr/local/atalk/etc/ifpap:\



  Teraz zapisz swój nowy printcap. Je¶li spróbujesz teraz co¶
  wydrukowaæ, dowiesz siê, ¿e jeszcze nie dzia³a, wiêc czytaj nastêpny
  paragraf.

  Jak wspomnia³em wcze¶niej, UNIX-owa nazwa drukarki w printcapie nie ma
  odpowiednika dla nazwy drukarki w AppleTalk. Musisz stworzyæ plik
  .paprc w swoim katalogu zadañ, który bêdzie zawiera³ adres drukarki w
  AppleTalk. Jest to tylko jedna linia. Zauwa¿, ¿e nie musia³em
  umieszczaæ nazwy drukarki w cudzys³owia w tym pliku, ale inni pisz±
  mi, ¿e u nich to dzia³a³o tylko z cydzys³owami. To spróbuj najpierw
  bez cydzys³owów:


  Pingo$ cat /usr/spool/theobald/.paprc
  Theobald Chapin, III:LaserWriter@VLSB



  To teraz mo¿esz zaczynaæ.

  Je¶li dostaniesz komunikat o b³êdzie jak np. "Turing:LaserWriter@Tech
  Support": NBP wtedy spróbuj z cudzys³owami. Mo¿e byæ te¿ tak, ¿e
  musisz wstawiæ tylko nazwe przed dwukropkiem w cudzys³owa, tak:
  "Theobald Chapin, III":LaserWriter@VLSB. Je¶li masz jeszcze jakie¶
  problemy, to my¶l i kombinuj ;) NIe znam ¿adnego uniwersalnego sposobu
  na rozwi±zanie tego problemu.

  Wiêcej na temat hackowania i ró¿nych obej¶æ z filtrami znajdziesz w
  sekcji ``Znane problemy''.


  33..22..  PPrrzzeetteessttuujj ddrruukkaarrkkêê..


  Najpierw sprawd¼ czy demon drukarki jest rzeczywi¶cie uruchomiony:


  Pingo$ ps -xa | grep lpd
     45  ?  SW    0:00 (lpd)
    346 pp0 D     0:00 grep lpd
  Pingo$



  Spróbuj wydrukowaæ plik w PostScripcie i plik tekstowy, ¿eby siê
  przekonaæ, ¿e wszystko dzia³a. Przypuszczalnie musisz zrestartowaæ
  demona poleceniem lpc. Uruchom lpc i napisz restart lp, down lp i up
  lp. Potem sprawd¼ status:


  lpc> status
  lp:
          queuing is enabled
          printing is enabled
          no entries
          no daemon present
  lpc>
  lpc> quit



  Teraz wydrukuj swój plik poleceniem


  Pingo$ lpr -P lp filename



  Je¶li wszystko jest w porz±dku, to plik status w katalogu zadañ
  powienien teraz zawieraæ naj¶wie¿sze informacje na temat twojej
  drukarki:




  Pingo$ cat /usr/spool/theobald/status
  job: Paul; status: busy; source: LocalTalk
  Pingo$




  33..33..  SSkkoojjaarrzz ttêê ddrruukkaarrkkêê zz jjaakk±±¶¶ nnaazzww±± ddllaa AApppplleeTTaallkk..


  Je¶li teraz pójdziesz do Mac-a i spróbujesz wybrac swoj± now± drukarkê
  dowiesz siê, ¿e poka¿e siê ona z nazw± twojego serwera Linux-owego. To
  mo¿e nie byæ zbyt zadowalaj±ce, dlatego musisz stworzyæ, albo
  wyedytowaæ plik papd.conf w katalogu etc AppleTalk,
  /usr/local/atalk/etc/papd.conf (przeczytaj "man papd" je¶li chcesz
  znaæ wiêcej szczegó³ów). Minimum tego co musisz zrobiæ to umieszczenie
  w tym pliku nazwy jak± chcesz nadaæ drukarce, a na koñcu dopisz :\ tak
  jak w printcap-ie. W drugiej linii podajesz nazwê jak± ta drukarka ma
  w Linux-ie opcj± pr. Mój plik wygl±da tak:


  Pingo$ cat /usr/local/atalk/etc/papd.conf
  Pingo Mac LaserWriter:\
          :pr=lp:
  Pingo$



  Oznacza to, ¿e (domy¶lna) zmienna lp zawiera nazwê: Pingo Mac
  LaserWriter dla klienta AppleShare. Dowiesz siê równie¿, ¿e teraz
  u¿ytkownik na Mac-u mo¿e drukowaæ bezpo¶rednio na drukarce Theobald
  Chaplin III jak i poprzez Linux-a, gdzie nazwa drukarki to Pingo Mac
  LaserWriter. Dla mnie jest wa¿ne, aby móc drukowaæ bezpo¶renio na tej
  drukarce, a podczas pracy na Mac-u drukowanie poprzez Linux-a wydaje
  siê o wiele szybsze, poniewa¿ Linux zkolejkuje zadanie i zniknie ono
  natychmiast z mojego desktopu.

  Je¶li chcesz zarejestrowaæ swoj± drukarkê w jakiej¶ strefie AppleTalk
  (nie w domy¶lnej strefie), po prostu podajesz tê strefê wraz z
  rozszerzeniem @nazwa_strefy w pliku papd.conf:


  MotorsLab@EEAP:\
          :pr=ee3rd:




  33..44..  JJaakkaa jjeesstt rróó¿¿nniiccaa mmiiêêddzzyy llookkaallnn±± ddrruukkaarrkk±± ppoodd³³±±cczzoonn±± ddoo kkoommppuutt­­
  eerraa LLiinnuuxx--oowweeggoo??


  Ta sekcja nie jest jeszcze ca³kiem gotowa !!!


  /etc/princap:
  lp:lp=/dev/lp1:sd=/usr/spool/lp1:sh

  /usr/local/atalk/etc/papd.conf:
  HP LJIIIp:\
          :pr=lp:\
          :pd=/usr/local/atalk/etc/HP_LaserJet_IIIP.ppd:




  Sprawd¼ szczegó³y na stronie U¿ywanie ghostscript-a wraz z Netatalk
  <http://artoo.hitchcock.org/~flowerpt/projects/linux-
  netatalk/ghostscript.html>.


  44..  RRoozzwwii±±zzyywwaanniiee pprroobblleemmóóww..



  44..11..  OOggóóllnnaa ssttrraatteeggiiaa..


  Je¶li masz jakie¶ problemy podczas drukowania, nawet je¶li dzia³a³o
  kiedy wszystko ustawia³e¶ tak jak opisa³em, to spójrz do
  /usr/adm/mesaages (albo do /usr/log/messages albo /var/log/messages -
  przyp. t³um.) oraz do /usr/adm/syslog (patrz poprzednia uwaga). Je¶li
  tylko spróbujesz co¶ wydrukowaæ u¿ywaj±c filtru psf, to znajdziesz
  podobne linie w wymienionych wy¿ej plikach:


  Feb 12 17:47:52 Pingo ofpap[1443]: starting for ?
  Feb 12 17:47:52 Pingo ofpap[1443]: sending to pap[1444]
  Feb 12 17:47:52 Pingo ofpap[1443]: straight text
  Feb 12 17:47:59 Pingo ofpap[1443]: 1444 done
  Feb 12 17:47:59 Pingo ofpap[1443]: pausing
  Feb 12 17:48:01 Pingo ifpap[1447]: starting for ?
  Feb 12 17:48:01 Pingo ifpap[1447]: sending to pap[1448]
  Feb 12 17:48:01 Pingo ifpap[1447]: straight text
  Feb 12 17:48:09 Pingo ifpap[1447]: 1448 done
  Feb 12 17:48:09 Pingo ofpap[1443]: restarting
  Feb 12 17:48:09 Pingo ifpap[1447]: done
  Feb 12 17:48:09 Pingo ofpap[1443]: done
  Feb 12 18:00:46 Pingo ofpap[1481]: starting for ?
  Feb 12 18:00:46 Pingo ofpap[1481]: sending to pap[1482]
  Feb 12 18:00:46 Pingo ofpap[1481]: straight text
  Feb 12 18:00:51 Pingo ofpap[1481]: 1482 done
  Feb 12 18:00:51 Pingo ofpap[1481]: pausing
  Feb 12 18:00:52 Pingo ifpap[1485]: starting for ?
  Feb 12 18:00:52 Pingo ifpap[1485]: sending to pap[1486]
  Feb 12 18:00:52 Pingo ifpap[1485]: straight text
  Feb 12 18:00:57 Pingo ifpap[1485]: 1486 done
  Feb 12 18:00:57 Pingo ofpap[1481]: restarting
  Feb 12 18:00:57 Pingo ofpap[1481]: done
  Feb 12 18:00:57 Pingo ifpap[1485]: done



  Je¶li co¶ nie dzia³a, otrzymasz komunikat w /usr/adm/syslog jak ten:


  Feb 12 10:04:59 Pingo papd[70]: No such printer: "lp"
  Feb 12 10:04:59 Pingo papd[70]: printcap problem: "lp"



  (twoja domy¶lna zmienna lp nie jest zdefiniowana)


  Feb 12 17:02:21 Pingo ofpap[1149]: 1150 died with 1
  Feb 12 17:02:21 Pingo lpd[1148]: lp: output filter died (1)
  Feb 12 17:02:26 Pingo lpd[1148]: lp: Daemon filter 'f' terminated (11)
  Feb 12 17:04:48 Pingo lpd[1195]: lp: Daemon filter 'f' terminated (11)
  Feb 12 17:08:03 Pingo lpd[1216]: lp: Daemon filter 'f' terminated (11)
  Feb 12 17:10:00 Pingo lpd[1228]: cannot execv /usr/local/bin/linebreak|/usr/local/atalk/ifpap
  Feb 12 17:11:51 Pingo lpd[1244]: /usr/adm/lpd-errs: No such file or directory

  (/etc/printcap nie akceptuje strumieni w definicji if; oto dlaczego
  u¿ywa³em skryptu /usr/local/bin/myif. Zapomnia³em tak¿e stworzyæ pliku
  /usr/adm/lpd-errs, który zdefiniowa³em w /etc/printcap)


  44..22..  NNiieezznnaannee pprroobblleemmyy


  Najpierw przeczytaj sekcjê o ``Znanych    problemach''. Je¶li nie
  bêdzie tam nic pomocnego dla ciebie, to wy¶lij do mnie list i do³±cz
  do niego pliki /etc/printcap oraz /usr/local/atalk/etc/papd.conf.

  nnbbppllkkuupp ppookkaazzuujjee nnaazzwwêê ddrruukkaarrkkii ii jjeejj aaddrreess,, aallee jjaa nniiee ddoossttaajjêê ¿¿aaddnneejj
  ooddppoowwiieeddzzii zz pprrooggrraammuu ppaappssttaattuuss oodd tteejj ddrruukkaarrkkii..


  44..33..  ZZnnaannee pprroobblleemmyy..


  Dostajê du¿o listów od ludzi, którzy maj± problemy, wiêc umieszczê
  tutaj rozwi±zania dla wszystkich. Bêdzie to rosn±ca, nieposortowana
  lista. Po prostu sprawd¼ czy twój problem jest tu opisany.


  44..33..11..  nniiee mmaa wwyyddrruukkuu zzwwyykk³³eeggoo pplliikkuu tteekkssttoowweeggoo


  Sprawd¼ czy nie masz w pliku /usr/adm/lpd-errs czego¶ takiego:


  unprintable character (0x9a)!



  Jest to problem dotycz±cy psf, filtru u¿ytego do drukowania.
  Zlokalizuj plik psf.c w swojej dystrybucji netatalk i uczyñ go
  zapisywalnym


  chmod 644 psf.c



  Zlokalizuj drug± liniê, w której jest ³añcuch unprintable character.
  Pierwsze wystapienie (z dwóch) powino byæ w linii 402 a drugie - w 496
  lub podobnie. Druga linia to jest przypuszczalnie ta, która ci sprawia
  k³opoty. Zamieñ


    if ( !isascii( *p ) || !isprint( *p )) {
        if ( !literal ) {
            fprintf( stderr, "unprintable character (0x%x)!\n",
                    (unsigned char)*p );
            return( 2 );  /* Toss job */
        }
        printf( "\\%o", (unsigned)*p );



  na






    if ( !isascii( *p ) || !isprint( *p )) {
        if ( !literal ) {
            fprintf( stderr,
                    "unprintable character (0x%x) converted to ?!\n",
                    (unsigned char)*p );
            /* return( 2 );*/     /* Toss job */
            putchar( '?' );       /* Don't toss job!      */
        }
        else{
          printf( "\\%o", (unsigned)*p );
        }



  Teraz napisz "make" w wierszu poleceñ w katalogu netatalk (nie w tym,
  w którym jest psf.c, bo make nie bêdzie w tym przypadku zna³o ¶cie¿ki
  do pap !). Potem skopiuj nowe psf do odpowiedniego katalogu
  (/usr/local/atalk/etc).

  To co siê dzieje to: program zamienia niedrukowalny znak na znak "?" i
  nie przerywa pracy. Mo¿e kto¶ ma lepszy pomys³ na to jak
  przekonwertowaæ niedrukowalny znak na jego odpowiednik w PostScripcie
  ?

  Ale je¶li to bêdziesz robi³, to uwa¿aj na prawa autorskie w psf !


  44..33..22..  nniiee mmaa uummllaauuttóóww,, aannii zznnaakkóóww nnaarrooddoowwyycchh


  Jak w³a¶nie wy¿ej wspomnia³em, psf nie obs³uguje rozszerzonych zbiorów
  znaków. Ale nenscript to potrafi. Ale poniewa¿ nie jest to filtr,
  który móg³by zostaæ u¿yty bezpo¶rednio w printcap-ie, bêdziesz musia³
  to obej¶æ. Ja mam zdefiniowan± dodatkow± drukarkê, która obs³uguje
  zwyk³y tekst u¿ywaj±c nenscriptu.

  /etc/printcap wygl±da tak:


  #
  # Apple LaserPrinter Select 360 on AppleTalk:
  #
  lp|Pingo LaserWriter|Theobald Chapin, III:\
          :sd=/usr/spool/theobald:\
          :lp=/dev/null:\
          :pl#61:\
          :pw#80:\
          :mx#0:\
          :sh:\
          :sf:\
          :lf=/var/adm/lpd-errs:\
          :if=/usr/local/bin/myif:\
          :of=/usr/local/atalk/etc/ofpap:
  #
  # Special setup for plain text files, to convert to PostScript using nenscript
  # instead of psf (which doesn't process the whole ISO characterset)
  #
  text:\
          :sd=/usr/spool/textprinter:\
          :lp=/dev/null:\
          :mx#0:\
          :sh:\
          :sf:\
          :lf=/var/adm/lpd-errs:\
          :of=/usr/local/bin/textfilter:

  /usr/local/bin/textfilter jest skryptem w pow³oce:


  #!/bin/sh
  /usr/bin/nenscript -P lp -2 -r -T US -i "Werner Eugster"



  Niestety nie znalaz³em sposobu na zachowanie nazwy pliku do drukowania
  i dlatego u¿ywam opcji -i z moim nazwiskiem, ¿eby oznaczyæ wydruk.
  Mo¿e znajdziesz jaki¶ lepszy sposób u¿ywaj±c np. Unix-owej zmiennej
  ¶rodowiskowej z loginem.

  W tym ustawieniu otrzymujê tekst na papierze w uk³adzie poziomym
  (opcja -r) w dwóch kolumnach (-2) wys³any na standardow± drukarkê lp.
  Aby wydrukowaæ zwyk³y plik tekstowy u¿ywam polecenia


  lpr -P text plain.txt



  Tak wiêc przede wszystkim, drukarka zdefiniowana jako text zamienia
  zwyk³y tekstowy plik na PostScript u¿ywaj±c nenscript (który obs³uguje
  pe³en zestaw znaków ISO), ktory przekazuje go dalej do drukarki
  zdefiniowanej jako lp. Przez to, u¿ywaj±c polecenia lpq zobaczysz, ¿e
  zadanie drukowania pojawi siê przy drukarce lp i przychodz±cego ze
  standardowego wej¶cia, co jest poprawne.

  Je¶li kto¶ zna jaki¶ sposób, ¿eby umie¶ciæ na wydruku nazwê pliku, to
  bêdê bardzo wdziêczny za tê informacjê !


  44..33..33..  mmoojjee uussttaawwiieenniiaa dd³³uuggoo¶¶ccii ii sszzeerrookkoo¶¶ccii ssttrroonnyy ssaa iiggnnoorroowwaannee


  To by³ mój b³±d. Sprawd¼ czê¶æ powy¿ej, gdzie opisujê myif. Musisz
  dodaæ $* dwa razy w drugiej linii w pliku, która teraz wygl±da tak:


  #!/bin/sh
  /usr/local/bin/linebreak $* | /usr/local/atalk/etc/ifpap $*




  44..33..44..  zzaaddaanniiee jjeesstt wwyyss³³aannee ddoo ddrruukkaarrkkii,, aallee nniiee zzoossttaajjee wwyyddrruukkoowwaannee


  Jest wiele takich problemów. Jeden, o którym dowiedzia³em siê od Paolo
  Supino to ten:

  _"_P_o_d_c_z_a_s _k_r_ó_t_k_i_e_j _i_n_s_p_e_k_c_j_i _w_y_d_r_u_k_u _z _n_b_p_l_k_u_p _(_¿_e_b_y _z_o_b_a_c_z_y_æ _c_z_y _s_±
  _t_a_k _j_a_k_i_e_¶ _d_z_i_w_n_e _r_z_e_c_z_y_)_, _z_o_b_a_c_z_y_³_e_m_, _¿_e _n_a_s_z_a _d_r_u_k_a_r_k_a _n_a _s_i_e_c_i _m_a
  _t_e_n _s_a_m _n_u_m_e_r _c_o _s_e_r_w_e_r _N_T _(_k_t_ó_r_y _k_o_l_e_j_k_u_j_e _z_a_d_a_n_i_a _z _P_C_-_t_ó_w_)_. _T_o _b_y_³_o
  ¼¼llee.
  1. Serwer NT jest bbaarrddzzoo z³ym spoolerem.
  2. Powinien on kolejkowaæ tylko maszyny Windows-owe.
  3. Pomimo tego, i¿ nie mia³ on przechwytywaæ wszystkiego co przez
  niego przesz³o - on to robi³.

  _R_o_z_w_i_±_z_a_n_i_e_: _W_y_³_±_c_z_y_æ _z_u_p_e_³_n_i_e _s_e_r_w_e_r _d_r_u_k_o_w_a_n_i_a _d_l_a _M_a_c_-_ó_w _n_a _N_T_.
  _W_y_e_d_y_t_o_w_a_æ _p_l_i_k .paprc _w _k_a_t_a_l_o_g_u _z_a_d_a_ñ _t_a_k_, _¿_e_b_y _w_s_k_a_z_y_w_a_³ _o_n
  _b_e_z_p_o_¶_r_e_d_n_i_o _n_a _d_r_u_k_a_r_k_ê_. _Z_r_e_s_t_a_r_t_o_w_a_æ _k_o_m_p_u_t_e_r_, _¿_e_b_y _m_u _s_i_ê _p_a_m_i_ê_c
  _o_d_¶_w_i_e_¿_y_³_a_.

  44..33..55..  mmoojjaa ddrruukkaarrkkaa nniiee bbiieerrzzee ppaappiieerruu zz tteeggoo zzaassoobbnniikkaa,, zz kkttóórreeggoo
  jjaa cchhccêê


  Domy¶lnie wszystko jest drukowane na papierze ze standardowego
  zasobnika. Je¶li chcesz tak ustawiæ drukarkê, aby bra³a papier z
  innego zasobnika ni¿ ze standardowego, to spróbuj tego:

  Zmodyfikuj swój plik /usr/local/bin/myif i przepu¶æ wszystko przez
  program awk, czy jaki¶ inny, który potrafi zapisaæ dodatkow± liniê do
  strumienia po nag³ówku.
  Np. Ja spróbowa³em tak:


  #!/bin/sh
  /usr/local/bin/linebreak $* | awk '{if(NR==1&&$1~"%!"){print;print
  "statusdict begin /manualfeed true store end\n";}else{print}}' | /usr/local/atalk/etc/ifpap $*



  (upewnij siê, ¿e nie ma fizycznych ³amañ linii w linii drugiej).
  papier z podajnika rêcznego. Dla innych podajników zamieñ tekst w
  cuszys³owach ("statusdict begin /manualfeed true store end\n") na
  odpowiednie polecenie z tej listy:


  Podajnik          |             Polecenie PostScriptu
  ------------------+---------------------------------------------------
  przedni           | "statusdict begin 0 setpapertray end"
                    |
  tylny             | "statusdict begin 1 setpapertray end"
                    |
  automatyczny      | "statusdict begin /manualfeed true store end"



  Polecenia PostScriptu do zdefiniowania wyj¶ciowych "szufladek":


  Szufladka         |              Polecenie PostScriptu
  ------------------+---------------------------------------------------
  górna             | "0 statusdict /setoutputtray get exec"
                    |
  dolna             | "1 statusdict /setoutputtray get exec"



  Oczywi¶cie je¶li chcesz zdefiniowaæ podajnik wej¶ciowy ii szufladkê
  wyj¶ciow±, to musisz wstawiæ dwie linie do pliku PostScriptowego.

  Chocia¿ to dzia³a dla wej¶cia, które ju¿ jest PostScriptem. Je¶li
  chcesz to osi±gn±æ dla tekstu, który jest dopiero zamieniany na
  PostScript, to musisz zmodyfikowaæ plik psf.c i skompilowaæ nowy filtr
  psf. (nie zapomnij zainstalowaæ go w katalogu /usr/local/atalk/etc !).
  Wszystko co musisz zrobiæ, to znale¼æ liniê %%!PS-Adobe-2.0 (ok. linii
  379, musi to byæ funkcja textps(). Dodaj now± liniê:


  printf( "statusdict begin /manualfeed true store end\n" );



  (i znowu - mo¿esz zamieniæ tekst w cudzys³owach na ten, który ci
  odpowiada). Potem skompiluj ponownie psf i zainstaluj go.


  Davis Goodman skoñczy³ na takim skrypcie myif, który sprawdza czy
  chcesz drukowaæ w rozmiarach listowych czy normalnych. Je¶li jest to
  normalny, to wykonywane jest polecenie PostScriptu powoduj±ce wybór
  tylnego podajnika, w innym przypadku papier pobierany jest z podajnika
  standardowego.


  #!/bin/sh
  bounding=`grep BoundingBox $8 | cut -d" " -f5 `
  if [ "$bounding" = "" ]; then
    /usr/bin/awk '{if(NR==1&&$1~"%!"){print;print "statusdict begin 1 setpapertray end\n";}else{print}}' | /usr/local/atalk/etc/ifpap $*
  else
    /usr/local/atalk/etc/ifpap $*
  fi



  To dzia³a z Netscape a twoje w³asne oprogramowanie mo¿e przyjmowaæ
  inne warto¶ci. Za³±czy³em ten przyk³ad tylko po to, ¿eby ci wskazaæ,
  gdzie nale¿y zacz±æ je¶li chcesz robiæ podobne sztuczki.

  Jeszcze jeden przyk³ad jest od Tomasa Pospiska, który zdefiniowa³
  nazwy drukarek dla ró¿nych podajników w tej samej drukarce w
  /etc/printcap. ¯eby wydrukowaæ na papierze z konkretnego podajnika
  wysy³asz zadanie na odpowiedni± drukarkê. Jego printcap wygl±da tak:


  # LaserWriter Pro 630 (Default Tray)
  lp:\
          :sd=/usr/spool/lp1:\
          :lp=/dev/null:\
          :pl#63:pw#85:\
          :mx#0:\
          :sh:sf:\
          :lf=/var/log/lp-errs:\
          :if=/usr/lib/atalk/filters/myif:\
          :of=/usr/lib/atalk/filters/ofpap:
  #
  # LaserWriter Pro 630 (Manual Tray)
  lpm:\
          :sd=/usr/spool/lpm:\
          :lp=/dev/null:\
          :pl#63:pw#85:\
          :mx#0:\
          :sh:sf:\
          :lf=/var/log/lp-errs:\
          :if=/usr/lib/atalk/filters/myif_manual:\
          :of=/usr/lib/atalk/filters/ofpap:



  a filtr myif wygl±da tak:


  #!/bin/sh
  /usr/bin/awk '{if(NR==1&&$1~"%!"){print;print "statusdict begin
  /manualfeed true store end\n";}else{print}}' |
  /usr/lib/atalk/filters/ifpap $*



  Jak dot±d dosta³em konstruktywne komentarze i pytania od ludzi z




  COM domena              11
  EDU (USA)               12
  US domena (USA)         1
  GOV domena USA          2
  NET domena              1

  Australia               1
  Austria                 2
  Belgia                  1
  Francja                 2
  Niemcy                  5
  Islandia                1
  W³ochy                  3
  Japonia                 1
  Holandia                1
  Portugalia              2
  Wileka Brytania         1
  Szwajcaria              1



  © 13 Marca 1997 Werner Eugster (eugster@giub.unibe.ch)


  55..  OOdd tt³³uummaacczzaa..


  T³umaczenie to jest chronione prawami autorskimi © Bartosza
  Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  prawach takich samych jak dokument oryginalny.

  Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne,
  sk³adniowe, techniczne to pisz do mnie:

  B.Maruszewski@zsmeie.torun.pl

  Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/

  Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e
  stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem
  ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.

  Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej
  stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S±
  tam te¿ odwo³ania do Polskiej Strony T³umaczeniowej.

  Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê
  dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz sie na ni± zapisaæ, to wy¶lij
  list o tre¶ci subscribe jtz Imiê Nazwisko na adres
  listproc@ippt.gov.pl