LINUX PLIP MINI-HOWTO

Andrea Controzzi, controzz@cli.di.unipi.it,
Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org

v2.1, 12 maart 1998


Deze HOWTO zal er hopelijk toe bijdragen dat je het Parallelle Line Interface Protocol kunt opzetten en gebruiken.

OPMERKING

Dit is een nieuwe uitgave. Er zijn heel veel veranderingen en aardig wat uitbreidingen, maar er staan nog steeds grammatica- en spelfouten in (engels is niet mijn moedertaal) en, onwaarschijnlijk maar mogelijk wat onjuiste of verouderde info. Breng me alsjeblieft op de hoogte van fouten om me te helpen iedereen van de juiste informatie te kunnen voorzien.

De belangrijkste wijzigingen in deze uitgave zijn:

Voor elke vraag, correcties op fouten en/of opmerkingen: mijn email-adres is controzz@cli.di.unipi.it. Mail me gerust als je hulp nodig hebt. Soms zal ik niet onmiddellijk antwoorden, maar mocht het voorkomen dat je na 2 weken nog niets van me hebt gehoord, dan betekent dit dat er problemen zijn met ons mailsysteem: aarzel niet me nog eens te mailen, het is mijn taak je te helpen. Ik kan je niet garanderen dat ik je problemen op kan lossen, maar ik zal het proberen. Als je na een aantal mailtjes nog geen antwoord hebt ontvangen, controleer dan je retouradres. Mijn antwoorden kwamen verscheidene malen niet aan vanwege bezorgproblemen, gewoonlijk doordat het retouradres root@myhost was.

Lees voor het insturen van mail de FAQ, mijn antwoord op een vraag die reeds in de FAQ is opgenomen, zal niet beter zijn (maar waarschijnlijk slechter of minder compleet) dan het antwoord dat je reeds kunt lezen.

Stuur voor vragen over PLIP met DOS en Win95 alsjeblieft een mail naar de auteurs van deze hoofdstukken, ik kan je niet helpen.

Ten eerste is heel veel technische informatie afkomstig van de net-2-HOWTO, geschreven door Terry Dawson. Deze mini-HOWTO is niet bedoeld om andere aspecten te behandelen en/of de net-2-HOWTO te vervangen: mijn doel is je een manier te geven snel een permanente PLIP-verbinding te installeren, en dan ook *ALLEEN* maar dat. Alle andere info is afkomstig van persoonlijke ervaring en de hulp van veel gebruikers die me opmerkingen en informatie zonden.

Lees de net-2-HOWTO en de andere docs voor de algemene informatie over het netwerk en de config bestanden waarvan ik je aangeef die te wijzigen.

1. Introductie: wat is PLIP en waarom zou je het gebruiken?

Er zijn heel veel manieren om een verbinding tussen meerdere hosts te creëren. PLIP maakt net als SLIP een lokale verbinding tussen twee computers mogelijk, maar maakt hierbij gebruik van de parallelle poorten.

Parallelle poorten transporteren meer dan één bit tegelijkertijd, wat betekent dat het mogelijk is hogere snelheden te bereiken dan met een seriële interface.

De te bereiken snelheid is volledig afhankelijk van je hardware (CPU en parallelle poort) en systeembelasting, in het algemeen ligt het ergens tussen de 5 Kb/sec en 40 Kb/sec.

De PLIP interface is snel genoeg dat het een aantal fatsoenlijke tcp/ip functies mogelijk maakt, zoals NFS. Dus het kan zijn dat je een computer hebt met al je Linux zooi en een andere met alleen het minimale systeem, waar je de rest van de hoofdcomputer op kunt mounten.

Het nadeel is dat de meeste gebruikers slechts één parallelle poort hebben, dit betekent dat je PLIP niet tegelijkertijd kunt gebruiken met afdrukken. Zelfs met twee parallelle poorten is het onmogelijk af te drukken en PLIP te gebruiken, zonder gebruik te maken van kernelmodules.

Dit nadeel kan worden geëlimineerd als je twee of meer parallelle poorten hebt, en een patch toepast die je in deze Mini-HOWTO kunt vinden.

Eindelijk ben ik nu in staat je hopelijk een goede manier te geven een PLIP koppeling tussen DOS en Linux te geven.

Ik kan het niet genoeg benadrukken: tot dusverre heeft niemand een succesvolle koppeling tussen Linux en Windows95 gemeld.

2. Benodigde hardware voor gebruik PLIP

