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.
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.
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æ.
Powinieneś już wiedzieæ jak konfigurowaæ i kompilowaæ jądro. W przeciwnym razie radzê pozytaæ dokumentacjê (Kernel-HOWTO 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:
UWAGA: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 <M> 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ł
<M> 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
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 NET-2-HOWTO.
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).
UWAGA: 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)
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
UWAGA: 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.
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.
Ten paragraf (mam nadziejê) rozwiążê Twoje problemy. Jeśli masz inne pytania, zawsze możesz do mnie napisaæ.
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ś.
- 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.
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
natwo
i podmontowaæ zdalny system plików rêcznie jeśli bêdziesz tego potrzebował.
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.
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.
A: To jest trudne pytanie, ponieważ jest wiele czynników wpływających na wydajnośæ takiego połączenia:
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.
- Typ procesora na obydwu komputerach.
- Typ portu równoległego i jego konfiguracja.
- Obciążenie systemu.
- Do czego używasz PLIP.
ifconfig down
i zetawiał ifconfig up
połączenie na interfejsie plip1?
A: Wygląda na to, że bêdziesz musiał dodaæ <tt/-arp/ do komendy <tt/ifconfig/, za wyjątkiem pierwszego razu podczas startu systemu. Ja tego nie potrzebuje, ale ktoś może.
A: Tak, powinny. Tak jak podkreśliłem na początku, wybrałem te adresy tylko ze wzglêdu na ich prostotê. Możesz je dowolnie zmieniaæ. Oto wycinek z net-3-howto:
RFC1597 zarezerwował kilka adresów IP dla prywatnych sieci. Powinieneś
ich używaæ, gdyż nie powodują nieprzyjemnych zdarzeñ gdy przypadkowo
połączysz siê z Internet. Zarezerwowane adresy to:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
A: Tak! Spróbuj /usr/sbin/plipconfig. Poczytaj podrêcznik systemowy dotyczący tej komendy.
A: Tak, najlepiej jest używaæ tej samej wersji PLIP na obu koñcach połączenia.
A: Pamiêtaj, że jądra o numerach wersji 1.nieparzysty.x są wersjami rozwojowymi. "Bogowie", którzy codziennie ciêżko pracują nad ulepszaniem Linuxa czêsto wypuszczają niestabilne wersje. Teraz wersje 2.0.x powinny byæ stabilne.
Przed napisaniem tego mini-HOWTO, stworzyłem zestaw plików potrzebny do szybkiej instalacji PLIP. W kilka minut, nie licząc kompilacji jądra powinieneś zestawiæ połączenie PLIP. Zarchiwizowane pliki możesz znaleźæ na mojej stronie domowej: http://www.cli.di.unipi.it/~controzz/intro.html. Może ktoś w koncu udostêpni moje pliki na publicznym serwerze ftp.
Najlepszą drogą do jednoczesnego dziłania PLIP i LP jest użycie modułów. Możesz załadowaæ moduł plip.o i wyrzuciæ go kiedy bêdziesz chciał drukowaæ, lub na odwrót. Jeśli na prawdê potrzebujesz używaæ PLIP i LP naraz, wypróbuj poniższe wstawki.
W tej sytuacji możesz spróbowaæ nastêpujących wstawek do jądra.
Musisz zmodyfikowaæ nastêpujące fragmenty kodu, lecz pamiêtaj wykonaæ kopiê bezpieczeñstwa:
--- begin --- ******** modifications to linux/drivers/char/lp.c *********************** 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, }, */ }; #define LP_NO 1 ******** modifications to linux/drivers/net/Space.c ******************** #if defined(PLIP) || defined(CONFIG_PLIP) extern int plip_init(struct device *); static struct device plip2_dev = { "plip2", 0, 0, 0, 0, 0x278, 2, 0, 0, 0, NEXT_DEV, plip_init, }; static struct device plip1_dev = { "plip1", 0, 0, 0, 0, 0x378, 7, 0, 0, 0, &plip2_dev, plip_init, }; /* static struct device plip0_dev = { "plip0", 0, 0, 0, 0, 0x3BC, 5, 0, 0, 0, &plip1_dev, plip_init, }; */ # undef NEXT_DEV # define NEXT_DEV (&plip1_dev) #endif /* PLIP */ ---end---
Zrzeczenie: Otrzymałem te wstawki i opublikowałem je w niezmienionej postaci. Oznacza to, że używasz ich na własną odpowiedzialnośæ. W najgorszym wypadku, skompilujesz jeszcze raz jądro używając starych plików.
Jeśli masz przynajmniej dwa porty równoległe, możesz wypróbowaæ nastêpujące wstawki, które umożliwią pracê PLIP na jednym porcie, a LP na drugim.
--- begin --- 1. Comment out one line in kernel source file, drivers/char/lp.c. 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, }, */ }; 3 -> 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
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æ 60 do okienka
zatytułowanego Packet vector. 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 startup 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!
UWAGA: 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:
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ê console2. 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 tcpd, 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 NCSA i sterownik
PLIP dostarczany przez Crynwr. 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
(console1 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 NCSA 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. :-)
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.
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
Wielkie podziêkowania dla:
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
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: