  Jak ustawi drukark uywajc AppleTalk
  Autor: Werner Eugster, eugster@giub.unibe.ch
  WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii
  BB..MMaarruusszzeewwsskkii@@zzssmmeeiiee..ttoorruunn..ppll
  v1.01, 26 Lipca 1997


  Jako uytkownik Linux-a chcesz mie dostp do drukarek Mac-a takich
  jak LaserWriter siedzcych na sieci z kontrolerem EtherTalk. Jako
  uytkownik Mac-a chcesz mie dostp do wszystkich drukarek na Linux-
  ie. Aby ustawi taki serwis na Linux-ie musisz postpowa wedug tej
  samej procedury w obu przypadkach.  Po skompilowaniu i zainstalowaniu
  oprogramowania AppleTalk nneettaattaallkk (jeli tego nie zrobie, to
  przeczytaj najpierw Podrcznik instalacji atalk <http://thehamp
  tons.com/anders/netatalk> napisany przez AAnnddeerrssaa BBrroowwnnwwoorrtthhaa) pewnie
  ju uruchomie wszystkie demony poprzez rc.atalk w swoim katalogu
  /etc. Ale najpierw upewnij si, e serwis AppleTalk rzeczywicie
  dziaa zanim zaczniesz konfigurowa drukarki.  Ja uywam netatalk w
  wersji 1.3.3 z atami opisanymi w Przewodniku instalacyjnym Andersa
  Brownwortha. Powiedziano mi, e cieka do filtrw netatalk zmienia
  si w nowszych wersjach.

  11..  MMoojjaa ssttrreeffaa AApppplleeTTaallkk..


  Napisz /usr/local/atalk/bin/getzones, aby sprawdzi czy wszystkie
  strefy AppleTalk s widziane przez Linux-a. Powiniene widzie
  przynajmniej jedn nazw, ktra jest twoj stref lokaln, w innym
  przypadku bardzo prawdopodobne jest, e twj serwis AppleTalk nie
  dziaa 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 ktra jest twoj stref:


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



  Tak wic moj stref lokaln jest VLSB, kompletn list wszystkich
  lokalnych stref mona uzyska przy pomocy opcji -l (w razie gdy twoja
  drukarka nie jest w twojej strefie musisz zna dokadn nazw strefy).


  22..  DDoowwiieeddzz ssii jjaakkaa jjeesstt nnaazzwwaa ddrruukkaarrkkii..


  Jeli chcesz tylko, aby lokalna drukarka UNIX-owa bya dostpna dla
  klientw 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 wystpuj w formie: objekt:typ@strefa. Jeli nie zaley ci na
  nazwie strefy lokalnej to uyj @*.

  Tak wic, 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



  Jeli chcesz zna tylko objekty konkretnego typu jak LaserWriter,
  musisz uy /usr/local/atalk/bin/nbplkup :LaserWriter. Upewnij si, e
  wstawie dwukropek, ktry oznacza, e chcesz zna tylko objekty typu
  LaserWriter. Sowo nie moe zawiera duych liter, ale nie moesz
  omin spacji. Tak wic, eby zobaczy Macintosh IIvx musisz wstawi
  nazw typu w cudzysowia:


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



  Dobra. Krtko: Chc mc drukowa z mojego Linux-a na LaserWriter o
  nazwie Theobald Chapin, III. Zanim sprbujesz ustawi printcap dla
  kolejki tej drukarki, upewnij si czy masz dostp do tej drukarki.

  Napisz /usr/local/atalk/bin/papstatus -p "Theobald Chapin, III"
  (zauwa, e cudzysowia su tylko temu, aby poinformowa twoj
  powok, i Theobald Chaplin, III to jeden argument a nie trzy) i
  powiniene otrzyma co takiego:


  status: idle



  Jeli nie, to sprawd czy AppleTalk rzeczywicie dziaa (moe demon
  nie jest uruchomiony ? Sprawd tak: ps -xa | grep atalkd i ps -xa |
  grep afpd).

  Poniewa LaserWriter spodziewa si PostScriptu, powiniene mie pod
  rk krtki plik testowy w PostScripcie. Nazwa mojego pliku to:
  test.eps i mog go wysa bezporednio do Theobald Chaplin, III
  uruchamiajc klienta drukowania AppleShare:

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



  Zauwa, e doaczyem nazw strefy tylko po to, eby si upewni, e
  wszystko dziaa dobrze. Jeli twoje zadanie drukowania si pojawi (co
  sekund - czy jako tak - otrzymasz komunikat jeli kto inny uywa
  drukarki w tym samym momencie. Obserwuj odpowied twojej drukarki i co
  robi kiedy zacznie drukowa twj plik).

  Jeli bdziesz mia jakie kopoty, uyj aecho, aby sprawdzi objekty
  AppleTalk w ten sam sposb jakby uywa 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 poczeniem.


  33..  UUssttaawwiiaanniiee sseerrwwiissuu ddrruukkoowwaanniiaa nnaa LLiinnuuxx--iiee..


  Bd dwa kroki. Najpierw upewnisz si, e moesz drukowa na Linux-ie
  potem upewnisz si, e ta drukarka jest dostpna dla klientw
  AppleShare.

  Mwic janiej: najpierw ustawisz swoj drukark, eby bya dostpna
  dla UNIX-a (lpd - demona drukowania) (sekcja 3.1 do 3.2), a potem
  udostpnisz j innym uytkownikom w strefie AppleTalk (sekcja 3.3) co
  jest oczywicie opcjonalne.

  Wielu ludzi nie lubi ustawiania z dwch powodw:
  drukarka AppleTalk jest ju dostepna w strefie AppleTalk, to
  uytkownicy Mac-w mog si do niej bezporednio doczy. Wic nie ma
  potrzeby istnienia kolejki na Linux-ie. Jednak ja jestem uytkownikiem
  Linux-a i chc mie dostp do tej drukarki i dlatego mj poniszy opis
  robi dokadnie to: pozwala uytkownikowi Linux-a na drukowanie na
  drukarce AplleTalk.
  jest drukark lokaln podczon do rwnolegego portu Linux-a (np.
  /dev/lp1), to jest kilka zmian w pliku /etc/printcap. Ja poka
  przykad ustawienia z drukark lokaln, ktrego nie testowaem, ale
  dostaem od innego uytkownika. Przeczytaj ``sekcj 3.4'' na ten temat
  i sprawd szczegowe informacje na temat uywania Ghostscript-u razem
  z Netatalk <http://artoo.hitchcock.org/~flowerpt/projects/linux-
  netatalk/ghostscript.html> napisane przez Mike'a Pearsona i Billa
  McGonigle'a.


  33..11..  KKoonnffiigguurraaccjjaa ttwwoojjeeggoo //eettcc//pprriinnttccaapp..


  Jeli twoja drukarka moe ju drukowa przy pomocy polecenia

  Pingo$ lpr -P lp test.eps



  to moesz przeskoczy ten pierwszy krok.

  W innym przypadku sta si "root-em" i id do katalogu /etc, eby
  wyedytowa plik printcap. Szczegy znajdziesz na stronie podrcznika
  systemowego "man". Ja opisz tylko jak ustawi LaseWriter, tak eby
  dziaa z poleceniem lpr z Linux-a.

  Dodaj pozycj dla swojej drukarki do pliku printcap. Ja mam
  zdefiniowan tylko LaserWriter i mj plik wyglda 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:




  33..11..11..  nnaazzwwaa ddrruukkaarrkkii ddllaa uuyyttkkoowwnniikkww LLiinnuuxx--aa


  Pierwsza linia definiuje trzy logiczne nazwy, ktre nie musz mie
  adnego podobiestwa do nazw, jakie chcesz nada tej drukarce w
  kliencie AppleShare. Dlatego nazwaem j lp, poniewa jest to nazwa
  stosowana w wikszoci UNIX-w. Inne nazwy stosuj tylko po to, eby
  wiedzie co to waciwie za drukarka.


  33..11..22..  kkaattaalloogg zzaaddaa


  Potem musisz mie katalog zada, gdzie demon bdzie skadowa zadania.
  Ja nazwaem swj 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



  Stwrz go uywajc mkdir a potem ustaw waciciela (root), grup (lp)


  Pingo$ chown root.lp theobald



  i prawa dostpu


  Pingo$ chmod 775 theobald

  Potem stworzyem 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 moesz zdefiniowa ten katalog jako katalog zada jak ja to
  zrobiem w linii 2.


  33..11..33..  uurrzzddzzeenniiee ddrruukkaarrkkii


  Jeli twoja drukarka jest lokaln drukark doczon do urzdzenia
  takiego jak/dev/lp1, to to jest urzdzenie, ktrego potrzebujesz.
  Uyjesz mknod, aby utworzy to urzdzenie jeli go jeszcze nie ma. Dla
  drukarki w AppleTalk nie chcesz waciwie drukowa do adnego
  urzdzenia, ale wysa zadanie do tej drukarki uywajc programu pap z
  katalogu /usr/local/atalk/bin. Zrobi si to przy pomocy filtra psf,
  ktry uruchomi program pap, aby mie dostp do drukarki. Dlatego, po
  tym jak zadanie zostao wysane do LaserWriter, jest ono cigle w
  Linux-ie, poniewa demon drukowania lpd ma na samym kocu wysa to
  zadania na urzdzenie. Dlatego zdefiniujemy urzdzenie /dev/null jako
  urzdzenie drukarki, ktre wyle twoje zadanie w prni (bo chcesz
  mie tylko to co si pojawio na drukarce AppleTalk, prawda?). Dlatego
  w trzeciej linii wpiszemy :lp=/dev/null:\. Przeczytaj stron
  podrcznika systemowego na temat psf, jeli masz wicej ni jedn
  drukark AppleTalk i jeli masz problemy z uywaniem urzdzenia
  /dev/null jako urzdzenia drukarki.


  33..11..44..  rroozzmmiiaarr ssttrroonnyy,, mmaakkssyymmaallnnyy rroozzmmiiaarr pplliikkuu ii nnaaggwweekk


  Uyj pl pl i pw dla okrelenia dugoci strony (linie) i szerokoci
  (znaki). Polem mx moesz zdefiniowa maksymalny rozmiar pliku
  drukowanego. Jeli plik jest wikszy, demon drukarki obetnie go, albo
  odmwi drukowania. Jeli ustawisz t warto na 0 (mx#0), oznacza to,
  i mona drukowa pliki o nieograniczonych rozmiarach. Uwaaj, bo
  przypadkowo papier moe si skoczy jeli nikt si nie bdzie o to
  troszczy. A twoja godna drukarka bdzie woa o papier ! Tak wic
  radz nie ustawia pola mx na 0 jeli skoczye ju testowa i
  wszystko jest w porzdku.

  Polem sh moemy zabroni drukowania strony pocztkowej (z
  identyfikatorem waciciela itp.)

  Polem sf moemy zabroni drukowania feed forms.


  33..11..55..  zzaappiissyywwaanniiee bbddww


  Ja zdefiniowaem do tego celu plik /usr/adm/lpd-errs. Bdziesz musia
  stworzy ten plik samemu (np. poleceniem touch /usr/adm/lpd-errs)


  33..11..66..  ffiillttrryy


  TToo jjeesstt wwaannee !! Jak ju to opisaem, twoje zadanie zostanie wysane do
  drukarki AppleTalk tylko jeli zainstalujesz odpowiedni filtr, ktry
  uruchomi program, pap. Pakiet netatalk uywa konceptu hackerskiego,
  uywajc filtru psf, ale z rnymi doczeniami do niego. psf
  analizuje nazw tego doczenia, aby dowiedzie si, czy ma uruchomi
  pap jeli podacuch jest w nazwie doczenia, i odwrci kolejno
  drukowania jeli w nazwie jest rev. Spjrz na to wydajc 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 wic filtr o nazwie ifpap uruchomi pap, ifpaprev odwrci kolejno
  stron i uruchomi pap. Zamienia on zwyky tekst na PostScript, tak
  eby nie skoczy na komunikacie z bdem.

  Jedyny filtr jaki musisz zainstalowa to of:


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



  gdzie /usr/local/bin/myif jest prostym skryptem powoki, ktry pozwala
  mi na przerywanie linii w tekcie, ktre zostay zapisane programem,
  ktry automatycznie amie linie (bp. textedit). Niestety filtr psf nie
  robi nic takiego i ignoruje ustawienia szerokoci papieru. Ja
  napisaem swj wasny filtr linebreak.c
  <http://www.giub.unibe.ch/~eugster/linebreak.c>, ktry robi to dla
  mnie i umie nastpujce linie w "myif":


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



  Jeli w ten sposb ustawisz filtr tekstowy, to linbreak bdzie uwaa
  tylko na szeroko strony (ustawion pw), podczas gdy ifpap (psf)
  sprawdza tylko dugo. Wyglda na to, e psf zakada, e pierwsza
  linia to 0, tak wic ustaw pl#63 jeli chcesz mie 64 linii na
  stronie.

  Jeli nie chcesz amania linii, to po prostu umie lini:


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



  Teraz zapisz swj nowy printcap. Jeli sprbujesz teraz co
  wydrukowa, dowiesz si, e jeszcze nie dziaa, wic czytaj nastpny
  paragraf.

  Jak wspomniaem wczeniej, UNIX-owa nazwa drukarki w printcapie nie ma
  odpowiednika dla nazwy drukarki w AppleTalk. Musisz stworzy plik
  .paprc w swoim katalogu zada, ktry bdzie zawiera adres drukarki w
  AppleTalk. Jest to tylko jedna linia. Zauwa, e nie musiaem
  umieszcza nazwy drukarki w cudzysowia w tym pliku, ale inni pisz
  mi, e u nich to dziaao tylko z cydzysowami. To sprbuj najpierw
  bez cydzysoww:


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



  To teraz moesz zaczyna.

  Jeli dostaniesz komunikat o bdzie jak np. "Turing:LaserWriter@Tech
  Support": NBP wtedy sprbuj z cudzysowami. Moe by te tak, e
  musisz wstawi tylko nazwe przed dwukropkiem w cudzysowa, tak:
  "Theobald Chapin, III":LaserWriter@VLSB. Jeli masz jeszcze jakie
  problemy, to myl i kombinuj ;) NIe znam adnego uniwersalnego sposobu
  na rozwizanie tego problemu.

  Wicej na temat hackowania i rnych obej z filtrami znajdziesz w
  sekcji ``Znane problemy''.


  33..22..  PPrrzzeetteessttuujj ddrruukkaarrkk..


  Najpierw sprawd czy demon drukarki jest rzeczywicie uruchomiony:


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



  Sprbuj wydrukowa plik w PostScripcie i plik tekstowy, eby si
  przekona, e wszystko dziaa. 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 swj plik poleceniem


  Pingo$ lpr -P lp filename



  Jeli wszystko jest w porzdku, to plik status w katalogu zada
  powienien teraz zawiera najwiesze informacje na temat twojej
  drukarki:




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




  33..33..  SSkkoojjaarrzz tt ddrruukkaarrkk zz jjaakk nnaazzww ddllaa AApppplleeTTaallkk..


  Jeli teraz pjdziesz do Mac-a i sprbujesz wybrac swoj now drukark
  dowiesz si, e pokae si ona z nazw twojego serwera Linux-owego. To
  moe nie by zbyt zadowalajce, dlatego musisz stworzy, albo
  wyedytowa plik papd.conf w katalogu etc AppleTalk,
  /usr/local/atalk/etc/papd.conf (przeczytaj "man papd" jeli chcesz
  zna wicej szczegw). Minimum tego co musisz zrobi to umieszczenie
  w tym pliku nazwy jak chcesz nada drukarce, a na kocu dopisz :\ tak
  jak w printcap-ie. W drugiej linii podajesz nazw jak ta drukarka ma
  w Linux-ie opcj pr. Mj plik wyglda tak:


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



  Oznacza to, e (domylna) zmienna lp zawiera nazw: Pingo Mac
  LaserWriter dla klienta AppleShare. Dowiesz si rwnie, e teraz
  uytkownik na Mac-u moe drukowa bezporednio na drukarce Theobald
  Chaplin III jak i poprzez Linux-a, gdzie nazwa drukarki to Pingo Mac
  LaserWriter. Dla mnie jest wane, aby mc drukowa bezporenio 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.

  Jeli chcesz zarejestrowa swoj drukark w jakiej strefie AppleTalk
  (nie w domylnej strefie), po prostu podajesz t stref wraz z
  rozszerzeniem @nazwa_strefy w pliku papd.conf:


  MotorsLab@EEAP:\
          :pr=ee3rd:




  33..44..  JJaakkaa jjeesstt rrnniiccaa mmiiddzzyy llookkaallnn ddrruukkaarrkk ppooddcczzoonn ddoo kkoommppuutt
  eerraa LLiinnuuxx--oowweeggoo??


  Ta sekcja nie jest jeszcze cakiem 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 szczegy na stronie Uywanie ghostscript-a wraz z Netatalk
  <http://artoo.hitchcock.org/~flowerpt/projects/linux-
  netatalk/ghostscript.html>.


  44..  RRoozzwwiizzyywwaanniiee pprroobblleemmww..



  44..11..  OOggllnnaa ssttrraatteeggiiaa..


  Jeli masz jakie problemy podczas drukowania, nawet jeli dziaao
  kiedy wszystko ustawiae tak jak opisaem, to spjrz do
  /usr/adm/mesaages (albo do /usr/log/messages albo /var/log/messages -
  przyp. tum.) oraz do /usr/adm/syslog (patrz poprzednia uwaga). Jeli
  tylko sprbujesz co wydrukowa uywajc filtru psf, to znajdziesz
  podobne linie w wymienionych wyej 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



  Jeli co nie dziaa, 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 domylna 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
  uywaem skryptu /usr/local/bin/myif. Zapomniaem take stworzy pliku
  /usr/adm/lpd-errs, ktry zdefiniowaem w /etc/printcap)


  44..22..  NNiieezznnaannee pprroobblleemmyy


  Najpierw przeczytaj sekcj o ``Znanych    problemach''. Jeli nie
  bdzie tam nic pomocnego dla ciebie, to wylij do mnie list i docz
  do niego pliki /etc/printcap oraz /usr/local/atalk/etc/papd.conf.

  nnbbppllkkuupp ppookkaazzuujjee nnaazzww ddrruukkaarrkkii ii jjeejj aaddrreess,, aallee jjaa nniiee ddoossttaajj aaddnneejj
  ooddppoowwiieeddzzii zz pprrooggrraammuu ppaappssttaattuuss oodd tteejj ddrruukkaarrkkii..


  44..33..  ZZnnaannee pprroobblleemmyy..


  Dostaj duo listw od ludzi, ktrzy maj problemy, wic umieszcz
  tutaj rozwizania dla wszystkich. Bdzie to rosnca, nieposortowana
  lista. Po prostu sprawd czy twj problem jest tu opisany.


  44..33..11..  nniiee mmaa wwyyddrruukkuu zzwwyykkeeggoo pplliikkuu tteekkssttoowweeggoo


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


  unprintable character (0x9a)!



  Jest to problem dotyczcy psf, filtru uytego do drukowania.
  Zlokalizuj plik psf.c w swojej dystrybucji netatalk i uczy go
  zapisywalnym


  chmod 644 psf.c



  Zlokalizuj drug lini, w ktrej jest acuch unprintable character.
  Pierwsze wystapienie (z dwch) powino by w linii 402 a drugie - w 496
  lub podobnie. Druga linia to jest przypuszczalnie ta, ktra ci sprawia
  kopoty. 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 ktrym jest psf.c, bo make nie bdzie w tym przypadku znao cieki
  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. Moe kto ma lepszy pomys na to jak
  przekonwertowa niedrukowalny znak na jego odpowiednik w PostScripcie
  ?

  Ale jeli to bdziesz robi, to uwaaj na prawa autorskie w psf !


  44..33..22..  nniiee mmaa uummllaauuttww,, aannii zznnaakkww nnaarrooddoowwyycchh


  Jak wanie wyej wspomniaem, psf nie obsuguje rozszerzonych zbiorw
  znakw. Ale nenscript to potrafi. Ale poniewa nie jest to filtr,
  ktry mgby zosta uyty bezporednio w printcap-ie, bdziesz musia
  to obej. Ja mam zdefiniowan dodatkow drukark, ktra obsuguje
  zwyky tekst uywajc nenscriptu.

  /etc/printcap wyglda 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 powoce:


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



  Niestety nie znalazem sposobu na zachowanie nazwy pliku do drukowania
  i dlatego uywam opcji -i z moim nazwiskiem, eby oznaczy wydruk.
  Moe znajdziesz jaki lepszy sposb uywajc np. Unix-owej zmiennej
  rodowiskowej z loginem.

  W tym ustawieniu otrzymuj tekst na papierze w ukadzie poziomym
  (opcja -r) w dwch kolumnach (-2) wysany na standardow drukark lp.
  Aby wydrukowa zwyky plik tekstowy uywam polecenia


  lpr -P text plain.txt



  Tak wic przede wszystkim, drukarka zdefiniowana jako text zamienia
  zwyky tekstowy plik na PostScript uywajc nenscript (ktry obsuguje
  peen zestaw znakw ISO), ktory przekazuje go dalej do drukarki
  zdefiniowanej jako lp. Przez to, uywajc polecenia lpq zobaczysz, e
  zadanie drukowania pojawi si przy drukarce lp i przychodzcego ze
  standardowego wejcia, co jest poprawne.

  Jeli kto zna jaki sposb, eby umieci na wydruku nazw pliku, to
  bd bardzo wdziczny za t informacj !


  44..33..33..  mmoojjee uussttaawwiieenniiaa dduuggooccii ii sszzeerrookkooccii ssttrroonnyy ssaa iiggnnoorroowwaannee


  To by mj bd. Sprawd cz powyej, gdzie opisuj myif. Musisz
  doda $* dwa razy w drugiej linii w pliku, ktra teraz wyglda tak:


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




  44..33..44..  zzaaddaanniiee jjeesstt wwyyssaannee ddoo ddrruukkaarrkkii,, aallee nniiee zzoossttaajjee wwyyddrruukkoowwaannee


  Jest wiele takich problemw. Jeden, o ktrym dowiedziaem 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
  llee.
  1. Serwer NT jest bbaarrddzzoo zym spoolerem.
  2. Powinien on kolejkowa tylko maszyny Windows-owe.
  3. Pomimo tego, i nie mia on przechwytywa wszystkiego co przez
  niego przeszo - 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_.

  44..33..55..  mmoojjaa ddrruukkaarrkkaa nniiee bbiieerrzzee ppaappiieerruu zz tteeggoo zzaassoobbnniikkaa,, zz kkttrreeggoo
  jjaa cchhcc


  Domylnie wszystko jest drukowane na papierze ze standardowego
  zasobnika. Jeli chcesz tak ustawi drukark, aby braa papier z
  innego zasobnika ni ze standardowego, to sprbuj tego:

  Zmodyfikuj swj plik /usr/local/bin/myif i przepu wszystko przez
  program awk, czy jaki inny, ktry potrafi zapisa dodatkow lini do
  strumienia po nagwku.
  Np. Ja sprbowaem 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 rcznego. Dla innych podajnikw zamie tekst w
  cuszysowach ("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 wyjciowych "szufladek":


  Szufladka         |              Polecenie PostScriptu
  ------------------+---------------------------------------------------
  grna             | "0 statusdict /setoutputtray get exec"
                    |
  dolna             | "1 statusdict /setoutputtray get exec"



  Oczywicie jeli chcesz zdefiniowa podajnik wejciowy ii szufladk
  wyjciow, to musisz wstawi dwie linie do pliku PostScriptowego.

  Chocia to dziaa dla wejcia, ktre ju jest PostScriptem. Jeli
  chcesz to osign dla tekstu, ktry 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 - moesz zamieni tekst w cudzysowach na ten, ktry ci
  odpowiada). Potem skompiluj ponownie psf i zainstaluj go.


  Davis Goodman skoczy na takim skrypcie myif, ktry sprawdza czy
  chcesz drukowa w rozmiarach listowych czy normalnych. Jeli jest to
  normalny, to wykonywane jest polecenie PostScriptu powodujce wybr
  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 dziaa z Netscape a twoje wasne oprogramowanie moe przyjmowa
  inne wartoci. Zaczyem ten przykad tylko po to, eby ci wskaza,
  gdzie naley zacz jeli chcesz robi podobne sztuczki.

  Jeszcze jeden przykad jest od Tomasa Pospiska, ktry zdefiniowa
  nazwy drukarek dla rnych podajnikw w tej samej drukarce w
  /etc/printcap. eby wydrukowa na papierze z konkretnego podajnika
  wysyasz zadanie na odpowiedni drukark. Jego printcap wyglda 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 wyglda 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 dotd dostaem 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
  Wochy                  3
  Japonia                 1
  Holandia                1
  Portugalia              2
  Wileka Brytania         1
  Szwajcaria              1



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


  55..  OOdd ttuummaacczzaa..


  Tumaczenie to jest chronione prawami autorskimi  Bartosza
  Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  prawach takich samych jak dokument oryginalny.

  Jeli znalaze jakie race bdy ortograficzne, gramatyczne,
  skadniowe, techniczne to pisz do mnie:

  B.Maruszewski@zsmeie.torun.pl

  Oficjaln stron tumacze HOWTO jest http://www.jtz.org.pl/

  Aktualne wersje przetumaczonych dokumentw znajduj si na teje
  stronie. Dostpne s take poprzez anonimowe ftp pod adresem
  ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.

  Przetumaczone przeze mnie dokumenty znajduj si take na mojej
  stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S
  tam te odwoania do Polskiej Strony Tumaczeniowej.

  Kontakt z nasz grup, grup tumaczy moesz uzyska poprzez list
  dyskusyjn jtz@ippt.gov.pl. Jeli chcesz sie na ni zapisa, to wylij
  list o treci subscribe jtz Imi Nazwisko na adres
  listproc@ippt.gov.pl
