De benodigde hardware om een PLIP interface op te zetten is (vanzelfsprekend) een vrije parallelle poort op beide computers en de kabel. Als je het via je BIOS kunt configureren, stel het dan op z'n minst in op "bi-directional", en anders zo mogelijk op ECP of EPP mode.

Wat betreft de kabel staat het volgende in het plip.c bestand dat onderdeel uitmaakt van de kernelsource versie 2.0.33:

  The cable used is a de facto standard parallel null cable -- sold as
  a "LapLink" cable by various places.  You'll need a 12-conductor cable to
  make one yourself.  The wiring is:
    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
  Do not connect the other pins.  They are
    D5,D6,D7 are 7,8,9
    STROBE is 1, FEED is 14, INIT is 16
    extra grounds are 18,19,20,21,22,23,24
Maar ik raad je aan de bestanden /usr/src/linux/drivers/net/README1. PLIP en README2.PLIP bestanden te lezen voor meer info over de kabel.

Ik vind dat je beter geen eigen parallelle kabel kunt bouwen. Een zelfgemaakte kabel bespaart je heel weinig geld, en het kan voor heel wat kopzorgen zorgen. Als je zelf een parallelle kabel wenst te bouwen, denk er dan aan dat je dit op eigen risico doet, ik gaf exact aan wat er in plip.c staat, maar geef je geen garanties.

Een laatste woord over de kabellengte: lange kabels (d.w.z. meer dan 10 feet of 3 meter) kunnen door radio-storingen voor problemen zorgen. Als je lange kabels nodig hebt, gebruik dan goede en goed beschermde kabels, alhoewel lange kabels niet zijn aan te bevelen: ik denk dat de maximale kabellengte zo rond de 15 meter (50 feet) zouden moeten liggen.

Hoe dan ook, iemand mailde me dat zijn/haar kabel van 100 feet (30 meter) prima werkt; als iemand echt een PLIP-verbinding tussen kantoor en zijn/haar huis (200 meter verderop) wil proberen en het geld er voor heeft, die kan het proberen, maar het is op zijn/haar risico.

3. Herconfigureer de kernel

Er wordt van je verwacht dat je al weet hoe de kernel te configureren en compileren, anders moet je aan een doc (kernel-howto of andere guides) zien te komen. Met dank aan het geweldige werk verricht door de kernel lui, hercompilatie van de laatste kernels is echt een eenvoudige taak, ook voor "gewone" mensen, doe het gewoon. Hoe dan ook, voor de volledigheid is hier een korte samenvatting van wat je moet doen:

OPMERKING: Ik ga uit van de 2.0.xx kernel. Er zijn geen instructies voor de 2.1.xx kernel, aangezien dit een ontwikkelingskernel is.

Ik zal ervan uitgaan dat je menuconfig gebruikt om de kernel-opties in te stellen, maar de andere tools zijn equivalent. Ik zal je laten zien hoe je het met menuconfig doet:

#make menuconfig

Ik raad je ten zeerste aan

Loadable module support  --->

te selecteren en de

[*] Enable loadable module support

te activeren en als dit mogelijk is (d.w.z. je hebt de modules.2.0.0)

[*] Kernel daemon support (automatisch laden van modules)

Ga dan terug en kies voor

Networking options  --->

waar je op z'n minst zou moeten kiezen voor

[*] Network firewalls
[*] TCP/IP networking
[*] IP: forwarding/gatewaying

Ga dan weer terug en kies minstens

[*] Network device support
<M> PLIP (parallel port) support

Als je gebruik maakt van modules raad ik je stellig aan PLIP als een module in te stellen. Als je dit doet, kun je ook de printer nog gebruiken, ga naar

Character devices  --->

en stel

<M> Parallel printer support

in als een module. Nu heb je de kernel-ondersteuning voor PLIP geactiveerd. Als het de eerste keer is dat je de kernel compileert, kijk dan alle andere opties nog na, sla de instellingen op en verlaat menuconfig.

Compileer het tenslotte met

#make dep ; make clean
#make zlilo

En als je gebruik maakt van modules

# make modules 
# make modules_install

Herstart nu je systeem.

4. Kernelberichten over de PLIP-interface

Nadat je de kernel met PLIP-ondersteuning geactiveerd hebt geconfigureerd en gecompileerd, zou je bij het booten van het systeem als de kernel direct PLIP ondersteunt of wanneer je de PLIP modules laadt (later, zie verderop) als je PLIP als modules hebt gecompileerd, ongeveer de volgende meldingen moeten krijgen (nummers kunnen anders zijn):

