  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 Podr-
  cznik instalacji atalk <http://thehamptons.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 Prze-
  wodniku 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uyyttkkoowwnniikkw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zd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gw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bddw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an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rnniiccaa mmiiddzzyy llookkaallnn ddrruukkaarrkk ppooddcczzoonn ddoo kkoommppuutte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izzyywwaanniiee pprroobblleemmww..



  44..11..  OOggl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ke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tww,, aannii zznnaakkw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duuggooccii ii sszzeerrookkooc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sa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tr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



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

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


  Tumaczenie to jest chronione prawami autorskimi (C) 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









































