LINUX PLIP MINI-HOWTO
Autor: Andrea Controzzi controzz@cli.di.unipi.it
22 lipca 1996
WWeerrssjjaa ppoollsskkaa:: BBaarrtteekk PPaappiieerrsskkii bbaarrtteekkpp@@ddoomm..vvrr..ppll
v1.0, 10 września 1997
Dokument ten został napisany w standardzie ISO-8859-2. Oryginał tego
dokumentu znajduje się pod adresem: ftp.icm.edu.pl/pub/Linux/sun
site/docs/HOWTO
______________________________________________________________________
Spis treści
1. Wstęp: Co to jest PLIP i dlaczego powinienem go używać?
2. Wymagania sprzętowe
3. Rekonfiguracja jądra systemowego
4. Ustawianie plików konfiguracyjnych
5. Aktywacja połączenia PLIP
6. Komunikaty jądra podczas startu
7. Często Zadawane Pytania
8. Szybka instalacja PLIP
9. Wstawki umożliwiające jednoczesne dziłanie PLIP i LP
9.1 PLIP i LP na tym samym porcie
9.2 PLIP i LP na osobnych portach
10. Połączenie PLIP między DOS-em a Linux-em
10.1 Doświadczenia z połąćzeniem PLIP między DOS-em a Linux-em.
11. Pytania? Komentarze? Napisz do mnie.
12. Gdzie można znaleźć najnowsze wersje tego mini-HOWTO.
13. Podziękowania
14. Prawa autorskie
15. Od tłumacza
______________________________________________________________________
Ten dokument HOWTO pozwoli Ci szczęśliwie zbudować i używać protokołu
interfejsu równoległego (PLIP).
Wszelkie pytania, poprawki, komentarze lub sugestie proszę przesyłać
na mój adres E-Mail: controzz@cli.di.unipi.it Pisz do mnie kiedy tylko
potrzebujesz pomocy. Czasami nie będę mógł od razu odpowiedzieć, ale
na pewno odpowiem. Jeśli się zdarzy, że nie dostaniesz odpowiedzi po
dwóch tygodniach, to znaczy, że nasz system jest w kłopotach. Nie
wahaj się wtedy napisać ponownie. Moim obowiązkiem jest dać Ci
odpowiedź.
Po pierwsze, wiele technicznych informacji pochodzi z net-3-HOWTO
autorstwa Terry'ego Dawson'a. To mini-HOWTO w żadnym stopniu nie
pokrywa tamtego dokumentu. Moim celem jest pokazanie jak szybko
zainstalować stałe połączenie PLIP, *TYLKO* to. Wszelkie pozostałe
informacje pochodzą z moich własnych doświadczen i pomocy wielu
użytkowników, którzy przesyłali mi komentarze i informacje.
Przeczytaj net-3-HOWTO i inne dokumenty dla generalnej wiedzy o
sieciach i plikach konfiguracyjnych, które będę sugerował do zmian.
Poniżej jest spis treści. Możesz szybko odnaleźć paragraf szukając
ciągu znaków nn, gdzie nn jest numerem paragrafu.
11.. WWssttęępp:: CCoo ttoo jjeesstt PPLLIIPP ii ddllaacczzeeggoo ppoowwiinniieenneemm ggoo uużżyywwaaćć??
Jest wiele dróg prowadzących do utworzenia połączenia pomiędzy kilkoma
hostami. PLIP, podobnie jak SLIP pozwala na lokalne połączenia
pomiędzy dwoma maszynami poprzez porty równoległe.
Połączenie PLIP jest bardzo podobne do SLIP (z kablem dzierżawionym),
ale używa portów równoległych zamiast szeregowych. Port równoległy
przesyła więcej niż jeden bit na raz. To oznacza, że jest możliwe
osiągnięcie większych prędkości niż przy użyciu interfejsu
szeregowego.
Interfejs PLIP jest wystarczająco szybki, aby umożliwić takie funkcje
funkcje tcp/ip jak NFS na satysfakcjonującym poziomie. Możesz więc
mieć swój komputer z Linuxem oraz inny komputer z minimalnym systemem,
gdzie możesz montować całą resztę z głównej maszyny.
Wadą jest to, że większość użutkowników ma tylko jeden port
równoległy. Znaczy to, że nie będziesz mógł jednocześnie drukować i
korzystać z PLIP. Do tej pory nawet posiadając dwa lub nawet trzy
porty równoległe nie mogłeś używać drukarki i PLIP naraz. Rozwiązaniem
było użycie modułów lub innych tricków.
Ta wada może być wyeliminowana poprzez zastosowanie wstawki do jądra
systemowego. Proszę zobaczyć paragraf ``Wstawki umożliwiające
jednoczesne działanie PLIP i LP''.
W końcu mogę Ci podać sposób na ustawienie połączenia PLIP pomiędzy
DOS a Linuxem.
22.. WWyymmaaggaanniiaa sspprrzzęęttoowwee
Sprzętem wymaganym do zestawienia połączenia PLIP są dwa wolne porty
(po jednym w każdej maszynie) i kabel.
Teraz trochę o kablu. To jest fragment pliku plip.c z źródeł kernela
1.2.13:
Kabel używany do połączeń jest de facto standardowym standardowym
kablem równoległym typu 'null cable'. Jeśli chcesz go wykonać sam,
będziesz potrzebował 12-żyłowy kabel. Połączenia wyglądają
następująco:
SLCTIN 17 - 17
GROUND 25 - 25
D0->ERROR 2 - 15 15 - 2
D1->SLCT 3 - 13 13 - 3
D2->PAPOUT 4 - 12 12 - 4
D3->ACK 5 - 10 10 - 5
D4->BUSY 6 - 11 11 - 6
Nie łącz pozostałych wtyków. Są to:
D5,D6,D7 są 7,8,9
STROBE jest 1, FEED jest 14, INIT jest 16
ekstra uziemnienia to 18,19,20,21,22,23,24
Radzę Ci przeczytać /usr/src/linux/drivers/net/README1.PLIP aby
dowiedzieć się więcej o kablu.
Według mnie powinieneś unikać budowania swego własnego kabla.
Własnoręcznie wykonany kabel może zaoszczędzić niewiele pieniędzy, ale
może spowodować wiele bólów głowy. Jeśli chcesz zbudować swój własny
kabel, pamiętaj, że robisz to na swoją odpowiedzialność. Napisałem to
co zostało umieszczone w plip.c ale nie daję żadnej gwarancji.
Ostatnie słowo o długości kabla. Długie kable (więcej niż 3 metry)
mogą powodować problemy związane z zakłóceniami radiowymi. Jeśli
potrzebujesz długi kabel to powinieneś użyć dobrze ekranowanych kabli.
Bardzo długie kable nie są zalecane. Myślę, że maksymalną długością
jest 15 metrów.
Kiedyś ktoś napisał mi, że używa 30 metrowego kabla. Jednak jeśli ktoś
chce próbować połączeń PLIP między biurem a domem (200 metrów) i ma do
wydania pieniądze to proszę spróbować. W najgorszym wypadku to nie
będzie pracować.
33.. RReekkoonnffiigguurraaccjjaa jjąąddrraa ssyysstteemmoowweeggoo
Powinieneś już wiedzieć jak konfigurować i kompilować jądro. W
przeciwnym razie radzę pozytać dokumentację (_K_e_r_n_e_l_-_H_O_W_T_O lub inne).
Dziękuję za wspaniałą pracę wykonaną przez guru od jądra. Kompilacja
jądra jest teraz o wiele łatwiejsza. Poniżej możesz zobaczyć co masz
do zrobienia:
UUWWAAGGAA::Zakładam, że używasz serii 2.0.xx jądra.
Będę też zakładał, że do konfiguracji używasz polecenia menuconfig,
ale inne narzędzia też są dozwolone. Pokażę Ci jak to zrobić używając
menuconfig:
#make menuconfig
Mocno polecam aby wybrać:
Loadable module support --->
i zaznaczyć:
[*] Enable loadable module support
I jeśli to możliwe (jęsli masz modules.2.0.0):
[*] Kernel daemon support (e.g. autoload of modules)
Potem powróć i wybierz:
Networking options --->
gdzie powinieneś zaznaczyć przynajmniej to:
[*] Network firewalls
[*] TCP/IP networking
[*] IP: forwarding/gatewaying
potem powróc i wybierz:
[*] Network device support
PLIP (parallel port) support
Jeśli używasz modułów to radzę Ci ustawić PLIP jako moduł. Jeśli to
zrobisz i chcesz jeszcze używać drukarkę to powędruj do:
Character devices --->
i ustaw jako moduł
Parallel printer suppport
Teraz umożliwiłeś wspomaganie przez jądro dla PLIP. Jeśli będziesz
teraz po raz pierwszy kompilował jądro to spójrz na inne opcje i opuść
program konfiguracyjny.
W końcu dokonaj kompilacji:
#make dep; make clean
#make zlilo
oraz jeśli używasz modułów:
#make modules
#make modules_install
44.. UUssttaawwiiaanniiee pplliikkóóww kkoonnffiigguurraaccyyjjnnyycchh
Po pierwsze pamiętaj aby zrobić kopię bezpieczeństwa wszystkich
plików, które będziesz zmieniał,
#cp rc.inet1 rc.inet1.BACKUP
może być dobrym rozwiązaniem.
Jeśli jeszcze tego nie zrobiłeś to musisz wybrać adres IP dwóch
maszyn. W moich przykładach będę używał kilka przykładowych IP, które
ty wpiszesz w standardowym formacie xxx.xxx.xxx.xxx
W /etc/rc.d/inet1.rc na obydwu maszynach dodaj to (lepiej w końcowej
części pliku):
/sbin/route add -net ${NETWORK} netmask ${NETMASK}
gdzie NETWORK i NETMASK powinny być ustawione wcześniej. Jeśli nie
wiesz jak to zrobić, proszę przeczytaj _N_E_T_-_2_-_H_O_W_T_O.
Możesz bezpiecznie pominąć te zmienne tylko w tych przypadkach:
Jeśli jedynie chcesz połączyć dwa komputery w autonomicznej sieci to
możesz wybrać dowolne adresy IP, powiedzmy 200.0.0.1 i odpowiednio
200.0.0.2. W tym przypadku ustawiasz NETWORK="200.0.0.0" i
NETMASK="255.255.255.0". To są przykłady jakich będę używał w
paragrafie ``Szybka instalacja PLIP'' (zobacz poniżej).
UUWWAAGGAA:: 200.0.0.1 i 2 to tylko przykładowe IP. Nie radzę Ci ich używać,
bo mogą one być adresami prawdziwych hostów w Internecie!
Radzę wybrać adres z puli adresów zarezerwowanych:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
W pliku /etc/hosts na obydwu komputerach powinieneś dodać pozycje z
adresem IP komputerów, które łączysz przez PLIP. W moim przykładzie,
pozycjami tego pliku są:
200.0.0.1 one #to jest adres pierwszego komputera
200.0.0.2 two #to jest adres drugiego komputera
Gdzie one i two to nazwy, które wybrałeś dla tych dwóch hostów.
Jeśli chcesz aktywować NFS, to poza zaznaczeniem odpowiednich pól w
konfiguracji jądra, musisz dodać w pliku /etc/exports pozycje
opisujące katalogi, które chcesz udostępniać. W moim przykładzie, aby
możliwe było zamontowanie katalogu /usr powinieneś dodać:
/usr two (ro)
55.. AAkkttyywwaaccjjaa ppoołłąącczzeenniiaa PPLLIIPP
Wreszcie, oto komendy, które muszą być wykonane z prawami root'a,
które aktywują interfejs PLIP (oczywiście wcześniej musi być poprawnie
podłączony kabel).
Po pierwsze należy potwierdzić, że urządzenie lp nie jest aktywne:
#cat /proc/devices
Nie może się pojawić następująca rzecz:
6 lp
Ponownie używam nazw one i two jako przykład. Na "one" musisz wydać
polecenie:
#ifconfig plip1 one pointopoint two up
Sprawdź czy to pracuje...
#ifconfig
.....
.....
plip1 Link encap:10Mbps Ethernet HWaddr FC:FC:C8:00:00:01
inet addr:200.0.0.1 P-t-P:200.0.0.2 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
Interrupt:7 Base address:0x378
UUWWAAGGAA:: jeśli używasz modułów bez demona kerneld, który automatycznie
ładuje odpowiedni moduł na żądanie, to pamiętaj o:
#insmod plip
przed wydaniem polecenia ifconfig. Jeśli jesteś paranoikiem, sprawdź,
czy moduł został załadowany używając polecenia:
#lsmod
Module: #pages: Used by:
plip 3 0
Dodaj routing do two:
#route add two
I jeżeli chcesz NFS dla drugiego:
#rpc.portmap
#rpc.mountd
#rpc.nfsd
Na komputerze "two" komendy wyglądają tak samo, tylko że musisz wpisać
one zamiast two.
Jeden z Twoich komputerów będzie miał prawdopodobnie tylko połączenie
typu PLIP. Jeśli to prawda, możesz także wydać polecenie:
#route add default gw one
na tym komputerze. W moim poniższym przykładzie, two jest laptopem,
który jako jedyne używa połączenia PLIP z one, więc wydałem powyższe
polecenie na komputerze two.
Wreszcie przetestuj połączenie za pomocą
#ping two
z one oraz
#ping one
z two i zobacz czy wszystko pracuje.
Oczywiście komendy te mogą być wykonywane automatycznie przez skrypt
lub podczas startu systemu. Musisz jedynie napisać skrypt, który
wykonywałby te komendy. Możesz je wywołać z prawami root-a lub możesz
dodać komendę do skryptu /etc/rc.d/rc.inet2 który jest uruchamiany
podczas startu. Jeśli chcesz używać mojej ``Szybkiej Instalacji
PLIP'', znajdziesz tam wszystkie pliki konfiguracyjne i skrypty.
66.. KKoommuunniikkaattyy jjąąddrraa ppooddcczzaass ssttaarrttuu
Po skonfigurowaniu i kompilacji jądra systemowego z obsługą PLIP,
zbadaj komunikaty za pomocą komendy dmesg (8).
Powinieneś zobaczyć coś takiego:
NET3 PLIP version 2.0 gniibe@mri.co.jp
plip1: Parallel port at 0x378, using assigned IRQ 7.
Oczywiście, jeżeli używasz modułów to ujrzysz ten komunikat kiedy
zostanie zainstalowany moduł plip.c (#insmod plip.c) (przez Ciebie lub
przez kerneld). W zależności od konfiguracji klogd i syslogd
komunikaty plip-a mogą być rejestrowane w logach systemowych. Nie
wpadaj w panikę jeżeli nie ujrzysz tych komunikatów. Jeśli lsmod
pokazuje, że moduł jest załadowany to w zupełności wystarczy.
77.. CCzzęęssttoo ZZaaddaawwaannee PPyyttaanniiaa
Ten paragraf (mam nadzieję) rozwiążę Twoje problemy. Jeśli masz inne
pytania, zawsze możesz do mnie napisać.
1. Q: Otrzymuję następujące komunikaty podczas startu systemu:
SIOCSIFADDR: No such device
SIOCADDR: Network is unreachable
a kiedy próbuję zestawić połączenie jak to zostało opisane powyżej,
otrzymuję ponownie komunikaty o błędach:
SIOCSIFADDR: No such device
SIOCSIDDSTADDR: No such device
SIOCADDRT: Network is unreachable
mount clntudp_create: RPC: Port Mapper failure - RPC: Unable to send
A: Jądro z różnych przyczyn nie obsługuje PLIP. Przyczyną może być:
Nie zaznaczyłeś obsługi PLIP podczas konfiguracji jądra.
Zaznaczyłeś obsługę drukarki podczas konfiguracji jądra.
Skompilowałeś PLIP jako moduł i go nie załadowałeś.
2. Q: Czy istnieje możliwość ogsługi PLIP i LP jednocześnie,
wykluczając użycie modułów, na przykład przy dwóch portach
równoległych?
A: Tak. Są na to dwa sposoby opisane w paragrafie ``Wstawki
umożliwiające jednoczesne działanie PLIP i LP'':
Możesz założyć wstawkę aby umożliwić jednoczesne
działanie PLIP i LP.
Możesz założyć inną wstawkę do jądra aby obsługiwało ono
PLIP i LP na osobnych portach.
3. Q: Napisałem skrypt, który łączy oba moje komputery. Zestawiłem
połączenie automatycznie w rc.inet2, gdzie wywołuję skrypt
uruchamiający łącze i uruchamiający VFS. Mój komputer two montuje
zasoby komputeraone. Dodałem pozycje do /etc/fstab na komputerze
two. Jeśli uruchamiam two gdy one jest wyłączony, two zawiesza się
na kilka minut w momencie "mounting remote file systems...".
A: Tak się dzieje, ponieważ two czeka aby zamontować zasoby
one, lecz jeśli one jest wyłączony to musisz poczekać aż two znudzi się
czekaniem. Aby tego uniknąć, możesz:
Zakomentować w rc.inet2 komendę, za pomocą której
montowane są zdalne systemy plików.
Wyrzucić wpisy w /etc/fstab na two i podmontować zdalny
system plików ręcznie jeśli będziesz tego potrzebował.
4. Q: Połączenie jest zestawione, ale ping zawodzi. Otrzymuję takie
komunikaty od jądra:
plip1: timed out (1, 89)
A: To oznacza, że twoja strona połączenia pracuje, twój komputer wysyła
sygnał, ale druga strona nie odpowiada z następujących powodów:
Kabel nie jest odpowiednio podłączony lub jest popsuty.
Druga strona nie ma uruchomionego PLIP.
Jesteś połączony z laptopem, który nie ma odpowiedniego
portu równoległego, zobacz następne pytanie.
5. Q: Zainstalowałem PLIP, lecz jeśli używam ping to otrzymuję 100%
strat w pakietach. Łączę mój komputer biurkowy z notebookiem.
A: Niektóre porty równoległe w notebookach nie są odpowiednie do
połączeń typu PLIP, ponieważ są tylko portami drukarkowymi. Mogą tylko
wysyłać dane. Niemożliwy jest ich odbiór. Niestety nie wiem co sprawić,
aby one pracowały. Jedyną nadzieją jest:
Popatrz na setup w swoim notebook-u. Może jest tam jakiś
sposób konfigurowania portu równoległego jako port
równoległy, a nie jako port drukarki.
Spróbuj plip w trybie 0. Niestety, nie wiem jak to zrobić
i czy jest to możliwe w najnowszych wersjach jądra.
6. Q: Jakie prędkości mogę osiągnąć używając PLIP?
A: To jest trudne pytanie, ponieważ jest wiele czynników wpływających
na wydajność takiego połączenia:
Typ procesora na obydwu komputerach.
Typ portu równoległego i jego konfiguracja.
Obciążenie systemu.
Do czego używasz PLIP.
Dla przykładu mogę podać, że powinieneś osiągnąć około
40Kb/sek, o wiele szybciej niż dla połączeń szeregowych i
porównywalnie ze słabymi kartami ethernet.
7. Q: Czy coś się stanie, kiedy bedę wiele razy kładł ifconfig down i
zetawiał ifconfig up połączenie na interfejsie plip1?
A: Wygląda na to, że będziesz musiał dodać 2
2. Kernel configuration
PLIP (parallel port) support (CONFIG_PLIP) [n] y
Parallel Printer support [y] y
3. Kernel message at startup
lp1 at 0x0378, using polling driver
.....
NET3 PLIP version 2.0 gniibe@mri.co.jp
plip2: Parallel port at 0x278, using assigned IRQ 5.
---end---
______________________________________________________________________
Zrzeczenie jak w sekcji 8.1
1100.. PPoołłąącczzeenniiee PPLLIIPP mmiięęddzzyy DDOOSS--eemm aa LLiinnuuxx--eemm
Po pierwszym wydaniu tego mini-HOWTO wiele ludzi pisało z prośbą o
inforamcję o połączeniu pomiędzy Dos-em a Linux-em. To doprowadziło
mnie do dodania tego paragrafu.
Ten fragment pochodzi z artykułu James'a McDuffie'go
mcduffie@scsn.net, który znalazłem w Linux Gazette. Traktuje on o
szybkiej instalacji polączenia PLIP między Linuxem i DOS-em przy
użyciu Windows i Trumpet Winsock i podaje adreswspaniałego programu
umożliwiającego uruchamianie programów pracujących pod X-Windows na
MS-Windows.
Następna sekcja jest dodatkiem przysłanym przez James'a Vahn'a
jvahn@short.circuit.com, gdzie opisuje on jak zestawić połączenie i
jak rozwiązać niektóre problemy.
Zakładam, że już zestawiłeś poprawnie połączenie PLIP po stronie
Linuxa i masz odpowiedni kabel. W przeciwnym razie powróc do
poprzednich paragrafów.
Teraz po stronie DOS-a potrzebujesz po pierwsze potrzebujesz
sterownika pakietów. Możesz go znaleźć tutaj:
ftp.crynwr.com/drivers/plip.zip
Program pracuje po DOS-em jako standardowy sterownik pakietów
Ethernet. Jeśli chcesz używać PLIP z Windows potrzebujesz także
Trumpet Winsock. Jest to interfejs TCP/IP. Możesz znaleźć też takie
oprogramowanie pod DOS-a.
Powróćmy teraz do komputera z Linuxem i dodajmy na nim adres komputera
pracującego pod DOS do /etc/hosts. Jeśli Twój DOS-owy komputer nie ma
zarejestrowanego adresu IP, możesz wybrać jakikolwiek adres (pamiętaj
o zarezerwowanych adresach podanych w paragrafie 3).
Teraz załóżmy, że wybrałeś nazwę linux dla komputera pracującego pod
Linux i dos dla komputera DOS-owego. Musisz napisać:
ifconfig plip1 linux pointopoint arp up route add dos
Oczywiście jeśli chcesz to zautomatyzować dodaj następujące polecenia
do /etc/rc.d/rc.inet1:
/sbin/ifconfig plip1 linux pointopoint arp up /sbin/routte add dos
To ustanawia interfejs i dołącza do niego rutowanie. Oczywiście,
jeżeli używasz drugiego portu równoległego musisz jako interfejs
wpisać plip2 zamiast plip1.
Wróć do komputera z DOS/Windows i edytuj autoexec.bat. Musisz dodać
następujące linie:
c:\plip\plip.com 0x60
c:\tcpip\winsock\winpkt.com 0x60
Oczywiście, zakładam, że umieściłeś plik plip.com w katalogu c:\plip a
plik winpkt.com w c:\tcpip, w przeciwnym razie powinieneś dodać
odpowiednie ścieżki dostępu.
To ustawiam program plip.com na wektorze pakietów 0x60 i ładuje
winpkt.com na tym samym wektorze. Jeśli używasz innego portu niż lpt1
to będziesz musiał dodać numer przerwania i adres i/o jako parametry
przy wywołaniu plip.com. Teraz przejdziemy do konfiguracji Trumpet
Winsock. Musisz wyłączyć obsługę SLIP i PPP i wpisać _6_0 do okienka
zatytułowanego _P_a_c_k_e_t _v_e_c_t_o_r. Następnie wpisz adres IP komputera, jako
domyślną bramkę adres IP komputera Linux-owego oraz adres serwera
nazw, którym może być Twój komputer lub komputer u twojego dostawcy
internetowego. Zamknij setup i zrestartuj Winsock, a wszystko powinno
już działać. Umieść Winsock w grupie _s_t_a_r_t_u_p i masz wszystko
zautomatyzowane.
Jeśli chcesz korzystać z Internetu pod Windows poprzez komputer Linux-
owy, musisz ustawić IP Masquerading. Więcej informacji zobaczysz w
NET-3-HOWTO.
Znalazłem także program, który pozwala uruchamiać programy X-Windows
pod Windows! Możesz go znaleźć pod adresem www.tucows.com
Skonfiguruj go zgodnie z zaleceniami i zatelnetuj się z komputera
pracującego pod Windows i ustaw zmienną DISPLAY na ten komputer (na
przykład DISPLAY=duncan:0.0) i uruchom żądany program. Nie ma nic
lepszego jak uruchamianie xv pod Windows!
1100..11.. DDoośśwwiiaaddcczzeenniiaa zz ppoołłąąććzzeenniieemm PPLLIIPP mmiięęddzzyy DDOOSS--eemm aa LLiinnuuxx--eemm..
UUWWAAGGAA:: Otrzymałem ten domkument od James'a Vahn'a
jvahn@short.circuit.com i umieściłem go tutaj w niezmienionej postaci.
Oznacza to, że wszelkie pytania należy kierować do niego, a nie do
mnie. Jego doświadczenia z połączeniem PLIP z komputerem z DOS-em
wyposażonym tylko w stacje dysków elastycznych są doskonałym
przykładem na to jak poradzić sobie z różnymi problemami.
Ostatnia aktualizacja: 11/07/1996
Mój komputer wyposażony jedynie w stację dysków elastycznych pracujący
pod DOS-em jest połączony z komputerem Linuxowym. Pierwszy port na
komputerze z Linuxem jest wykorzystywany przez drukarkę. Oba komputery
są stale podłączone i telnetuję się z komputera DOS-owego na Linux-
owy. To moje uwagi i spostrzeżenia.
Kiedy jądro wykrywa ilość portów równoległych w komputerze i uruchamia
wszystkie z nich, chyba, że wykluczysz niektóre z nich z
przeszukiwania. Jedną z metod jest ładowanie sterowników jako
modułów.
gniibe@mri.co.jp napisał:
===========================
Cały czas polecam używanie PLIP/LP jako modułów z tego względu, że:
moduły są elastyczne na zmiany w konfiguracji
rekompilacja jądra nie jest łatwa dla początkujących
koegzystencja PLIP i IP jest możliwa jedynie przez moduły
Mając zainstalowaną w modułach obsługę PLIP i LP, możesz podać, który
port jest używany przez PLIP, a który przez LP. Oto przykład:
# insmod lp.o io=0x378
# insmod plip.o io=0x278 irq=2
Możesz nawet używać obu portów równoległych:
# insmod plip.o io=0x278,0x3bc irq=2,5
W powyższym przykładzie, plip0 jest przydzielony adres 0x278, a numer
przerwania to 2, plip1 jest przydzielony adres 0x3bc, a numer
przerwania to 5.
============================
Używanie modułów jest chyba najlepszym rozwiązaniem. Kolejna metoda
pokazuje jak zmienić kod źródłowy jądra, aby umożliwić jednoczesne
działanie PLIP i LP na różnych portach bez użycia modułów. Jeśli nie
jesteś na ty z modułami, ten sposób może być szybszy w realizacji.
Będziesz musiał zmodyfikować dwa pliki źródłowe jądra. Ja używam jądra
1.2.13 i wniosłem kilka poprawek do ../linux/drivers/net/Space.c.
Spójrz na fragment około 205 lini, gdzie znajdują się definicje PLIP i
upewnij się, czy porty i numery przerwań odpowiadają Twoim. Sprawdź
także jakim driverom one odpowiadają (plip0, plip1, plip2). W moim
przypadku port 0x278 używa przerwania 5 (zworki na karcie są tak
ustawione), ale Space.c definiuje go tak aby używał przerwania 2.
Wolałem dokonać zmian w tym miejscu niż otwierać obudowę i przestawiać
zworki. Alternatywą jest ustawienie przerwania później jako parametr
ifconfig, ale jądro będzie startowało ze złym numerem przerwania dla
PLIP, a to może być dla Ciebie dokuczliwe. Zmiana jest niewielka.
Następny, trudniejszy krok to: W pliku ../drivers/char/lp.c znajdziesz
taki fragment w okolicach 38 lini:
______________________________________________________________________
struct lp_struct lp_table[] = {
{ 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
{ 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
/* { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
* 0x278 reserved for plip1
*
* };
* #define LP_NO 3
*/
};
#define LP_NO 2
______________________________________________________________________
Zauważ zmiany: jeden port jest zakomentowany, więc tylko dwa porty są
zdefiniowane. Port 0x3bc nie będzie prawdopodobnie pracował dla PLIP,
ponieważ przerwanie dla tego portu jest wadliwe. Zostało to zauważone
na przykładzie starych adapterów monochromatycznych MDA.
Wykonałeś kopie zapasowe przed modyfikacjami, prawda? Teraz skompiluj
nowe jądro z obsługą drukarki, sieci, fikcyjnego interfejsu oraz plip.
Skonfiguruj system. To jest mój plik /etc/rc.d/rd.inet1:
#!/bin/bash
#
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0
/sbin/ifconfig dummy 200.0.0.1
/sbin/route add -net 200.0.0.0 netmask 255.255.255.0
/sbin/ifconfig plip1 arp 200.0.0.1 pointopoint 200.0.0.2 up
/sbin/route add 200.0.0.2
/sbin/ifconfig dummy down
Zauważ, że arp jest używany przy połączeniach Linux-DOS. Nie jest
używany przy połączeniach Linu-Linux.
Do pliku /etc/hosts możesz dodać:
200.0.0.1 console1
200.0.0.2 console2
Komputer z DOS-em nazywa się _c_o_n_s_o_l_e_2. Zwróc uwagę na ostrzeżenia
Andre'a dotyczące tych adresów. Lepiej używać oficjalne schematy
adresowania.
Przeładuj system, aby zmiany zadziałały. Podczas startu powinieneś
zobaczyć następującą sekwencję:
lp0 at 0x03bc, using polling driver
lp1 at 0x0378, using polling driver
[....]
NET3 PLIP version 2.0 gniibe@mri.co.jp
plip1: Parallel port at 0x278, using assigned IRQ 5.
Komenda route powinna pokazać coś takiego:
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
console2 * 255.255.255.255 UH 1436 0 136 plip1
loopback * 255.0.0.0 U 1936 0 109 lo
a ifconfig plip1 powinien pokazać:
plip1 Link encap:10Mbps Ethernet HWaddr FC:FC:C8:00:00:01
inet addr:200.0.0.1 P-t-P:200.0.0.2 Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:1500 Metric:1
RX packets:132 errors:0 dropped:0 overruns:0
TX packets:136 errors:0 dropped:0 overruns:0
Interrupt:5 Base address:0x278
Spójrz na /etc/inetd.conf i zobacz, czy telnet jest odkomentowany.
Możesz przeczytać podręcznik systemowy "man" dla _t_c_p_d, oraz o używaniu
/etc/hosts.allow (ALL: LOCAL) i /etc/hosts.deny (ALL: ALL). Powinieneś
mieć także możliwość wykonania "telnet localhost"
Teraz strona DOS-a. Jeszcze raz, bądź nieufny w stosunku do portu
0x3bc jeśli taki u Ciebie istnieje.
Ja używam programu telnet dostarczanego przez _N_C_S_A i sterownik PLIP
dostarczany przez _C_r_y_n_w_r. To wszystko możesz znaleźć na następujących
serwerach:
ftp.ncsa.uiuc.edu/Telnet/DOS/ncsa/tel2308b.zip
ftp.crynwr.com/drivers/plip.zip
Upewnij się, czy używasz wersji 2.3.08 klienta telnetu i wersji 11.1
sterownika PLIP. Znajdź i przeczytaj SUPPORT.DOC.
PLik CONFIG.TEL. Większość tego pliku pozostaje nie zmieniona. Aby
zaoszczędzić miejsce wyciąłem linie, które pozostawiłem niezmienione.
Drugi port na tym komputerze jest ustawiony jako 0x278 na 5
przerwaniu.
myip=200.0.0.2
netmask=255.255.255.0 # subnetting mask
hardware=packet # network adapter board (packet driver interface)
interrupt=5 # IRQ which adapter is set to
ioaddr=60 # software interrupt vector driver is using
#
#[...lots unchanged...]
#
# at the end of the file, put this line:
name=console1 ; hostip=200.0.0.1 ; nameserver=1 ; gateway=1
(_c_o_n_s_o_l_e_1 jest nazwą komputera z Linuxem, możesz użyć jakiejkolwiek
nazwy).
Złożyłem kabel długości 12 stóp łączący oba komputery. Standardowy
11-kontaktowy kabel drukarkowy powinien także pracować. Plik plip.c
pokazuje schemat połączenia. Mimo, że mój kabel posiada połączenie
17-17, myślę, że nie jest on do niczego używany i nie było go na
gotowym (kupionym) kablu.
@echo off
plip.com 0x60 5 0x278
telbin -s console1
Te komendy powinny Cię połączyć z komputerem Linux-owym na /dev/ttyp.
Klient telnetu _N_C_S_A posiada 8 wirtualnych ekranów, a także może
działać jako serwer ftp. Interfejs PLIP umożliwia dobrą przpustowość.
Osiągam prędkości rzędu 6.5K/s na moich antykach. Mam nadzieję, że
będziesz miał większe osiągi. :-)
1111.. PPyyttaanniiaa?? KKoommeennttaarrzzee?? NNaappiisszz ddoo mmnniiee..
Jeśli masz jakieś pytania to możesz się ze mną skontaktować pod
adresem controzz@cli.di.unipi.it
Wszelkie komentarze, raporty o błędach są mile widziane. Nastepna
wersja będzie zawierała dłuższe FAQ, oczywiście jeżeli będziecie
przysyłali pytania.
1122.. GGddzziiee mmoożżnnaa zznnaalleeźźćć nnaajjnnoowwsszzee wweerrssjjee tteeggoo mmiinnii--HHOOWWTTOO..
Tym mini-HOWTO opiekują się koordynatorzy HOWTO. Jest on wysyłany co
miesiąc na grupę news comp.os.linux.answers i możesz go znaleźć w
katalogu HOWTO na sunsite i jego mirrorach.
Inną drogą do odnalezienia tego HOWTO (w wersji oryginalnej) jest moja
strona domowa: www.cli.di.unipi.it/~controzz/intro.html
1133.. PPooddzziięękkoowwaanniiaa
Wielkie podziękowania dla:
Rick Lim ricklim@freenet.vancouver.bc.ca za wstawki umożliwiające
współdziałanie PLIP i IP.
Takeshi Okazaki GBA03552@niftyserve.or.jp za wstawki umożliwiające
działanie PLIP i LP na dwóch różnych portach równoległych.
Jim Van Zandt jrv@vanzandt.mv.com za rady dotyczące dydaktycznej
części tego HOWTO.
James Vahn jvahn@short.circuit.com za wspaniały dodatek PLIP
pomiędzy DOS-em i Linuxem.
Do wszystkich, którzy pisali na grupy news artykuły dotyczące PLIP.
Lista ludzi, od których otrzymałem szereg informacji i komentarzy
byłaby dłuższa od tego mini-HOWTO. Dziękuję Wam wszystkim!
1144.. PPrraawwaa aauuttoorrsskkiiee
Prawa autorskie do dokumentów Linux HOWTO posiadają ich autorzy.
Dokumenty te mogą być reprodukowane i dystrybuowane w całości lub
części, w mediach fizycznych lub elektronicznych, tak długo jak tak
notka będzie załączona do dokumentu. Komercyjna dystrybucja jest
dozwolona. Jednakże autor chciałby zostać poinformowany o takowej.
Wszystkie tłumaczenia, prace pochodne lub prace zebrane muszą zawierać
notę o prawach autorskich. Oznacza to, że nie możesz stworzyć pracy
pochodnej z tego dokumentu i obłożyć ją dodatkowymi restrykcjami
dotyczącymi dystrybucji. Wyjątki od tej reguły, mogą być rozpatrzone w
określonych warunkach. Proszę skontaktować się z koordynatorem HOWTO
na adres podany poniżej.
Ogólnie biorąc, chcemy promować i szerzyć te informacje na wiele
sposobów. Jednakże chcemy zachować prawa autorskie tych dokumentów i
pragniemy być poinformowani o każdym sposobie ich dystrybucji.
Jeśli masz jakieś pytania, skontaktuj się z Greg'iem Hankins'em,
koordynatorem HOWTO - gregh@sunsite.unc.edu
1155.. OOdd ttłłuummaacczzaa
Tłumaczenie to chronione jest prawami autorskimi Bartka Papierskiego.
Ogólne zasady dystrybucji są takie same jak w oryginalnym dokumencie.
Jeśli znajdziesz w tym dokumencie jakieś rażące Twoje oko błędy
ortograficzne, gramatyczne, lub błędy w tłumaczeniu to skontaktuj się
ze mną, a ja postaram się to naprawić: bartekp@dom.vr.pl
Najnowszą wersję tego dokumentu możesz znaleźć na oficjalnej stronie
tłumaczeniowej http://www.jtz.org.pl. Najnowsze wersje
przetłumaczonych przeze mnie dokumentów znajdziesz także na mojej
stronie http://www.dom.vr.pl/~bartekp/howto/tlumaczenia.html
Oto zmiany jakie wprowadziłem w tym dokumencie:
Tytuły NET-2-HOWTO zamieniłem na NET-3-HOWTO. Przez rok autor nie
wydał nowszej wersji dokumentu, a przez ten czas powstała nowa
wersja wymienionego dokumentu HOWTO.