NET3 PLIP version 2.2 gniibe@mri.co.jp
plip1: Parallel port at 0x378, using assigned IRQ 7.

Afhankelijk van je klogd en syslogd configuratie zou het kunnen dat het plip-bericht in je systeemlogbestanden is opgeslagen: raak niet in paniek als je de melding die hiervoor werd gegeven niet krijgt. Als je PLIP als een module compileerde en lsmod geeft aan dat de plip module is geladen, dan is dat voldoende.

Sla alsjeblieft acht op de interfacenaam. Gewoonlijk is dit plip1, maar het kan plip0, of zelfs plip2, plip3, enzovoort zijn. Dit is afhankelijk van het IO-adres.

5. Instellen van de configuratiebestanden

OPMERKING: In een aantal distributies, zoals die van Debian, worden andere config bestanden gebruikt. Als je een standaard distributie hebt en je kunt de rc.inet* bestanden niet vinden, zoek dan naar (andere) config bestanden in de directory /etc/init.d.

Denk er als eerste aan van alle bestanden die je zult gaan wijzigen een backup te maken.

#cp rc.inet1 rc.inet1.BACKUP 

kan een goed plan zijn.

Als je dit nog niet hebt gedaan, moet je IP-adressen voor de twee computers kiezen. In mijn voorbeelden, maak ik gebruik van een paar voorbeeld-IP's, in het standaard xxx.xxx.xxx.xxx formaat.

Voeg het volgende toe aan het bestand /etc/rc.d/inet1.rc van beide computers (als beste in het laatste deel van het bestand):


/sbin/route add -net ${NETWORK} netmask ${NETMASK}

NETWORK en NETMASK zouden reeds eerder moeten zijn ingesteld. Als je niet weet hoe je dat moet doen, lees dan alsjeblieft de NET-2-HOWTO.

Als je na deze route opdracht de volgende melding krijgt:

SIOCADDRT: network unreachable

gebruik dan in plaats ervan het volgende:


/sbin/route add -net ${NETWORK} netmask ${NETMASK} dev plip1  

waarbij je zoals gebruikelijk de interfacenaam moet gebruiken die in de kernelberichten wordt aangegeven (zie hiervoor).

Je kunt alleen in de volgende situatie deze variabelen gerust negeren:

Als je alleen een verbinding tot stand wilt brengen tussen twee computers op een standalone netwerk. In dat geval kun je ieder IP-adres uitkiezen, laten we zeggen respectievelijk 200.0.0.1 en 200.0.0.2. In dit geval kun je gerust NETWORK="200.0.0.0" en NETMASK="255.255.255.0" plaatsen. Dit zijn de voorbeeld-IP's die ik hieronder in mijn Snelle PLIP Installatie gebruik.

OPMERKING: 200.0.0.1 en 200.0.0.2 zijn slechts voorbeeld-IP's, ik raad je aan deze nummers beslist niet te gebruiken aangezien dit adressen kunnen zijn van werkelijk bestaande hosts op het Internet!

Ik raad je ten zeerste aan je adres te kiezen uit de "prive adres" intervallen:

          10.0.0.0        -   10.255.255.255
      172.16.0.0      -   172.31.255.255
      192.168.0.0     -   192.168.255.255

In het bestand /etc/hosts van beide computers zou je regels toe kunnen voegen met het IP van de computers die je via PLIP met elkaar verbindt. In mijn voorbeeld zijn de regels:


200.0.0.1       een              # dit is het IP-adres van "een" 
200.0.0.2       twee             # dit is het IP-adres van "twee"

Waar een en twee de namen zijn die je voor de twee hosts hebt uitgekozen.

Als je NFS wilt activeren, afgezien van het "yes" antwoorden tijdens de kernelconfiguratie, moet je in /etc/exports regels toevoegen die de directory's beschrijven die je wenst te exporteren. In mijn voorbeeld zou je de volgende regel toe kunnen voegen om de directory /usr te kunnen mounten:


 /usr                          twee (ro)

Lees voor meer informatie over NFS alsjeblieft de daarop gerichte specifieke documentatie; meld me geen problemen over NFS, ik zal je hierbij niet kunnen helpen.

Reboot nu je systeem.

6. Activeer de PLIP-koppeling

Ten slotte zijn dit de opdrachten die je met de permissies van root moet uitvoeren, waarmee de PLIP-interface wordt geactiveerd (uiteraard moet de kabel reeds correct zijn aangesloten).

OPMERKING: Als er iets onverwachts gebeurt, controleer dan nog eens de kabel en de spelling van de opdrachten. Als je de instructies juist hebt opgevolgd, maar er nog steeds fouten optreden, lees dan de FAQ paragraaf, veel antwoorden zijn reeds beschikbaar.

