LINUX PLIP MINI-HOWTO <author>Andrea Controzzi, <tt>controzz@cli.di.unipi.it</tt> <date>v2.1, 12 March 1998 <abstract> Αυτό το HOWTO θα σας δείξει πως να ετοιμάσετε και να χρησιμοποιήσετε ένα Parallel Line Interface Protocol (PLIP, πρωτόκολλο επικοινωνίας παράλληλης γραμμής) </abstract> <toc> <p> <descrip> <tag>Σημείωση</tag> Αυτή είναι η καινούρια έκδοση. Υπάρχουν πολλές αλλαγές και προσθήκες. Οι μεγαλύτερες αλλαγές είναι: <p> <itemize> <item> SGML format <item> μια γενική απάντηση στο "PLIP με win95" (δυστυχώς αρνητική) <item> μεγαλύτερο και καλύτερο FAQ τμήμα (να ευχαριστήσω τις αναφορές αναρίθμητων χρηστών: πολλοί θα βρουν τα σχόλιά τους εδώ, όπως υποσχέθηκα!) <item> αφαίρεση των αρχείων γρήγορης εγκατάστασης PLIP, που έτσι κι αλλιώς ήταν άχρηστα. <item> ανανεωμένο τμήμα Dos-Linux PLIP link </itemize> Για οποιαδήποτε σχόλια, διορθώσεις, κλπ σχετικά με την ελληνική μετάφραση επικοινωνήστε με τον Παναγιώτη Βουδούρη στη διεύθυνση: <tt/panos@veria1.freeserve.co.uk/ Για οποιεσδήποτε ερωτήσεις, διορθώσεις, σχόλια και/ή προτάσεις, η ηλεκτρονική μου διεύθυνση είναι: controzz@cli.di.unipi.it. Μπορείτε να μου στείλετε email οποτεδήποτε χρειάζεστε βοήθεια. Μπορεί να μην απαντήσω αμέσως αλλά θα απαντήσω. Αν δεν λάβετε τίποτα μετά από δύο εβδομάδες μάλλον το σύστημά μας έχει πρόβλημα: μη διστάσετε να μου ξαναστείλετε mail, είναι καθήκον μου να σας βοηθήσω. Δε θα εγγυηθώ ότι θα λύσω τα προβλήματά σας αλλά θα προσπαθήσω. Αν μετά από πολλά μυνήματα δε λάβετε απάντηση ελέγξτε την διεύθυνση επιστροφής σας. Πολλές φορές οι απαντήσεις μου δε φτάνουν λόγω προβλημάτων παράδοσης, συνήθως επειδή η διεύθυνση επιστροφής είναι root@myhost. Πριν στείλετε email διαβάστε το FAQ, η απάντηση μου σε μια ερώτηση που ήδη έχει απαντηθεί δε 8α είναι καλύτερη (αλλά μάλλον χειρότερη η ατελής) από αυτήν που θα διαβάσετε. Για ερωτήσεις σχετικά με το PLIP στο DOS και Win95 στείλτε email στους συγγραφείς των αντίστοιχων κεφαλαίων, δε μπορώ να σας βοηθήσω. Πρώτα από όλα, πολλές τεχνικές πληροφορίες είναι από το NET-2-HOWTO, από τον Terry Dawson. Το παρόν mini-HOWTO δεν καλύπτει άλλες πτυχές ή αντικαθιστά το NET-2-HOWTO: σκοπός μου είναι να σας δείξω έναν τρόπο να κάνετε μια μόνιμη PLIP σύνδεση γρήγορα και *ΜΟΝΟ* αυτό. Όλες οι υπόλοιπες πληροφορίες προέρχονται από την προσωπική μου εμπειρία και τη βοήθεια πολλών χρηστών που μου έστειλαν τα σχόλιά τους και πληροφορίες. Διαβάστε το NET-2-HOWTO και τα άλλα έγγραφα με γενικές πληροφορίες για δίκτυα και τα αρχεία ρυθμίσεων που προτείνω να αλλάξετε. </descrip> </p> <sect>Εισαγωγή: τι είναι το PLIP και γιατί θα έπρεπε να το χρησιμοποιήσω <p> Υπάρχουν πολλοί τρόποι να δημιουργηθεί σύνδεση μεταξύ υπολογιστών. Το PLIP, όπως και το SLIP, επιτρέπουν τοπική σύνδεση μεταξύ δυο υπολογιστών, αλλά χρησιμοποιεί την παράλληλη θύρα. Οι παράλληλες θύρες μεταφέρουν παραπάνω του ενός bit ταυτόχρονο, οπότε είναι δυνατόν να επιτευχθούν μεγαλύτερες ταχύτητες από μια σειριακή σύνδεση. Η ταχύτητα που επιτυγχάνεται εξαρτάται απόλυτα από το υλικό (CPU και παράλληλη θύρα) και το φόρτο του συστήματος, σε γενικές γραμμές μπορεί να είναι από 5 Κb/δευτερόλεπτο μέχρι και 40 Κb/δευτερόλεπτο. Η διασύνδεση PLIP είναι αρκετά γρήγορη για να επιτρέψει μερικές αξιοπρεπείς tcp/ip λειτουργίες, όπως το NFS. Έτσι, αν έχετε έναν υπολογιστή με όλα τα προγράμματα του Linux και έναν με μόνο ένα ελάχιστο σύστημα, μπορείτε να προσαρτήσετε όλα τα υπόλοιπα από το κεντρικό μηχάνημα. Το μειονέκτημα είναι ότι οι περισσότεροι χρήστες έχουν μόνο μια παράλληλη θύρα, οπότε δε θα μπορείτε να τυπώσετε και να χρησιμοποιήσετε το PLIP ταυτόχρονα. Ακόμη και με δυο παράλληλες θύρες είναι αδύνατο να τυπώσετε και να χρησιμοποιήσετε το PLIP χωρίς να χρησιμοποιήσετε modules (αποσπώμενα τμήματα) του πυρήνα. Το μειονέκτημα αυτό μπορεί να εξαλειφθεί, αν έχετε δύο ή περισσότερες παράλληλες θύρες, χρησιμοποιώντας το patch που θα βρείτε παρακάτω σε αυτό το mini-HOWTO. Τελειώνοντας, μπορώ να δείξω έναν καλό τρόπο για να επιτευχθεί PLIP σύνδεση μεταξύ DOS και Linux. Δεν θα το επισημάνω ξανά: μέχρι στιγμής κανένας δεν έχει αναφέρει επιτυχή σύνδεση μεταξύ Linux και Windows95. <sect>Απαραίτητος εξοπλισμός για PLIP. <p> Ο απαραίτητος εξοπλισμός για μια PLIP διασύνδεση είναι (προφανώς) μια ελεύθερη παράλληλη θύρα και στα δυο μηχανήματα και το καλώδιο. Εάν μπορείτε να ρυθμίσετε τη θύρα μέσω του BIOS, ρυθμίστε την ως "bi-directional" και αν γίνεται σε ECP ή EPP mode. Σχετικά με το καλώδιο, τα παρακάτω βρίσκονται στο plip.c, στον κώδικα του πυρήνα 2.0.33: <tscreen><verb> 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 </verb></tscreen> Σας προτείνω να διαβάσετε το /usr/src/linux/drivers/net/README1.PLIP και το README2.PLIP για περισσότερες πληροφορίες σχετικά με το καλώδιο. Κατά τη γνώμη μου να αποφύγετε να κάνετε μόνοι σας το καλώδιο. Το να ετοιμάσετε εσείς το καλώδιο θα σας γλιτώσει πολύ λίγα χρήματα αλλά θα προσθέσει πολλά προβλήματα. Εάν ακόμη θέλετε να το ετοιμάσετε εσείς, θυμηθείτε ότι το κάνετε με δική σας ευθύνη. Έγραψα ακριβώς ότι υπάρχει στο plip.c αλλά δε δίνω εγγυήσεις. Και μια τελευταία λέξη για το μήκος του καλωδίου: μακριά καλώδια (άνω των τριών μέτρων) μπορεί να έχουν προβλήματα λόγω παρεμβολών. Εάν χρειάζεστε μεγαλύτερο μήκος να χρησιμοποιήσετε καλά θωρακισμένα καλώδια. Πάντως τα πολύ μακριά καλώδια δε συνιστώνται: νομίζω ότι το μέγιστο μήκος είναι 15 μέτρα. Παρόλα αυτά, κάποιος μου είπε ότι το 30μετρο καλώδιο που χρησιμοποιεί δουλεύει μια χαρά; αν κάποιος θέλει να δοκιμάσει PLIP σύνδεση μεταξύ του γραφείου και του σπιτιού του (200 μέτρα μακριά) και έχει τα χρήματα μπορεί να δοκιμάσει, αλλά με δική του ευθύνη. <sect>Ρύθμιση του πυρήνα. <p> Υποθέτω ότι ξέρετε πως να ρυθμίσετε και να μεταγλωττίσετε τον πυρήνα, αλλιώς να βρείτε τα αντίστοιχα έγγραφα (kernel-howto ή άλλους οδηγούς). Χάρη στην καλή δουλειά της ομάδας του πυρήνα, η αναμεταγλώττιση των τελευταίων πυρήνων είναι αρκετά εύκολη δουλειά και για τους "απλούς" ανθρώπους. Πάντως, για πληρότητα, ιδού μια γρήγορη περίληψη του τι πρέπει να κάνετε: <bf>ΣΗΜΕΙΩΣΗ</bf>: Υποθέτω ότι χρησιμοποιείτε πυρήνα 2.0.xx. Δεν υπάρχει λόγος να κρατάτε πυρήνα 1.2.xx. Δεν υπάρχουν οδηγίες για πυρήνες 2.1.xx, εφόσον είναι για ανάπτυξη. <p> Θα υποθέσω ότι χρησιμοποιείτε το menuconfig για να ρυθμίσετε τον πυρήνα αλλά τα ίδια ισχύουν και για τα άλλα εργαλεία. Θα σας δείξω πως γίνεται με το menuconfig: <tscreen><verb> #make menuconfig </verb></tscreen> Συνιστώ ανεπιφύλακτα να επιλέξετε <tscreen><verb> Loadable module support ---> </verb></tscreen> και να ενεργοποιήσετε το <tscreen><verb> [*] Enable loadable module support </verb></tscreen> και αν γίνεται (πχ, αν έχετε modules 2.0.0) το <tscreen><verb> [*] Kernel daemon support (e.g. autoload of modules) </verb></tscreen> Μετά πηγαίνετε πίσω και επιλέγετε <tscreen><verb> Networking options ---> </verb></tscreen> όπου πρέπει να επιλέξετε τουλάχιστον τα <tscreen><verb> [*] Network firewalls [*] TCP/IP networking [*] IP: forwarding/gatewaying </verb></tscreen> Ξανά πίσω και επιλέξτε τα <tscreen><verb> [*] Network device support <M> PLIP (parallel port) support </verb></tscreen> Εάν χρησιμοποιείτε modules σας συνιστώ να έχετε και το PLIP ως module. Εάν θέλετε να χρησιμοποιήσετε και εκτυπωτή, πηγαίνετε στο <tscreen><verb> Character devices ---> </verb></tscreen> και βάλτε ως module το <tscreen><verb> <M> Parallel printer support </verb></tscreen> Έτσι έχετε ενεργοποιήσει την υποστήριξη PLIP από τον πυρήνα. Εάν είναι η πρώτη φορά που μεταγλωττίζετε πυρήνα, κοιτάξτε και τις υπόλοιπες επιλογές, σώστε και βγείτε από το menuconfig. Μεταγλωττίστε με <tscreen><verb> # make dep ; make clean # make zlilo </verb></tscreen> Και αν χρησιμοποιείτε moudles <tscreen><verb> # make modules # make modules_install </verb></tscreen> Επανεκκινήστε το σύστημα. <sect>Μυνήματα του πυρήνα σχετικά με τη σύνδεση PLIP. <p> Αφού διαμορφώσατε και μεταγλωττίσατε τον πυρήνα με υποστήριξη PLIP, όταν εκκινήσετε το σύστημα, αν ο πυρήνας υποστηρίζει PLIP άμεσα, ή όταν φορτώσετε (αργότερα, δείτε παρακάτω) το PLIP module, θα δείτε κάτι σαν το παρακάτω (τα νούμερα μπορεί να διαφέρουν): <tscreen><verb> NET3 PLIP version 2.2 gniibe@mri.co.jp plip1: Parallel port at 0x378, using assigned IRQ 7. </verb></tscreen> Ανάλογα με την διαμόρφωση του klogd και syslogd το μύνημα του plip μπορεί να έχει αποθηκευτεί στα log αρχεία: μην πανικοβάλλεστε αν δεν δείτε το παραπάνω μύνημα. Αν μεταγλωττίσατε το PLIP ως module και το lsmod δείχνει ότι το plip module είναι φορτωμένο, τότε αυτό είναι αρκετό. Παρακαλώ σημειώστε το όνομα της σύνδεσης. Συνήθως είναι plip1, αλλά μπορεί να είναι plip0 ή ακόμη και plip2, plip3 κοκ. Εξαρτάται από τις IO διευθύνσεις. <sect>Ετοιμάζοντας τα αρχεία διαμόρφωσης. <p> <bf>ΣΗΜΕΙΩΣΗ</bf>: Ορισμένες διανομές, όπως η Debian, χρησιμοποιούν διαφορετικά αρχεία διαμόρφωσης. Εάν έχετε μια συνηθισμένη εγκατάσταση και δε βρίσκετε τα rc.inet* αρχεία, κοιτάξτε για (διαφορετικά) αρχεία στον /etc/init.d κατάλογο. Πρώτα από όλα θυμηθείτε να κρατήσετε ένα αντίγραφο όλων των αρχείων που θα αλλάξετε. <tscreen><verb> #cp rc.inet1 rc.inet1.BACKUP </verb></tscreen> Τώρα, εφόσον δεν το έχετε κάνει ήδη, πρέπει να διαλέξετε IP διευθύνσεις για τα δυο μηχανήματα. Στα παραδείγματά μου θα χρησιμοποιήσω IP διευθύνσεις στην κανονική xxx.xxx.xxx.xxx μορφή. Στο αρχείο /etc/rc.d/inet1.rc και στα δυο μηχανήματα προσθέστε (καλύτερα στο τέλος του αρχείου): <code> /sbin/route add -net ${NETWORK} netmask ${NETMASK} </code> Όπου τα NETWORK και NETMASK θα πρέπει να δηλωθούν νωρίτερα. Εάν δεν ξέρετε πως να το κάνετε αυτό, διαβάστε το NET-2-HOWTO. Εάν μετά από την εντολή route δείτε κάτι σαν: <tscreen><verb> SIOCADDRT: network unreachable </verb></tscreen> τότε χρησιμοποιήστε το παρακάτω: <code> /sbin/route add -net ${NETWORK} netmask ${NETMASK} dev plip1 </code> όπου, ως συνήθως, θα πρέπει να χρησιμοποιήσετε το όνομα που αναφέρθηκε στα μυνήματα του πυρήνα (δείτε παραπάνω). Μπορείτε να παραβλέψετε αυτές τις μεταβλητές μόνο στις παρακάτω περιπτώσεις: Εάν συνδέετε τα δυο μηχανήματα σε απομονωμένο δίκτυο μπορείτε να χρησιμοποιήσετε οποιαδήποτε IP διεύθυνση, πχ 200.0.0.1 και 200.0.0.2 αντίστοιχα. Σε αυτή την περίπτωση μπορείτε με ασφάλεια να βάλετε NETWORK="200.0.0.0" και NETMASK="255.255.255.0". <bf>ΣΗΜΕΙΩΣΗ</bf>: 200.0.0.1 και 200.0.0.2 είναι μόνο για παράδειγμα. Δε συνιστώ να τις χρησιμοποιήσετε, αφού μπορεί να είναι διευθύνσεις πραγματικών υπολογιστών στο internet. Σας συνιστώ να χρησιμοποιήσετε διευθύνσεις μεταξύ των συνόλων "ιδιωτικών διευθύνσεων": <tscreen><verb> 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 </verb></tscreen> Στο αρχείο /etc/hosts και στα δυο μηχανήματα πρέπει να προσθέσετε τις IP διευθύνσεις των μηχανημάτων που θα συνδεθούν μέσω PLIP. Στο παράδειγμά μου προσθέτω τα παρακάτω: <code> 200.0.0.1 one # this is the "one" IP address 200.0.0.2 two # this is the "two" IP address </code> Όπου one και two είναι τα ονόματα που έχετε επιλέξει για τους δυο υπολογιστές. Εάν θέλετε να ενεργοποιήσετε το NFS, εκτός από το να το προσθέσετε κατά τη διαμόρφωση του πυρήνα, πρέπει να προσθέσετε στο /etc/exports την περιγραφή των καταλόγων που θέλετε να εξάγετε. Στο παράδειγμά μου, για να μπορέσω να προσαρτήσω τον κατάλογο /usr, πρέπει να προστεθεί η παρακάτω γραμμή: <code> /usr two (ro) </code> Για περισσότερες πληροφορίες σχετικά με το NFS, διαβάστε τα σχετικά έγγραφα; μη μου αναφέρετε προβλήματα με το NFS αφού δε θα μπορέσω να βοηθήσω. Επανεκκινήστε το σύστημα. <sect>Ενεργοποιώντας την σύνδεση. <p> Τελειώνοντας, παρακάτω βρίσκονται οι εντολές, που πρέπει να εκτελεστούν με δικαιώματα υπερχρήστη, για να ενεργοποιήσετε τη σύνδεση PLIP (φυσικά τα καλώδια πρέπει να είναι συνδεμένα σωστά). <bf>ΣΗΜΕΙΩΣΗ</bf>: Εάν κάτι αναπάντεχο συμβεί, διπλοελέγξτε το καλώδιο και την ορθογραφία των εντολών. Εάν ακολουθήσατε τις οδηγίες σωστά αλλά υπάρχουν ακόμα προβλήματα, διαβάστε την παράγραφο FAQ, όπου πολλές απαντήσεις είναι διαθέσιμες. Πρώτα από όλα βεβαιωθείτε ότι δεν υπάρχει lp συσκευή: <tscreen><verb> # cat /proc/devices </verb></tscreen> Δεν πρέπει να δείτε αναφορές στο lp όπως η παρακάτω: <tscreen><verb> 6 lp </verb></tscreen> Εάν τη δείτε, αφαιρέστε (προσωρινά) την lp συσκευή πριν συνεχίσετε. Εάν το PLIP δουλεύει μπορείτε να δοκιμάσετε και με το lp αργότερα. Για να αφαιρέσετε την lp συσκευή θα χρειαστείτε την rmmod εντολή αν είναι module; αν είναι ενσωματωμένο στον πυρήνα θα χρειαστεί να ξαναμεταγλωττίσετε τον πυρήνα με το lp ως module (μια πολύ καλύτερη λύση). Ξανά χρησιμοποιώ τα ονόματα one και two ως παράδειγμα. Στο one θα χρειαστεί να κάνετε τα παρακάτω. Εάν δεν χρησιμοποιείτε το kerneld και έχετε το PLIP ως module, πρέπει να το φορτώσετε: <tscreen><verb> # insmod plip </verb></tscreen> <bf>ΣΗΜΕΙΩΣΗ</bf>: αν η παράλληλη θύρα σας είναι σε διαφορετικό IRQ από το 7 και/ή χρησιμοποιεί διαφορετική IO διεύθυνση από την 0χ378, τότε πρέπει να το πείτε στο insmod. Βρείτε το IRQ και IO διεύθυνση (η DOS εντολή MSD μάλλον θα βοηθήσει, αν και μην την εμπιστεύεστε και πολύ) και γράψτε κάτι σαν αυτό: <tscreen><verb> # insmod plip io=0x278 irq=5 </verb></tscreen> Συνήθως το IRQ είναι 7 ή 5, με την IO διεύθυνση 0x378, 0x278 ή 0χ3bc. Είναι σημαντικό να ελέγξετε ότι η διεύθυνση και το IRQ συμπίπτουν με τις ρυθμίσεις της μητρικής κάρτας σας (με βραχυκυκλωτήρες στις παλιές, μέσω του BIOS στις καινούριες) Αν θέλετε ελέγξτε ότι το module φορτώθηκε με: <tscreen><verb> # lsmod Module: #pages: Used by: plip 3 0 </verb></tscreen> Σημειώστε το όνομα της σύνδεσης (plip0, plip1, κοκ; για περισσότερες λεπτομέρειες διαβάστε το κεφάλαιο με τα μυνήματα του πυρήνα παραπάνω), και ρυθμίστε τη σύνδεση: <tscreen><verb> # ifconfig plip1 one pointopoint two up </verb></tscreen> <bf>ΣΗΜΕΙΩΣΗ</bf>: αν η παράλληλη θύρα σας είναι σε διαφορετικό IRQ από το 7 και/ή χρησιμοποιεί διαφορετική IO διεύθυνση από την 0χ378, τότε πρέπει να το πείτε στο ifconfig. Χρησιμοποιήστε το ίδιο IRQ και IO διεύθυνση που αναφέρθηκε από τον πυρήνα και γράψτε τα παρακάτω: <tscreen><verb> # ifconfig plip1 irq 7 # ifconfig plip1 io_addr 0x3bc </verb></tscreen> Συνήθως το IRQ είναι 7 ή 5, με την IO διεύθυνση 0x378, 0x278 ή 0χ3bc. Τώρα ελέγξτε ότι δούλεψε... <tscreen><verb> # 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 </verb></tscreen> Προσθέστε τη δίοδο στο two... <tscreen><verb> # route add two plip1 </verb></tscreen> Και αν θέλετε και NFS για το two: <tscreen><verb> # rpc.portmap # rpc.mountd # rpc.nfsd </verb></tscreen> Στο two οι εντολές είναι οι ίδιες αλλά πρέπει να γράψετε one αντί για two και αντίστροφα. Ένα από τα μηχανήματα είναι πιθανόν να έχει μόνο την PLIP σύνδεση, οπότε αν αυτό αληθεύει για το two, μπορείτε να γράψετε: <tscreen><verb> # route add default gw one </verb></tscreen> στο μηχάνημα. Στο παράδειγμά μου παραπάνω, το two είναι ένας φορητός με μόνο PLIP σύνδεση με το one, όποτε το παραπάνω το έγραψα στο two. Τέλος ελέγξτε με <tscreen><verb> # ping two </verb></tscreen> από το one και <tscreen><verb> # ping one </verb></tscreen> από το two για να δείτε ότι όλα δουλεύουν εντάξει. Φυσικά μπορείτε να έχετε όλες αυτές τις εντολές να εκτελούνται αυτόματα από ένα script κατά την εκκίνηση. Πρέπει να δημιουργήσετε ένα script που εκτελεί αυτές μόνο τις εντολές: έτσι μπορείτε να το ενεργοποιείτε ως υπερχρήστης όποτε χρειάζετε, ή μπορείτε να το προσθέσετε στο /etc/rc.d/rc.inet2 για να καλείτε κατά την εκκίνηση του συστήματος. Για να ρυθμίσετε το PLIP, μπορείτε να χρησιμοποιήσετε την εντολή plipconfig, δείτε τη man σελίδα της για περισσότερες οδηγίες. Για να διακόψετε τη σύνδεση χρειάζεστε: <tscreen><verb> # ifconfig plip1 down </verb></tscreen> που αφαιρεί και τις εγγραφές της σύνδεσης. Εάν δεν έχετε το kerneld αφαιρέστε και το module: <tscreen><verb> # rmmod plip </verb></tscreen> <sect>FAQ. <p> Αυτό το τμήμα θα προσπαθήσει να λύσει τα προβλήματά σας. Εάν έχετε περισσότερες ερωτήσεις, νιώστε ελεύθεροι να μου στείλετε email οποτεδήποτε. <itemize> <item>Λαμβάνω τα παρακάτω μυνήματα κατά την εκκίνηση (ή όταν φορτώνω το plip module): <tscreen><verb> SIOCSIFADDR: No such device SIOCADDRT: Network is unreachable </verb></tscreen> και όταν προσπαθώ να στήσω τη σύνδεση όπως γράφεται παραπάνω, ξαναπαίρνω μυνήματα λάθους όπως: <tscreen><verb> SIOCSIFADDR: No such device SIOCSIFDSTADDR: No such device SIOCADDRT: Network is unreachable mount clntudp_create: RPC: Port Mapper failure - RPC: Unable to send </verb></tscreen> <itemize> <item>Ο πυρήνας, για κάποιο λόγο, δεν έχει ενεργοποιημένη υποστήριξη PLIP. Αυτό θα μπορούσε να γίνεται λόγω: <itemize> <item>Δεν απαντήσατε ναι στο "PLIP support?" κατά τη ρύθμιση του πυρήνα. <item>Απαντήσατε ναι στο "Printer support?" κατά τη ρύθμιση του πυρήνα. <item>Ετοιμάσατε το PLIP ως module, οπότε πρέπει να το φορτώσετε. <item>Χρησιμοποιείτε λάθος θύρα, πχ γράψατε plip1 αντί για plip0. </itemize> </itemize> <item>Υπάρχει τρόπος να υποστηριχθούν τα PLIP και LP, εκτός από modules, ίσως με δύο παράλληλες θύρες; <itemize> <item>Ναι, μέχρι στιγμής δύο τρόποι, που περιγράφονται στο "Προσθήκες για να έχετε PLIP και LP μαζί": <itemize> <item>Μπορείτε να χρησιμοποιήσετε την προσθήκη για να έχετε υποστήριξη του πυρήνα και για τα δύο. <item>Μπορείτε να χρησιμοποιήσετε την προσθήκη για να έχετε υποστήριξη του πυρήνα σε μια παράλληλη θύρα για το PLIP και σε άλλη για το LP. </itemize> </itemize> <item>Δημιούργησα ένα script που συνδέει τους 2 υπολογιστές. Η σύνδεση γίνεται αυτόματα από το rc.inet2, όπου καλώ το script που δημιουργεί τη σύνδεση και ξεκινά το NFS. Ο υπολογιστής "two" προσαρτά μερικούς από τους καταλόγους του "one". Έχω προσθέσει τις σωστές εντολές στο /etc/fstab του "two". Εάν εκκινήσω το "two" όταν το "one" είναι κλειστό, το "two" σταματά για μερικά λεπτά στο "mounting remote file systems...". <itemize> <item>Αυτό συμβαίνει επειδή ο "two" περιμένει να προσαρτήσει τα αρχεία του "one", αλλά εφόσον ο "one" δε λειτουργεί πρέπει να περιμένετε μέχρι ο "two" να βαρεθεί να περιμένει. Για να το αποφύγετε πρέπει: <itemize> <item>Αφαιρέστε την εντολή από το rc.inet2 που προσαρτά τα απομακρυσμένα αρχεία <item>Αφαιρέστε από το /etc/fstab του two τις εγγραφές των απομακρυσμένων συστημάτων αρχείων και προσαρτήστε τα χειροκίνητα όταν τα χρειαστείτε. <item>Μια καλύτερη λύση είναι ο two να βρίσκει αν ο one λειτουργεί και τότε να προσαρτήσει τους καταλόγους. Αυτό μπορεί να γίνει μετατρέποντας την mount εντολή στο rc.d (ή όπου αλλού βρίσκεται) με τα παρακάτω: <code> if ping -c 5 one ; then mount one:/..... fi </code> </itemize> </itemize> <item>Η σύνδεσή μου δουλεύει αλλά το ping αποτυγχάνει. Λαμβάνω το παρακάτω μύνημα από τον πυρήνα: <tscreen><verb> plip1: timed out (1, 89) </verb></tscreen> ή παρόμοια μυνήματα. <itemize> <item>Αυτό σημαίνει ότι "η δίκη σας πλευρά της σύνδεσης" δουλεύει, το μηχάνημά σας στέλνει το σήμα αλλά η "άλλη πλευρά" δεν απαντά ή δεν περιμένει στα σωστά IRQ/IO διεύθυνση. Αυτό είναι το πιο κοινό πρόβλημα και, έτσι, έχει πολλές αιτίες, συνήθως κακή καλωδίωση ή λάθος IRQ και/ή IO διευθύνσεις. Τα λάθος IRQ είναι η πηγή άνω των 60% των προβλημάτων, οπότε είναι πολύ πιθανόν αλλάζοντάς το να λυθεί και το πρόβλημα. Μια λεπτομερής λίστα πιθανών προβλημάτων: <itemize> <item>Το καλώδιο δεν είναι συνδεμένο σωστά ή είναι χαλασμένο ή κακοφτιαγμένο. Ελέγξτε το, αν είναι δυνατόν, μεταξύ δυο Linux υπολογιστών όπου ήδη δουλεύει το PLIP. Εάν αυτό δεν είναι δυνατόν τότε δοκιμάστε το τουλάχιστον με ένα tester. Το γεγονός ότι το καλώδιο δούλεψε/δεν δούλεψε στο DOS/Win95 είναι ένας καλός/κακός οιωνός αλλά δεν είναι απόδειξη. <item>Στην "άλλη πλευρά" δε λειτουργεί το PLIP. <item>Είστε συνδεμένοι με ένα φορητό με μη κανονική παράλληλη θύρα, δείτε παρακάτω. <item>Έχετε μια πολύ φτηνή παράλληλη θύρα που είναι μια απλή θύρα "εκτυπωτή" όποτε δεν είναι δυνατόν να στέλνετε και να λαμβάνετε. <item>Η παράλληλη θύρα σας δεν είναι ρυθμισμένη (τουλάχιστον) ως bi-directional. Διορθώστε το στο BIOS. Προχωρημένες επιλογές όπως EPP και ΕCP είναι κατάλληλες. <item>Οι παράλληλες θύρες έχουν διαφορετικό IRQ, οπότε θα πρέπει να φορτώσετε το plip module (ή το lp module) με διαφορετικό IRQ. Πηγαίνετε πίσω στο κεφάλαιο "Ενεργοποιώντας την σύνδεση" και επιλέξτε διαφορετικό IRQ. <item>Κάποια άλλη συσκευή χρησιμοποιεί το IRQ (που συνήθως είναι 7), μάλλον η κάρτα ήχου. Μην εμπιστεύεστε προγράμματα του DOS όπως το MSD, αντίθετα προσπαθήστε να φορτώσετε το plip module με διαφορετικό IRQ. </itemize> </itemize> <item>Έβαλα το σωστό IRQ και IO διεύθυνση αλλά πάλι δε δουλεύει. Παίρνω τις διευθύνσεις από το MSD. <itemize> <item>Μου αναφέρθηκε ότι το MSD δίνει λάθος διευθύνσεις. Δοκιμάστε αυτό το πρόγραμμα: http://www.cs.caltech.edu/~huny/para13.zip. </itemize> <item>Η σύνδεσή μου δουλεύει και το ping επίσης. Μερικές φορές παίρνω το παρακάτω μύνημα από τον πυρήνα: <tscreen><verb> plip1: timed out (1, 89) </verb></tscreen> ή παρόμοια μυνήματα. <itemize> <item> Αυτό σημαίνει ότι η άλλη πλευρά δεν απάντησε εντός ενός χρονικού ορίου. Αν όλα δουλεύουν σωστά μπορείτε να αγνοήσετε τέτοια μυνήματα: συνήθως σημαίνει ότι η άλλη πλευρά είναι πολύ πιο αργή από τη δική σας, είτε λόγω εξοπλισμού είτε λόγω φορτίου. Μπορείτε να ρυθμίσετε το PLIP με την εντολή plipconfig. </itemize> <item>Έχω εγκαταστήσει το PLIP αλλά όταν χρησιμοποιώ το ping έχω 100% απώλεια δεδομένων. Έχω συνδέσει τον υπολογιστή μου με ένα φορητό. <itemize> <item>Οι παράλληλες θύρες μερικών φορητών δεν κάνουν για PLIP, επειδή είναι απλές θύρες εκτυπωτή, δηλαδή μπορούν μόνο να μεταδίδουν δεδομένα αλλά όχι και να λαμβάνουν. Μέχρι στιγμής δεν ξέρω αν κάποιος κατάφερε να τις κάνει να δουλέψουν. Η μόνη ελπίδα είναι: <itemize> <item>Κοιτάξτε τις ρυθμίσεις του φορητού, ίσως υπάρχει τρόπος να ρυθμίσετε τη θύρα ως παράλληλη αντί για θύρα εκτυπωτή. Συνήθως αυτό ονομάζεται "parallel enhanced mode". <item>Δοκιμάστε plip mode 0. Δεν ξέρω πως να το κάνετε και/ή αν δουλεύει ή αν είναι ακόμα διαθέσιμο στους τελευταίους πυρήνες. </itemize> </itemize> <item>Τι ταχύτητες μπορώ να επιτύχω με το PLIP? <itemize> <item>Αυτή είναι μια δύσκολη ερώτηση για να απαντηθεί, αφού εξαρτάται από ΠΟΛΛΟΥΣ παράγοντες που επηρεάζουν δραστικά την απόδοση: <itemize> <item>Την ταχύτητα του επεξεργαστή και από τις δυο πλευρές της σύνδεσης. <item>Τον τύπο της παράλληλης θύρας και τις ρυθμίσεις. <item>Το φορτίο του υπολογιστή. <item>Για τι χρησιμοποιείται το PLIP. </itemize> Χοντρικά, θα πρέπει να επιτύχετε περίπου 40kbytes/δευτερόλεπτο, πολύ καλύτερα από σειριακή σύνδεση και κοντά σε κάρτες ethernet χαμηλής απόδοσης. </itemize> <item>Τι συμβαίνει αν χρειάζομαι να σηκώνω και να κλείνω τη σύνδεση plip1 πολλές φορές με το ifconfig; <itemize> <item>Μου φαίνεται ότι πρέπει να προσθέσετε την παράμετρο -arp στο ifconfig, εκτός από την πρώτη φορά μετά από κάθε εκκίνηση. Εγώ δεν το χρειάζομαι αλλά κάποιος μπορεί να το χρειαστεί. </itemize> <item>Διάβασα τις IP διευθύνσεις που ανήκουν σε απομονωμένα δίκτυα και τα 200.0.0.1 και 200.0.0.2 που χρησιμοποιείς είναι έξω από αυτές. Δε θα έπρεπε να αλλάξουν; <itemize> <item>Ναι, πρέπει. Άλλα όπως ανέφερα στην αρχή, διάλεξα αυτές τις διευθύνσεις για την απλότητά τους. Είστε ελεύθεροι να τις αλλάξετε όπως θέλετε. Ένα απόσπασμα από το NET-2-HOWTO: <tscreen><verb> RFC1597 has specifically reserved some IP addresses for private networks. You should use these as they prevent anything nasty happening if you accidentally get connected to the Internet. The addresses reserved are: 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 </verb></tscreen> </itemize> <item>Υπάρχει τρόπος να ρυθμίσω τις παραμέτρους του PLIP χωρίς να πειράξω τον πηγαίο κώδικα; <itemize> <item>Ναι υπάρχει. Δοκιμάστε την εντολή /sbin/plipconfig. Δείτε τη man σελίδα της για περισσότερες πληροφορίες. </itemize> <item>Τρέχω Debian GNU/Linux και, κάτω από το Debian, τα αρχεία /etc/rc.d/rc.inet1 και 2 δεν υπάρχουν. Που θα γράψω τις εντολές για το plip. <itemize> <item>Στο Debian GNU/Linux πρέπει να κοιτάξετε το /etc/init.d/network, όπου θα βάλετε όλες τις εντολές που θα πήγαιναν κανονικά στα rc.inet1 και 2. </itemize> <item>Έχω μερικά προβλήματα συνδέοντας δυο υπολογιστές με το PLIP. Ο πρώτος έχει την τελευταία έκδοση του πυρήνα ενώ ο δεύτερος έχει PLIP έκδοση 1.0.χ: υπάρχει πρόβλημα; <itemize> <item>Ναι, είναι πολύ καλύτερα, αν είναι δυνατόν να υπάρχει η ίδια έκδοση PLIP και στις δυο άκρες. Στο plip.c είναι γραμμένο ότι το PLIP δε μπορεί να λειτουργήσει με 1.0.xx PLIP. </itemize> <item>Ωραία, το PLIP δουλεύει με 4 bits, τι γίνεται με το PLIP των 8 bits που διάβασα στην τεκμηρίωση του πυρήνα; Νομίζω ότι λέγεται Mode 1. <itemize> <item>Αυτό το mini-HOWTO είναι για τις ρυθμίσεις. Για τεχνικές πληροφορίες δείτε τα /usr/src/linux/drivers/net/README*.PLIP ή επικοινωνήστε με τον συγγραφέα. Το μόνο που ξέρω είναι: το κανονικό PLIP χρησιμοποιεί "null printer" καλώδια και το Mode 0 (μην το μπερδεύετε με το plip0, που είναι όνομα σύνδεσης) χρησιμοποιεί 4 bits. Το Mode 1 χρησιμοποιεί 8 bits και θα πρέπει να είναι ήδη διαθέσιμο αλλά θα χρειαστεί ένα ειδικά φτιαγμένο καλώδιο και δουλεύει μόνο μεταξύ δυο υπολογιστών Linux. Δεν ξέρω, εφόσον έχετε το καλώδιο, πως να κάνετε σύνδεση PLIP σε Mode 1. Εάν κάποιος ξέρει, παρακαλώ να μου πει κι εμένα. </itemize> </itemize> <sect>Προσθήκες για να έχετε PLIP και LP μαζί. <p> Ο καλύτερος τρόπος για να έχετε τα PLIP και LP μαζί είναι με τη χρήση modules: μπορείτε να φορτώσετε το plip.o και να το ξεφορτώσετε όταν θέλετε να τυπώσετε και αντίστροφα. Εάν θέλετε να χρησιμοποιήσετε τα PLIP και LP ταυτόχρονο, δοκιμάστε τις παρακάτω προσθήκες. <sect1>PLIP και LP μαζί στην ίδια θύρα. <p> Εάν για κάποιο λόγο θέλετε τα PLIP και LP να υποστηρίζονται απευθείας από τον πυρήνα, μπορείτε να δοκιμάσετε τις παρακάτω προσθήκες. Πρέπει να πειράξετε τον παρακάτω κώδικα, αλλά <em>κρατήστε αντίγραφα</em> των αρχείων που θα αλλάξετε: <p> <code> ******** 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 = { &dquot;plip2&dquot;, 0, 0, 0, 0, 0x278, 2, 0, 0, 0, NEXT_DEV, plip_init, }; static struct device plip1_dev = { &dquot;plip1&dquot;, 0, 0, 0, 0, 0x378, 7, 0, 0, 0, &plip2_dev, plip_init, }; /* static struct device plip0_dev = { &dquot;plip0&dquot;, 0, 0, 0, 0, 0x3BC, 5, 0, 0, 0, &plip1_dev, plip_init, }; */ # undef NEXT_DEV # define NEXT_DEV (&plip1_dev) #endif /* PLIP */ </code> Φυσικά υπάρχει και η συνηθισμένη αποκύρηξη ευθυνών: <em> έλαβα τις παραπάνω προσθήκες και τις παρουσιάζω "όπως τις πήρα". Αυτό σημαίνει ότι τις δοκιμάζετε με δικής σας ευθύνη.</em> Όπως και να έχει, το μόνο πρόβλημα θα είναι η απλή επαναφορά των αρχείων και η μεταγλώττιση. <sect1>PLIP και LP σε διαφορετικές θύρες. <p> Εάν έχετε τουλάχιστον 2 παράλληλες θύρες μπορείτε να δοκιμάσετε αυτές τις προσθήκες που επιτρέπουν την χρήση του PLIP σε μια θύρα και του LP σε άλλη. <p> <enum> <item>Μετατρέψτε σε σχόλιο την παρακάτω γραμμή στο αρχείο drivers/char/lp.c. <code> 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 </code> <item>Διαμόρφωση πυρήνα. <tscreen><verb> PLIP (parallel port) support (CONFIG_PLIP) [n] y Parallel Printer support [y] y </verb></tscreen> <item>Μυνήματα πυρήνα κατά την εκκίνηση. <tscreen><verb> lp1 at 0x0378, using polling driver ..... NET3 PLIP version 2.0 gniibe@mri.co.jp plip2: Parallel port at 0x278, using assigned IRQ 5. </verb></tscreen> </enum> Ξανά αποκύρηξη ευθυνών όπως στο τμήμα 8.1. <sect>PLIP σύνδεση μεταξύ DOS και Linux <p> Μετά την πρώτη έκδοση αυτού του mini-HOWTO πολλοί με ρώτησαν πως μπορεί να γίνει σύνδεση μεταξύ Linux και DOS (ή Windows). Το γενικό ενδιαφέρον με ώθησε σε αυτό το κεφάλαιο που ελπίζω να σας βοηθήσει. Το τμήμα αυτό προέρχεται από ένα άρθρο που βρήκα στη Linux Gazzete του James McDuffie <mcduffie@scsn.net> . Καλύπτει τη βασική εγκατάσταση PLIP σύνδεσης μεταξύ ενός υπολογιστή Linux και ενός DOS, χρησιμοποιώντας Windows και το Trumpet WinSock και δίνει τη διεύθυνση ενός φοβερού προγράμματος που σας επιτρέπει να τρέχετε X-Windows στα Windows. Το τελευταίο τμήμα είναι προσθήκη από τον James Vahn <url url="mailto:jvahn@short.circuit.com" name="jvahn@short.circuit.com"> όπου περιγράφει σε βάθος πως να στήσετε τη σύνδεση και να λύσετε πολλά προβλήματα. <bf>Για οποιεσδήποτε ερωτήσεις σε αυτό το κεφάλαιο επικοινωνήστε μαζί του, όχι με εμένα.</bf> <sect1>DOS-Linux σύνδεση. <p> Υποθέτω ότι έχετε ήδη ρυθμίσει σωστά το PLIP από την πλευρά του Linux και έχετε το σωστό καλώδιο, αλλιώς πηγαίνετε πίσω στα προηγούμενα κεφάλαια. Από την πλευρά του DOS, θα χρειαστείτε πρώτα από όλα έναν οδηγό. Μπορείτε να τον βρείτε στο: <url url="ftp://ftp.crynwr.com/drivers/plip.zip" name="ftp://ftp.crynwr.com/drivers/plip.zip"> Το πρόγραμμα τρέχει κάτω από DOS και δρα σαν Ethernet Packet driver. Αν θέλετε να χρησιμοποιήσετε το PLIP με Windows θα χρειαστείτε και το Trumpet Winsock. Αυτό λειτουργεί σαν TCP/IP διασύνδεση. Διαφορετικά, μάλλον μπορείτε να βρείτε προγράμματα TCP/IP για DOS. Τώρα, πηγαίνετε πίσω στο υπολογιστή με το Linux και δώστε του την διεύθυνση του DOS υπολογιστή στο /etc/hosts. Αν ο DOS υπολογιστής σας δεν έχει δηλωμένη IP διεύθυνση μπορείτε να διαλέξετε μια οποιαδήποτε (αλλά θυμηθείτε την προειδοποίηση του κεφαλαίου 3 για IP διευθύνσεις). Υποθέτω ότι δώσατε το όνομα linux στον Linux υπολογιστή και dos στον DOS υπολογιστή. Πρέπει να γράψετε: <tscreen><verb> ifconfig plip1 linux pointopoint dos arp up route add dos </verb></tscreen> Φυσικά αν θέλετε να το κάνετε αυτό κάθε φορά που ξεκινάτε τον Linux υπολογιστή μπορείτε να προσθέσετε τα παρακάτω στο /etc/rc.d/rc.inet1: <code> /sbin/ifconfig plip1 linux pointopoint dos arp up /sbin/route add dos </code> Αυτό ρυθμίζει τη σύνδεση και προσθέτει τη δίοδο. Φυσικά αν χρησιμοποιείτε τη δεύτερη παράλληλη θύρα πρέπει να γράψετε plip2. Πηγαίνετε πίσω στον DOS/Windows υπολογιστή και ανοίξτε το autoexec.bat, όπου θα προσθέσετε τις γραμμές που ακολουθούν: <code> c:\plip\plip.com 0x60 c:\tcpip\winsock\winpkt.com 0x60 </code> Φυσικά υποθέτω ότι βάλατε το plip.com (τον packet driver) στον κατάλογο c:/plip και το winpkt.com στο c:/tcpip, αλλιώς θα χρειαστεί να βάλετε το σωστό μονοπάτι. Αυτό ρυθμίζει το πρόγραμμα plip.com σε διάνυσμα 0χ60 και φορτώνει το winpkt.com που έρχεται με το trumpet winsock στο ίδιο διάνυσμα. Εάν το καλώδιο δεν είναι στην lpt1 θα χρειαστεί να πείτε στο plip.com το σωστό IRQ και την IO διεύθυνση. Επίσης, το winpkt.com χρειάζεται να τρέχει για να είναι διαθέσιμο το διάνυσμα στα Windows. Από εκεί και πέρα πηγαίνουμε στη ρύθμιση του Trumpet Winsock. Το μόνο που χρειάζεται είναι να διαλέξετε SLIP ή PPP και να βάλετε 60 στο κουτί Packet vector. Μετά του λέτε την IP διεύθυνση που του δώσατε, την IP διεύθυνση του Linux υπολογιστή ως την πύλη(gateway) και ως διακομιστή (Name server) το όνομα του υπολογιστή ή του ISP σας, εάν πρόκειται να συνδεθείτε στο internet (περισσότερα για αυτό αργότερα). Κλείστε τις ρυθμίσεις και ξανατρέξτε το Winsock και είστε έτοιμοι!Βάλτε το winsock στο startup group και θα τα έχετε όλα έτοιμα αυτόματα! Εάν θέλετε να έχετε πρόσβαση στο internet μέσω του Linux υπολογιστή από τα Windows θα χρειαστεί να χρησιμοποιήσετε IP Masquerading, για πληροφορίες δείτε το NET-2-HOWTO. Αυτό απλά αποκρύπτει τα Windows πίσω από την IP διεύθυνση του Linux. Επίσης, βρήκα ένα πρόγραμμα που σας επιτρέπει να τρέχετε X-Windows στα Windows!Βρίσκεται στο: <url url="http://www.tucows.com/" name="http://www.tucows.com/"> Ρυθμίστε το σύμφωνα με τις οδηγίες και απλά θα κάνετε telnet από τα Windows και θα ρυθμίσετε την οθόνη ως αυτή των Windows (πχ `DISPLAY=duncan:0.0`) και τρέχετε τα προγράμματα κανονικά. Δεν υπάρχει τίποτα καλύτερο από το να τρέχετε xv στα Windows!Ελπίζω να σας βοήθησα. <sect1>Μια DOS-Linux PLIP εμπειρία. <p> <bf>ΣΗΜΕΙΩΣΗ:</bf> Τα παρακάτω τα έλαβα από τον James Vahn <url url="mailto:jvahn@short.circuit.com" name="jvahn@short.circuit.com">. Τα έβαλα όπως τα παρέλαβα. Αυτό σημαίνει ότι <bf>για οποιεσδήποτε ερωτήσεις σχετικά με αυτό το τμήμα έχει πολύ περισσότερη εμπειρία από εμένα, οπότε στείλτε email σε αυτόν κι όχι εμένα</bf>. Η εμπειρία του με μια σύνδεση PLIP ενός DOS υπολογιστή με δισκέτα μόνο με Linux είναι ένα τέλειο παράδειγμα για το πως να λύσετε κοινά προβλήματα. <bf>Τελευταία ανανέωση 11 Ιουλίου 1996</bf> Το DOS κουτί μου (με οδηγό δισκέτας ΜΟΝΟ) είναι δικτυωμένο μέσω PLIP από τη δεύτερη παράλληλη θύρα στο Linux μηχάνημα. Η πρώτη θύρα του Linux μηχανήματος έχει συνδεμένο τον εκτυπωτή, και τα δυο είναι μόνιμα συνδεμένα και κάνω telnet στο Linux. Εδώ είναι οι σημειώσεις μου για το πως τα κατάφερα. Όταν ο πυρήνας ψάχνει για θύρες εκτυπωτή, θα τις πάρει όλες εκτός αν τις αφαιρέσετε χειροκίνητα. Διαφορετικά το PLIP δε θα βρει καμία. Μια μέθοδος είναι να φορτώνετε τους οδηγούς ως modules όταν τους χρειάζεστε... Ο <gniibe@mri.co.jp> γράφει: Συνέχει συνιστώ να έχετε τα PLIP/LP ως modules, εφόσον I keep recommending using PLIP/LP as kernel module, since <itemize> <item>Είναι πιο εύχρηστα κατά τις ρυθμίσεις <item>η (ανά)μεταγλώττιση του πυρήνα δεν είναι εύκολη για αρχάριους <item>η συνύπαρξη PLIP και LP είναι δυνατή μόνο με modules </itemize> <p> Με τα PLIP/LP ως modules, μπορείτε να ρυθμίσετε ποια θύρα θα χρησιμοποιεί το PLIP και ποια το LP. Ένα παράδειγμα: <tscreen><verb> # insmod lp.o io=0x378 # insmod plip.o io=0x278 irq=2 </verb></tscreen> Ή μπορείτε να χρησιμοποιείτε δυο παράλληλες θύρες: <tscreen><verb> # insmod plip.o io=0x278,0x3bc irq=2,5 </verb></tscreen> Στο παραπάνω παράδειγμα <p> το plip0 ρυθμίζεται στο 0x278 και το irq του ως 2, <p> το plip1 ρυθμίζεται στο 0x3bc και το irq του ως 5, αντίστοιχα. <p> Η χρήση modules είναι μάλλον μονόδρομος. Η παρακάτω μέθοδος δείχνει πως να "πειράξετε" τον πυρήνα ώστε να έχετε εκτυπωτή και PLIP σε διαφορετικές θύρες χωρίς τη χρήση modules. Εάν η χρήση modules δε σας είναι εύκολη μπορεί να βρείτε τα παρακάτω πιο γρήγορα. Θα χρειαστεί να αλλάξετε δυο αρχεία στο κώδικα του πυρήνα. Χρησιμοποιώ πυρήνα 1.2.13 και βρήκα ότι μερικές αλλαγές χρειάζονται στο ../linux/drivers/net/Space.c για το σύστημά μου. Κοιτάξτε γύρω από τη γραμμή 205 για τον ορισμό του PLIp για να κάνετε την θύρα και το IRQ της να ταιριάζουν, και σημειώστε ποιον οδηγό χρειάζεστε (plip0, plip1, plip2). Στην περίπτωσή μου η θύρα 0χ278 χρησιμοποιεί IRQ 5 (η κάρτα είναι ρυθμισμένη έτσι) αλλά στο Space.c είναι με IRQ 2. Έκανα τις αλλαγές εδώ παρά να ανοίγω το μηχάνημα και να ψάχνω τις κάρτες. Ο άλλος τρόπος είναι να δηλώσετε το IRQ με το ifconfig αργότερα, αλλά ο πυρήνας θα ξεκινήσει με τα λάθος IRQ για το PLIP και αυτό να σας ενοχλεί. Είναι μια απλή αλλαγή (ενός χαρακτήρα). Το επόμενο, και δυσκολότερο, βήμα: <p> Στο .../drivers/char/lp.c θα βρείτε τα παρακάτω περίπου στη γραμμή 38: <code> 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 </code> <p> Προσέξτε τις αλλαγές που γίνονται- η μια θύρα αφαιρείται, οπότε μόνο δυο θύρες δηλώνονται. Η θύρα 0x3BC μάλλον δε θα δουλέψει για το PLIP- η γραμμή με τα IRQ συνήθως σπάει σε αυτές τις θύρες. Πήρατε αντίγραφο πριν αλλάξετε τα αρχεία, σωστά; Τώρα ετοιμάστε ένα νέο πυρήνα με υποστήριξη εκτυπωτή, δικτύου, dummy και plip. Ρυθμίστε το σύστημα. Το δικό μου /etc/rc.d/rc.inet1: <code> #!/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 </code> <p> Προσέξτε ότι το arp χρησιμοποιείται σε DOS-to-Linux συνδέσεις, όχι σε Linux-to-Linux συνδέσεις. Και στο /etc/hosts προσθέστε τα παρακάτω, για να δώσετε από ένα όνομα στα δυο μηχανήματα: <code> 200.0.0.1 console1 200.0.0.2 console2 </code> Το DOS είναι η console2. Προσέξτε την προειδοποίηση του Andrea, καλύτερα να χρησιμοποιήσετε τις επίσημες διευθύνσεις. Επανεκκινήστε ώστε όλες οι αλλαγές και ο νέος πυρήνας να ενεργοποιηθούν. Κατά την εκκίνηση (ή με το dmesg) αν βάλατε τις προσθήκες, ή αλλιώς όταν φορτώσετε τα modules θα δείτε: <tscreen><verb> 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. </verb></tscreen> Η εντολή "route" δείχνει: <tscreen><verb> 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 </verb></tscreen> Και το "ifconfig plip1" δείχνει: <tscreen><verb> 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 </verb></tscreen> Κοιτάξτε το /etc/inted.conf και δείτε αν το telnet είναι ενεργοποιημένο. Μπορεί να θέλετε να διαβάσετε το man του tcpd, και να χρησιμοποιήσετε το /etc/hosts.allow (ALL: LOCAL) και /etc/hosts.deny (ALL: ALL). Θα πρέπει να μπορείτε να κάνετε "telnet localhost". Το Linux είναι έτοιμο, πάμε στο DOS. Ξανά να προσέχετε για τη θύρα 0χ3BC εάν υπάρχει. Χρησιμοποιώ το ΝCSA telnet και τον οδηγό PLIP της Crynwr, που βρίσκονται στις παρακάτω διευθύνσεις: <url url="ftp://ftp.ncsa.uiuc.edu/Telnet/DOS/ncsa/tel2308b.zip" name="ftp://ftp.ncsa.uiuc.edu/Telnet/DOS/ncsa/tel2308b.zip"> <p><url url="ftp://ftp.crynwr.com/drivers/plip.zip" name="ftp://ftp.crynwr.com/drivers/plip.zip"> Σιγουρευτείτε ότι έχετε την έκδοση 2.3.08 του NCSA telnet και την έκδοση 11.1 του Crynwr PLIP οδηγού. Διαβάστε το Crynwr SUPPORT.DOC. Το CONFIG.TEL αρχείο: Τα περισσότερα είναι οι εξ'ορισμού ρυθμίσεις όποτε το έκοψα για να γλιτώσω λίγο χώρο βάζοντας μόνο τις πληροφορίες που χρειάζεστε (ελπίζω). Η δεύτερη θύρα του μηχανήματος είναι στο 0χ278, IRQ 5. <code> 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 </code> (console1 είναι το όνομα του Linux μηχανήματος, χρησιμοποιήστε ό,τι θέλετε) <p> Έκανα ένα καλώδιο 4 μέτρων για τη σύνδεση και (αφού αρχικά βρήκα ότι ήταν λάθος φτιαγμένο) δεν υπήρξε κανένα πρόβλημα. Ένα κοινό καλώδιο εκτυπωτών 11-συνδέσεων θα δουλέψει κανονικά. Το Linux plip.c δείχνει την καλωδίωση. Αν και το δικό μου έχει συνδέσεις 17-17 δε νομίζω ότι χρειάζεται για τίποτα και δεν υπάρχει και σε έτοιμα καλώδια. <code> @echo off plip.com 0x60 5 0x278 telbin -s console1 </code> Αυτό θα σας συνδέσει στο Linux στο /dev/ttyp. To telnet του NCSA δίνει 8 οθόνες και λειτουργεί και σαν ftp server. Το PLIP πετυχαίνει μια μέτρια απόδοση, πιάνω 6.5Κ/δευτερόλεπτο για μεταφορές αρχείων με τις αντίκες μου. Ελπίζω να πετύχετε περισσότερα. :-) <sect>PLIP μεταξύ Linux και Windows 95. <p> Αυτό το τμήμα είναι κενό. Χρησιμοποιώ windows 95 για τίποτα εκτός από παιχνίδια, οπότε δεν προσπαθώ και δε με ενδιαφέρει μια PLIP σύνδεση με Linux. Οι ερωτήσεις για μια τέτοια σύνδεση παίρνουν την παρακάτω απόλυτη (για την ώρα) απάντηση. Μέχρι στιγμής κανένας δεν έχει αναφέρει επιτυχή σύνδεση μεταξύ Linux και Windows 95. Εάν κάποιος τα καταφέρει να μου το πει αμέσως: υπάρχουν χιλιάδες χρήστες PLIP που περιμένουν την απάντηση! <sect>Ερωτήσεις; Σχόλια; Στείλτε τα... <p> Για οποιεσδήποτε ερωτήσεις και σχόλια μπορείτε να με βρείτε μέσω email στη διεύθυνση <url url="mailto:controzz@cli.di.unipi.it" name="controzz@cli.di.unipi.it"> Τα σχόλια είναι ευπρόσδεκτα, οι αναφορές λαθών ανεκτίμητες. Η επόμενη έκδοση θα έχει ακόμα μεγαλύτερο τμήμα FAQ, αν στείλετε ερωτήσεις και, φυσικά, τις απαντήσεις αν τις έχετε. Μην στέλνετε ερωτήσεις που ήδη υπάρχουν στο FAQ. Εάν θέλετε να ζητήσετε τη βοήθειά μου, δώστε μου όσες περισσότερες πληροφορίες μπορούν να με βοηθήσουν, τουλάχιστον: έκδοση πυρήνα, εντολές που χρησιμοποιήθηκαν, μυνήματα λάθους, το καλώδιο που χρησιμοποιήσατε και ό,τι άλλα μυνήματα πήρατε σχετικά με το PLIP. <bf>Θυμηθείτε να μην μου στείλετε ερωτήσεις σχετικά με το PLIΡ και DOS/Windows 3.1, δε μπορώ να σας βοηθήσω. Τέτοιες ερωτήσεις να στέλνονται στον James Vahn <url url="mailto:jvahn@short.circuit.com" name="jvahn@short.circuit.com">, που έστειλε το τμήμα για το DOS. Ξανά, είναι άσκοπο να τον ρωτήσετε (ή εμένα) για το PLIP με Windows 95.</bf> <sect>Που να βρείτε νέες εκδόσεις αυτού του mini-howto. <p> Αυτό το mini-HOWTO διατηρείται από τον συντονιστή των HOWTO και αναρτάται μηνιαία στο <url url="news:comp.os.linux.answers" name="comp.os.linux.answers"> και μπορεί να βρεθεί στον κατάλογο των HOWTO του sunsite ή σε αντίγραφά του. Άλλος ένας τρόπος να το βρείτε (και να επικοινωνήσετε μαζί μου) είναι στην προσωπική μου σελίδα, <url url="http://www.cli.di.unipi.it/~controzz/intro.html" name="http://www.cli.di.unipi.it/~controzz/intro.html"> (στα ιταλικά) <p><url url="http://www.cli.di.unipi.it/~controzz/intro_e.html" name="http://www.cli.di.unipi.it/~controzz/intro_e.html"> (στα αγγλικά) <sect>Credits. <p> Πολλές ευχαριστίες στους: <itemize> <item>Rick Lim <ricklim@freenet.vancouver.bc.ca> για τις προσθήκες για να έχουμε PLIP και LP ταυτόχρονα. <item>Takeshi Okazaki <GBA03552@niftyserve.or.jp> για τις προσθήκες για να έχουμε PLIP και LP σε διαφορετικές θύρες. <item>Jim Van Zandt <jrv@vanzandt.mv.com> για συμβουλές στο &dquot;tutorial&dquot; τμήμα του HOWTO. <item>Fernando Molina <fmolina@nexo.es> για χρήσιμα σχόλια για τα IRQ και IO. <item>James Vahn <jvahn@short.circuit.com> για την προσθήκη στο κεφάλαιο του PLIP ανάμεσα σε DOS και Linux. <item>Όλους τους χρήστες που έστειλαν άρθρα σχετικά με το PLIP σε ομάδες συζητήσεων ή σε εμένα προσωπικά. Η λίστα όλων όσων με βοήθησαν με πληροφορίες και σχόλια μπορεί να είναι μεγαλύτερη και από το ίδιο το mini-HOWTO: σας ευχαριστώ όλους! </itemize> <sect>Άδεια πνευματικής ιδιοκτησίας. <p> Εκτός αν έχει αλλιώς δηλωθεί, τα Linux HOWTO έγγραφα είναι πνευματική ιδιοκτησία των συγγραφέων τους. Τα Linux HOWTO έγγραφα μπορούν να αναπαραχθούν ή να διανεμηθούν ολόκληρα ή εν μέρη, σε οποιοδήποτε φυσικό ή ηλεκτρονικό μέσο, εφόσον η παρόν άδεια διατηρείται σε όλα τα αντίγραφα. Η εμπορική αναδιανομή επιτρέπεται και ενθαρρύνεται- παρόλα αυτά, ο συγγραφέας θα προτιμούσε να ειδοποιείται για τέτοιες διανομές. Όλες οι μεταφράσεις, παράγωγες εργασίες ή aggregate εργασίες που περιέχουν οποιοδήποτε Linux HOWTO έγγραφα πρέπει να καλύπτονται από αυτή την άδεια. Έτσι, δε μπορείτε να δημιουργήσετε παράγωγη εργασία από ένα HOWTO και να επιβάλλετε επιπρόσθετους περιορισμούς στην διανομή του. Εξαιρέσεις σε αυτούς τους κανόνες μπορεί να δοθούν κάτω από συγκεκριμένες συνθήκες- παρακαλώ επικοινωνήστε με τον συντονιστή των HOWTO στη διεύθυνση που δίνεται παρακάτω. Εν συντομία, επιθυμούμε να προωθήσουμε τη διάδοση αυτών των πληροφοριών μέσα από όσα περισσότερα κανάλια είναι δυνατόν. Παρόλα αυτά, επιθυμούμε να διατηρήσουμε τα πνευματικά δικαιώματα στα έγγραφα HOWTO, και θα θέλαμε να ειδοποιηθούμε για οποιαδήποτε σχέδια αναδιανομής των HOWTO. Για όποιες ερωτήσεις, παρακαλώ επικοινωνήστε με τον Greg Hankins, τον συντονιστή των HOWTO, στη διεύθυνση linux-howto@sunsite.unc.edu μέσω email. Copyright message. <p> Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs. If you have questions, please contact Greg Hankins, the Linux HOWTO coordinator, at linux-howto@sunsite.unc.edu via email. </article>