Jak ustawić drukarkę używającą AppleTalk Autor: Werner Eugster, eugster@giub.unibe.ch Wersja polska: Bartosz Maruszewski B.Maruszewski@zsmeie.torun.pl 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 netatalk (jeśli tego nie zrobiłeś, to przeczytaj najpierw Podręcznik instalacji atalk <http://thehamp tons.com/anders/netatalk> napisany przez Andersa Brownwortha) 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. 1. Moja strefa AppleTalk. 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). 2. Dowiedz się jaka jest nazwa drukarki. 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. 3. Ustawianie serwisu drukowania na Linux-ie. 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. 3.1. Konfiguracja twojego /etc/printcap. 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: 3.1.1. nazwa drukarki dla użytkowników Linux-a 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. 3.1.2. katalog zadań 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...
Porozmawiajmy.TV