Geef als eerste de volgende opdracht ter bevestiging dat er geen lp-device is geladen.

# cat /proc/devices

Je mag in deze uitvoer geen verwijzing naar lp te zien krijgen, zoals in:

 6 lp

Als je het wel te zien krijgt, verwijder dan alsjeblieft (tijdelijk) het lp-device voor je verder gaat. Als PLIP eenmaal werkt, kun je het later met lp proberen. Als het een module is, gebruik je rmmod voor het verwijderen van het lp-device; als het in plaats daarvan in de kernel is gebouwd, moet je de kernel opnieuw compileren met lp als een module (een veel beter plan).

Nogmaals: ik gebruik de namen "een" en "twee" als voorbeeld. Op "een" moet je de volgende stappen uitvoeren.

Als je de module automounter daemon niet hebt en je compileerde PLIP als een module, dan moet je het laden:

# insmod plip

OPMERKING: als je parallelle poort van een ander IRQ gebruik maakt dan 7 en/of een ander IO-adres heeft dan 0x378, dan moet je het aan insmod opgeven. Zoek uit wat het feitelijke IRQ en IO-adres is (hier kan de DOS-opdracht MSD dienst doen, maar vertrouw hier niet al te veel op) en geef iets op als:

# insmod plip io=0x278 irq=5

Meestal is het IRQ 7 of 5 en het IO-adres 0x378, 0x278 of 0x3bc. Het is van belang dat je het adres en het IRQ overeen laat komen met de hardware-instellingen (jumpers op oude kaarten, BIOS op moderne moederborden).

Als je paranoïde bent, controleer dan of de module is geladen met:

  # lsmod

Module:        #pages:  Used by:
plip               3            0

Sla acht op de interfacenaam (plip0, plip1, enzovoort; lees het hoofdstuk over kernelmeldingen hiervoor voor meer details) en stel vervolgens de PLIP interface in:

# ifconfig plip1 een pointopoint twee up

OPMERKING: als je voor je parallelle poort een ander IRQ gebruikt dan IRQ 7 en/of een ander IO-adres dan 0x378 dan moet je dit aan ifconfig opgeven: Gebruik hetzelfde IRQ en IO-adres dat in de kernelmeldingen wordt gegeven en maak er iets van als:

# ifconfig plip1 irq 7
# ifconfig plip1 io_addr 0x3bc

De gebruikelijke IRQ is 7 of 5, en het IO-adres 0x378, 0x278 of 0x3bc.

Controleer nu of het werkt...

# 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 

Voeg de route toe aan "twee"...

# route add twee plip1

En als je ook NFS wilt voor "twee":

# rpc.portmap
# rpc.mountd
# rpc.nfsd

Op "twee" zijn de opdrachten hetzelfde, maar je moet "een" schrijven in plaats van "twee" en vice versa.

Op één van je computers bevindt zich naar alle waarschjnlijkheid de PLIP-verbinding, als dit klopt en die computer wordt geïdentificeerd met "twee", kun je op die computer ook opgeven:

# route add default gw een

In het voorbeeld hiervoor, is "twee" een laptop met alleen een PLIP-verbinding op "een", dus typ ik de bovenstaande regel op "twee".

Controleer het tenslotte met

# ping twee

vanaf "een" en

# ping een 

vanaf "twee" om te controleren of alles werkt.

Natuurlijk kun je deze opdrachten allemaal automatisch laten doen in een script dat bij de systeemstart wordt uitgevoerd. Je hoeft slechts een script aan te maken waarin deze opdrachten worden uitgevoerd: nu kun je het als root aanroepen wanneer je het nodig hebt, of je kunt een opdracht toevoegen aan /etc/rc.d/rc.inet2 dat het tijdens de systeemstart aanroept.

Voor het fijnafstemmen van PLIP kun je de opdracht plipconfig gebruiken, zie de man page voor meer informatie.

Voor het deactiveren van PLIP hoef je slechts de volgende opdracht te geven:

# ifconfig plip1 down

waarmee ook de route regels worden verwijderd. Als je geen gebruik maakt van de automounter daemon, verwijder dan ook de module:

# rmmod plip

7. FAQ.

Deze sectie zal (hopelijk) een oplossing voor je problemen geven. Als je andere vragen hebt, mail me dan gerust.

8. Patches om PLIP en LP samen te gebruiken

De beste manier om PLIP en LP samen te gebruiken is door gebruik te maken van kernelmodules; je kunt plip.o activeren en deactiveren wanneer je af moet drukken en vice versa. Als je echt beiden, PLIP en LP wilt gebruiken, probeer dan de volgende patches.

8.1 PLIP en LP samen op dezelfde poort.

Als je om de een of andere reden PLIP en LP ondersteuning direct door de kernel ondersteund wil, kun je deze patches proberen.

Je moet de volgende stukken code aanpassen, maar maak vantevoren een backup van deze bestanden:


******** aanpassingen voor 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

******** aanpassingen voor 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 */

Uiteraard is het standaard disclaimer van toepassing: Ik ontving deze patches en plaats ze hier "zoals ik ze ontving". Dit betekent dat je ze op eigen risico kunt proberen. Hoe dan ook, je grootste probleem zou kunnen bestaan uit het slechts weer herstellen van de oorspronkelijke bestanden en hercompilatie.

8.2 PLIP en LP op verschillende poorten

Als je op z'n minst 2 parallelle poorten hebt, kun je deze patches proberen, hiermee zou het mogelijk voor je moeten zijn PLIP op de ene en LP op de andere poort te gebruiken.

  1. Maak een commentaarregel van een regel in het bestand drivers/char/lp.c in de kernelsource.
    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 configuratie
    PLIP (parallel port) support (CONFIG_PLIP) [n] y
    
    Parallel Printer support [y] y
    
  3. Kernelmelding tijdens opstarten
    lp1 at 0x0378, using polling driver
    .....
    NET3 PLIP version 2.0 gniibe@mri.co.jp
    plip2: Parallel port at 0x278, using assigned IRQ 5.
    

Wederom de standaard disclaimer, als in sectie 8.1.

9. Een PLIP-koppeling tussen DOS en Linux

Na de eerste uitgave van deze Mini-HowTo schreven veel mensen om info over een koppeling tussen een Linux en DOS (of Windows) computer. Deze algemene belangstelling leidde tot het toevoegen van dit hoofdstuk. Ik hoop dat het voor iedereen helpt.

Deze sectie is afkomstig van een artikel dat ik vond in de Linux Gazette en het is geschreven door James McDuffie <mcduffie@scsn.net> . Het gaat over de basisinstallatie van een PLIP koppeling tussen een Linux en een DOS-computer met behulp van Windows en Trumpet WinSock en het geeft het adres van een gaaf programma waarmee je X-Window programma's onder Windows kunt uitvoeren.

De laatste sectie is een addendum ingezonden door James Vahn jvahn@short.circuit.com waarin hij uitvoerig beschrijft hoe deze koppeling in te stellen en hoe veel problemen kunnen worden opgelost.

Neem alsjeblieft voor vragen over dit hoofstuk met hem contact op, niet met mij.

9.1 DOS-Linux link.

Ik veronderstel dat je aan de Linux kant reeds PLIP ondersteuning hebt ingesteld en dat je de juiste kabel hebt, keer anders terug naar vorige hoofdstukken.

Nu voor de DOS-kant, je hebt als eerste een packet driver nodig. Die is hier te vinden:

ftp://ftp.crynwr.com/drivers/plip.zip

Het programma draait onder DOS en fungeert als een Ethernet Packet driver. Als je PLIP met Windows wilt gebruiken, heb je ook een Trumpet Winsock nodig. Dit dient als de TCP/IP interface. Anders kun je waarschijnlijk TCP/IP software voor DOS vinden.

Ga nu terug naar de Linux-computer en voeg aan /etc/hosts het adres van de DOS-computer toe. Als je DOS-computer geen geregistreerd IP-adres heeft, kun je ieder adres kiezen (denk aan de waarschuwing in hoofdstuk 3 betreft IP-adressen).

Stel dat je voor de Linux computer de naam linux koos en voor de DOS-computer de naam dos. Dan tik je in:

ifconfig plip1 linux pointopoint dos arp up
route add dos

Natuurlijk wil je dat dit iedere keer wordt gedaan wanneer je de linux computer boot. Hiervoor kun je de volgende regels toevoegen aan /etc/rc.d/rc.inet1:


/sbin/ifconfig plip1 linux pointopoint dos arp up
/sbin/route add dos

Hiermee wordt de interface ingesteld en er een route naar toegevoegd. Natuurlijk moet je plip2 schrijven als je de tweede parallelle poort gebruikt.

Ga terug naar de DOS/Windows computer en wijzig autoexec.bat, je moet hierin de volgende regels toevoegen.


c:\plip\plip.com 0x60
c:\tcpip\winsock\winpkt.com 0x60

Natuurlijk ga ik ervan uit dat je plip.com (de packet driver) in de directory c:/plip plaatst en de winpkt.com in c:/tcpip, anders moet je het juiste pad instellen.

Hiermee wordt het plip.com programma ingesteld op packet vector 0x60 en vervolgens het winpkt.com programma geladen dat met trumpet winsock op dezelfde vector komt. Als de kabel anders is dan lpt1 dan zal je plip.com het irq-nummer en io-adres op moeten geven. Ook moet winpkt worden uitgevoerd om de packet vector beschikbaar te maken voor Windows. Vanaf hier gaan we door de feitelijke setup onder Trumpet Winsock Het enige wat je hoeft te doen is SLIP of PPP deselecteren en 60 invulllen in de box gelabeld Packet vector. Vertel het dan het IP-adres dat je het gaf, het IP-adres van de Linux-computer als ook de standaardgateway en de name server of als het ip van je computer of het adres van de name servers van je ISP als je van plan bent een verbinding te maken met het Internet. (hierover later meer). Sluit de setup af en start Winsock opnieuw op en dat zou het moeten zijn! Plaats winsock in je opstartgroep en je hebt alles automatisch ingesteld!

Als je op de Windows-computer via de Linux-computer toegang wilt tot het Internet, zal je IP-Masquerading in moeten stellen. Zie de NET-2-HOWTO voor info hierover. Hiermee wordt de Windows computer eenvoudigweg gemaskerd met het IP-adres van je Linux-computer.

Ik heb ook een programma gevonden waarmee je X-Window programma's onder Windows kunt draaien! Het is te vinden op:

http://www.tucows.com/

Stel het overeenkomstig de aanwijzingen in dan hoef je alleen via telnet vanaf de Windows computer contact te maken, het display in te stellen naar de Windows computer (bijvoorbeeld `DISPLAY=duncan:0.0`) en het gewenste programma uit te voeren. Er is niets gaver dan xv onder Windows draaien! Ik hoop dat je hier wat aan hebt.

9.2 Een DOS-Linux PLIP link ervaring

OPMERKING: Ik ontving dit document van James Vahn jvahn@short.circuit.com. Ik plaats het hier zonder wijzigingen. Dit betekent dat hij voor eventuele vragen over deze sectie veel beter is gekwalificeerd dan ik, dus mail hem alsjeblieft in plaats van mij Zijn ervaring met een PLIP-verbinding op een DOS computer met slechts een diskettestation naar een Linux computer is het perfecte voorbeeld van hoe oplossingen te zoeken voor algemene problemen.

Laatst bijgewerkt 11 juli 1996

Mijn DOS box met alleen een diskettestation is via een PLIP netwerk verbonden met de tweede printerpoort op de Linux computer. Op de eerste Linux printerpoort is een printer aangesloten, beiden zijn permanent verbonden en vanaf de DOS box log ik in via telnet op Linux. Hier volgen mijn aantekeningen wat ik heb gedaan om dit te bewerkstelligen.

Wanneer de kernel printerpoorten tracht op te sporen, zal het ze allen opvangen, tenzij je dit voorkomt. Anders krijgt PLIP niets. Een methode is de drivers als modules te laden wanneer ze nodig zijn...

<gniibe@mri.co.jp> schrijft:

Ik hou het er bij je aan te raden van PLIP/LP als kernelmodule gebruik te maken, aangezien

Met PLIP/LP als kernelmodule, kun je opgeven welke poort PLIP is en welke poort LP. Hier is een voorbeeld:

# insmod lp.o io=0x378
# insmod plip.o io=0x278 irq=2

Je kunt zelfs twee parallelle poorten gebruiken:

# insmod plip.o io=0x278,0x3bc irq=2,5

In het voorbeeld hierboven,

is plip0 toegewezen aan 0x278 en het irq is 2,

is plip1 toegewezen aan 0x3bc en het irq is 5.

Het gebruik van modules is beslist de manier om van start te gaan. De volgende methode geeft aan hoe een patch op de kernel toe te passen waardoor het mogelijk wordt zowel een printer als PLIP op verschillende poorten beschikbaar te hebben zonder dat hiervoor modules nodig zijn. Als je niet bekend bent met het concept module, vind je dit wellicht een snellere manier om het in te stellen.

Je zal twee bestanden in de kernelsource structuur moeten aanpassen. Ik gebruik kernel 1.2.13 en vond een aantal wijzigingen die nodig waren in ../linux/drivers/net/Space.c om mijn systeem van te voorzien. Zoek naar regel 295 voor de PLIP definities om er zeker van te zijn dat je poort en IRQ overeenkomen, en maak een notitie van welke driver het zal zijn (plip0, plip1, plip2). In mijn geval poort 0x278 met IRQ 5 (de kaart is zo gejumperd) maar Space.c definieerde het met IRQ 2. Ik wijzigde het hierin, in plaats van de box te openen en de jumpers te verzetten. Het alternatief is het later opgeven van het IRQ aan ifconfig, maar de kernel zal dan met het onjuiste IRQ voor PLIP opstarten en wellicht dat 't je ergert. Het is een eenvoudige (uit 1 teken bestaande) wijziging.

De volgende, moeilijkere stap:

In .../drivers/char/lp.c vind je ongeveer op regel 38 het volgende:


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 

Let op de te maken wijzigingen- van één poort is een commentaarregel gemaakt, dus nu zijn er slechts 2 poorten gedefinieerd. Poort 0x3BC zal met PLIP waarschijnlijk niet werken - de IRQ lijn is op deze poorten meestal niet goed, zoals geconstateerd op oude monochrome adapters (MDA).

Je hebt toch wel backups gemaakt van dit bestand voordat je het wijzigde? Configureer het systeem. Dit is mijn /etc/rc.d/rc.inet1 bestand: Maak nu een nieuwe kernel met printer, net, dummy en plip ondersteuning.


#!/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

Voor de DOS-naar-Linux connectie werd gebruik gemaakt van arp, blijkbaar niet gebruikt op Linux-naar-Linux connecties.

En in /etc/hosts kun je het volgende toevoegen, gewoon om de twee computers een naam te geven:


200.0.0.1       console1
200.0.0.2       console2

De DOS box is console2. Denk aan Andrea's waarschuwing betreft de IP-adressen, het is beter gebruik te maken van de officiële nummeringsschema's.

Herstart het systeem zodat alle wijzigingen en de nieuwe kernel effect hebben. Tijdens de bootsequence (of door het uitvoeren van dmesg) zie je als je de patches toepaste of anders wanneer de modules zijn geladen:

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.

De opdracht "route" geeft dit te zien:

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

En "ifconfig plip1" laat zien:

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 

Kijk in /etc/inetd.conf om te zien of telnet is geactiveerd. Wellicht dat je de man page voor tcpd wilt lezen, en het gebruik van /etc/hosts.allow (ALL: LOCAL) en /etc/hosts.deny (ALL: ALL). Je zou de opdracht "telnet localhost" moeten kunnen toepassen.

Linux is klaar, nu nog de DOS-kant. Nogmaals, wees achterdochtig betreft poort 0x3BC als deze aanwezig is.

Ik gebruik NCSA's telnet en Crynwr's PLIP driver die ik op deze sites aantrof:

ftp://ftp.ncsa.uiuc.edu/Telnet/DOS/ncsa/tel2308b.zip

ftp://ftp.crynwr.com/drivers/plip.zip

Wees er zeker van NCSA's versie 2.3.08 telnet en versie 11.1 van Crynwr's PLIP driver te gebruiken. Zoek naar en lees alsjeblieft Crynwr's SUPPORT.DOC dat elders is te vinden.

Het CONFIG.TEL bestand. Het meeste ervan is de standaard en om wat ruimte te besparen heb ik geprobeerd het hier in te krimpen om je (hopelijk) slechts de info te geven die je nodig hebt. De tweede poort op deze computer is ingesteld op 0x278 en IRQ 5.


myip=200.0.0.2 
netmask=255.255.255.0       # subnetting mask
hardware=packet             # netwerk adapterkaart (packet driver interface)
interrupt=5                 # IRQ waarop de adapter is ingesteld
ioaddr=60                   # software interrupt vector driver dat het gebruikt
#
#[...veel ongewijzigd...]
#
# plaats aan het einde van het bestand deze regel:
name=console1 ; hostip=200.0.0.1 ; nameserver=1 ; gateway=1 

(console1 is de naam van de Linux computer, je kunt gebruiken wat je wilt)

Ik maakte voor tussen beiden computers een null-kabel van 12 foot, en (nadat ik in beginsel erachter kwam dat het niet goed was bedraad) ontstonden er geen problemen. Een standaard 11-draads null printerkabel zou ook moeten werken. In de Linux plip.c broncode wordt de bedrading aangegeven. Alhoewel mijn kabel de 17-17 connectie heeft, denk ik niet dat het ergens voor wordt gebruikt en het was op een kant-en-klare kabel niet aanwezig.


@echo off
plip.com 0x60 5 0x278
telbin -s console1

Hiermee zou de verbinding met de Linux box via /dev/ttyp tot stand moeten zijn gebracht. NCSA's telnet voorziet in 8 virtuele schermen en fungeert ook als een ftp-server. De PLIP interface levert een redelijke doorvoer, ik krijg met mijn antiquiteiten een bestandstransport van 6.5K/s. Laten we hopen dat het jou beter afgaat. :-)

10. PLIP tussen Linux en Windows 95.

Deze sectie is leeg. Ik gebruik windows 95 niet voor iets serieus, behalve spellen, dus ik probeer het ook niet en geef ook niets om een PLIP koppeling met Linux. De vragen over een dergelijke koppeling hebben de wedstrijd "meest gestelde vraag" gewonnen, dus geef ik hier (tot zover) een definitief antwoord.

Nee, tot dusverre, heeft niemand mij een succesvolle koppeling tussen Linux en Windows 95 gemeld. Als iemand erin slaagt een dergelijk koppeling op te zetten, laat dit me dan alsjeblieft onmiddellijk weten: duizenden PLIP gebruikers wachten op dit nieuws!

11. Vragen? Opmerkingen? Stuur me feedback.

Voor eventuele vragen en opmerkingen ben ik te bereiken via e-mail op het adres controzz@cli.di.unipi.it

Feedback is welkom, een eventueel foutenverslag nauwkeurig. In de volgende uitgave zal zelfs een nog groter FAQ sectie zijn opgenomen, als je je vragen opstuurt, en uiteraard de antwoorden als je deze zelf weet.

Stuur alsjeblieft geen vragen die reeds in de FAQ zijn opgenomen.

Als je me om hulp vraagt, zorg er dan alsjeblieft voor dat je me alle informatie geeft die ik nodig heb, op z'n minst: kernelversie, gebruikte opdrachten, foutmeldingen, de gebruikte kabel en eventuele andere systeemmeldingen gerelateerd aan PLIP.

Denk er alsjblieft aan me geen vragen te stellen over PLIP met DOS/Windows 3.1/Windows 95, ik kan je daar niet mee helpen. Deze vragen zouden moeten worden opgestuurd naar James Vahn jvahn@short.circuit.com, die me de DOS addendum toestuurde. Nogmaals: het heeft geen zin hem of mij te vragen naar PLIP met Windows 95.

12. Waar de nieuwe uitgaven van deze mini-howto zijn te vinden

Deze mini-HOWTO wordt beheerd door de HOWTO coördinators en wordt maandelijks gepost naar comp.os.linux.answers en is te vinden in de HOWTO-directory op sunsite en sunsite's mirrors.

Een andere manier op deze mini-HOWTO op te sporen (en contact met mij op te nemen) is via mijn Home Page,

http://www.cli.di.unipi.it/~controzz/intro.html (italiaans)

http://www.cli.di.unipi.it/~controzz/intro_e.html (engels)

13. Krediet

Veel dank aan:

14. Copyrightmelding

Tenzij anders aangegeven, vallen HOWTO-documenten onder het copyright van hun respectieve auteurs. Linux HOWTO documenten mogen geheel of gedeeltelijk worden gereproduceerd en gedistribueerd, via elk fysiek of elektronisch medium, zolang deze copyright-melding op alle kopieën behouden blijft. Commerciële herdistributie is toegestaan en wordt aangemoedigd; de auteur zou echter graag van dergelijk distributies op de hoogte worden gebracht.

Alle vertalingen, afgeleide werken, of verzamelde werken aangaande enige Linux HOWTO-documenten moeten zijn voorzien van deze copyright-melding. Dat wil zeggen dat je geen afgeleide werken van een HOWTO mag produceren en aanvullende beperkingen op de distributie ervan mag opleggen. Uitzonderingen op deze regels kunnen onder bepaalde voorwaarden worden toegestaan; neem alsjeblieft contact op met de Linux HOWTO coördinator via het hieronder aangegeven adres.

In 't kort, we willen verspreiding van deze informatie via zoveel mogelijk kanalen bevorderen. We willen echter dat het copyright op de HOWTO-documenten behouden blijft, en zouden graag op de hoogte worden gesteld van alle plannen om de HOWTO's te herdistribueren.

Als je vragen hebt, neem dan alsjeblieft contact op met Greg Hankins, de Linux HOWTO coördinator, via email linux-howto@sunsite.unc.edu.