26.4. Υπηρεσία Εισόδου μέσω Επιλογικής Σύνδεσης (dial-in)

Συνεισφορά του Guy Helmer.
Προσθήκες από τον Sean Kelly.

Προειδοποίηση:

Από το FreeBSD 8.0 και μετά, τα αρχεία συσκευών των σειριακών θυρών μετονομάστηκαν από /dev/cuadN σε /dev/cuauN και από /dev/ttydN σε /dev/ttyuN. Οι χρήστες του FreeBSD 7.X θα πρέπει να προσαρμόσουν την παρακάτω τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.

Η ρύθμιση του FreeBSD συστήματος σας για είσοδο μέσω επιλογικής σύνδεσης, είναι αρκετά όμοια με τη σύνδεση τερματικών, εκτός από το γεγονός ότι χρησιμοποιούνται modems αντί για τερματικά.

26.4.1. Εξωτερικά και Εσωτερικά Modems

Τα εξωτερικά modems είναι μάλλον πιο βολικά για επιλογικές κλήσεις, καθώς οι περισσότερες ρυθμίσεις τους μπορούν να αποθηκευθούν μόνιμα στη μή-πτητική μνήμη RAM που διαθέτουν. Τα εξωτερικά modems διαθέτουν συνήθως φωτεινές ενδείξεις που δείχνουν την κατάσταση σημαντικών σημάτων του RS-232. Ίσως τα φωτάκια που αναβοσβήνουν να εντυπωσιάζουν τους επισκέπτες, αλλά είναι επίσης χρήσιμα για να φαίνεται πότε το modem λειτουργεί σωστά.

Τα εσωτερικά modems συνήθως δεν διαθέτουν αυτή τη μνήμη RAM, και έτσι οι ρυθμίσεις τους περιορίζονται μόνο στην αλλαγή θέσης σε κάποιους διακόπτες ρυθμίσεων (DIP switches). Αν το εσωτερικό σας modem διαθέτει φωτεινές ενδείξεις, μάλλον θα είναι δύσκολο να τις δείτε όταν το κάλυμμα του συστήματος σας είναι στη θέση του.

26.4.1.1. Modems και Καλώδια

Αν χρησιμοποιείτε εξωτερικό modem, θα χρειαστείτε φυσικά το σωστό καλώδιο. Συνήθως επαρκεί το τυποποιημένο καλώδιο RS-232C, εφόσον διαθέτει συνδέσεις για όλα τα συνηθισμένα σήματα:

Πίνακας 26.4. Ονομασίες Σημάτων
ΑκρωνύμιαΟνόματα
RDΛήψη Δεδομένων (Received Data)
TDΑποστολή Δεδομένων (Transmitted Data)
DTRΤερματικό Δεδομένων σε Ετοιμότητα (Data Terminal Ready)
DSRΣύνολο Δεδομένων σε Ετοιμότητα (Data Set Ready)
DCDΑνίχνευση Φέροντος Σήματος (Data Carrier Detect). Ανίχνευση σύνδεσης της γραμμής RS-232C
SGΓείωση Σήματος (Signal Ground)
RTSΑίτηση Αποστολής (Request to Send)
CTSΕτοιμότητα για Αποστολή (Clear to Send)

Το FreeBSD χρειάζεται τα σήματα RTS και CTS για έλεγχο ροής σε ταχύτητες πάνω από 2400 bps, το σήμα CD για να ανιχνεύει πότε έχει απαντηθεί μια κλήση ή πότε η γραμμή έχει κλείσει, και το σήμα DTR για να επαναφέρει το modem στην αρχική του κατάσταση μετά τη λήξη μιας σύνδεσης. Μερικά καλώδια δεν διαθέτουν όλα τα απαραίτητα σήματα, έτσι αν έχετε προβλήματα με τον τερματισμό της συνεδρίας εισόδου με το κλείσιμο της γραμμής, πιθανόν να ευθύνεται το καλώδιο που χρησιμοποιείτε.

Όπως και άλλα λειτουργικά συστήματα τύπου UNIX(R), το FreeBSD χρησιμοποιεί τα σήματα του υλικού για να αντιληφθεί πότε έχει απαντηθεί μια κλήση, καθώς και για τον τερματισμό της και την επαναφορά του modem στην αρχική του κατάσταση μετά το τέλος της. Το FreeBSD αποφεύγει να στέλνει εντολές στο modem ή να παρακολουθεί αναφορές κατάστασης από αυτό. Αν είστε εξοικειωμένος με συνδέσεις modems σε BBS (Bulletin Board Systems) που βασίζονται σε PC, αυτό μπορεί να σας φανεί άβολο.

26.4.2. Κυκλώματα Σειριακής Διασύνδεσης

Το FreeBSD υποστηρίζει τα κυκλώματα επικοινωνιών που βασίζονται στα NS8250, NS16450, NS16550, και NS16550A και EIA RS-232C (CCITT V.24). Οι συσκευές 8250 και 16450 έχουν ενδιάμεση μνήμη (buffer) μεγέθους ενός χαρακτήρα. Η συσκευή 16550 διαθέτει ενδιάμεση μνήμη 16 χαρακτήρων, η οποία επιτρέπει την καλύτερη απόδοση της. (Λόγω προβλημάτων στη σχεδίαση του 16550, δεν είναι δυνατή η χρήση αυτής της μνήμης, αν είναι δυνατόν χρησιμοποιήστε τα 16550Α). Καθώς οι συσκευές που διαθέτουν ενδιάμεση μνήμη ενός χαρακτήρα απαιτούν περισσότερη εργασία από το λειτουργικό σύστημα σε σχέση με αυτές που διαθέτουν 16 χαρακτήρες, συνίστανται ιδιαίτερα οι συσκευές που βασίζονται στο 16550Α. Αν το σύστημα σας έχει πολλές ενεργές σειριακές πόρτες, ή πρόκειται να λειτουργήσει κάτω από βαρύ φόρτο, οι κάρτες που βασίζονται στο 16550A είναι καλύτερες, καθώς παρέχουν επικοινωνία με μικρότερο ρυθμό σφαλμάτων.

26.4.3. Γρήγορη Επισκόπηση

Όπως και με τα τερματικά, η init εκτελεί μια διεργασία getty για κάθε σειριακή θύρα που έχει ρυθμιστεί για εισερχόμενες επιλογικές συνδέσεις. Για παράδειγμα, αν έχετε συνδέσει ένα modem στη θύρα /etc/ttyu0, η εντολή ps ax θα δείξει κάτι σαν το παρακάτω:

 4850 ??  I      0:00.09 /usr/libexec/getty V19200 ttyu0

Όταν κάποιος χρήστης καλέσει στη γραμμή αυτή και το modem συνδεθεί, ενεργοποιείται από το modem η γραμμή CD. Ο πυρήνας παρατηρεί ότι έχει ανιχνευθεί φέρον σήμα, και ολοκληρώνει τη διαδικασία ανοίγματος της θύρας από το modem. To getty στέλνει μια προτροπή login: στην από πριν καθορισμένη αρχική ταχύτητα της θύρας. Το getty παρακολουθεί για να δει αν λαμβάνονται έγκυροι χαρακτήρες, και στην τυπική ρύθμιση, αν ανακαλύψει ότι λαμβάνει σκουπίδια (πιθανώς λόγω διαφοράς στην ταχύτητα σύνδεσης του modem σε σχέση με την ταχύτητα του getty), προσπαθεί να ρυθμίσει την ταχύτητα της γραμμής μέχρι να λάβει φυσιολογικούς χαρακτήρες.

Αφού ο χρήστης εισάγει τον κωδικό του, το getty εκτελεί το /usr/bin/login, το οποίο και ολοκληρώνει τη διαδικασία εισόδου, ζητώντας από τον χρήστη τον κωδικό του, και ξεκινώντας έπειτα το κέλυφος του.

26.4.4. Αρχεία Ρυθμίσεων

Υπάρχουν τρία αρχεία ρυθμίσεων συστήματος στον κατάλογο /etc, τα οποία πιθανώς θα χρειαστεί να επεξεργαστείτε για να επιτρέψετε την είσοδο μέσω επιλογικής σύνδεσης στο FreeBSD σύστημα σας. Το πρώτο αρχείο είναι το /etc/gettytab, το οποίο περιέχει πληροφορίες ρύθμισης για τον δαίμονα /usr/libexec/getty Το δεύτερο αρχείο είναι το /etc/ttys το οποίο περιέχει πληροφορίες που γνωστοποιούν στην /sbin/init σε ποιες συσκευές tty θα πρέπει να εκτελούνται διεργασίες getty. Τέλος, μπορείτε να βάλετε εντολές αρχικοποίησης της θύρας στο script /etc/rc.d/serial.

Υπάρχουν δύο «σχολές» όσο αφορά τη χρήση modems για είσοδο σε ένα σύστημα UNIX(R). Η πρώτη, προτιμά να ρυθμίζει τα modems και τα συστήματα με τέτοιο τρόπο, ώστε άσχετα με τι ταχύτητα συνδέεται ο απομακρυσμένος χρήστης, η τοπική σύνδεση υπολογιστή - modem μέσω του RS-232C να έχει πάντα την ίδια κλειδωμένη ταχύτητα. Το όφελος μιας τέτοιας ρύθμισης είναι ότι ο απομακρυσμένος χρήστης βλέπει πάντα άμεσα την προτροπή εισόδου. Το μειονέκτημα, είναι ότι το σύστημα δεν γνωρίζει την πραγματική ταχύτητα σύνδεσης του χρήστη, και έτσι προγράμματα πλήρους οθόνης όπως το Emacs, δεν γνωρίζουν πως να ρυθμίσουν την ταχύτητα ανανέωσης της οθόνης τους ώστε να αντιμετωπίσουν καλύτερα τις αργές συνδέσεις.

Η άλλη σχολή ρυθμίζει τη διεπαφή RS-232 του modem να αλλάζει ταχύτητα, ώστε να ακολουθεί την ταχύτητα σύνδεσης του απομακρυσμένου χρήστη. Για παράδειγμα, συνδέσεις τύπου V.32bis (14.4 Kbps) στο modem, μπορεί να το κάνουν να μεταβάλλει την ταχύτητα σύνδεσης στο RS-232 σε 19.2 Kbps, ενώ συνδέσεις ταχύτητας 2400 bps θα μεταβάλλουν αντίστοιχα την ταχύτητα της διεπαφής σε 2400 bps. Επειδή η getty δεν αναγνωρίζει με κάποιο τρόπο την ταχύτητα σύνδεσης που αναφέρει το modem, δίνει την πρώτη προτροπή login: στην αρχικά ρυθμισμένη ταχύτητα, και εξετάζει τους χαρακτήρες που λαμβάνει ως απάντηση. Αν ο χρήστης δει σκουπίδια, θεωρείται ότι γνωρίζει ότι πρέπει να πιέσει το Enter μέχρι να πάρει μια προτροπή που μπορεί να αναγνωρίσει. Αν οι ρυθμοί δεδομένων δεν ταιριάζουν, η getty βλέπει οτιδήποτε γράφει ο χρήστης ως «σκουπίδια», και έτσι δοκιμάζει την επόμενη ταχύτητα και στέλνει ξανά την προτροπή login:. Η διαδικασία μπορεί να επαναληφθεί όσες φορές χρειάζεται, αλλά συνήθως χρειάζονται μόνο μια-δυο προσπάθειες μέχρι ο χρήστης να λάβει κανονική προτροπή. Προφανώς αυτή η ακολουθία εισόδου δεν είναι τόσο καθαρή όπως η προηγούμενη μέθοδος «κλειδωμένης ταχύτητας», αλλά κάποιος χρήστης που βρίσκεται σε γραμμή χαμηλής ταχύτητας, μάλλον θα λάβει καλύτερη απόκριση σε εφαρμογές πλήρους οθόνης.

Σε αυτή την ενότητα θα προσπαθήσουμε να σας δώσουμε πληροφορίες και για τους δύο τύπους ρυθμίσεων, αλλά θεωρούμε καλύτερο το είδος σύνδεσης όπου η ταχύτητα υπολογιστή - modem ακολουθεί την ταχύτητα της σύνδεσης.

26.4.4.1. /etc/gettytab

Το /etc/gettytab είναι ένα αρχείο τύπου termcap(5) με πληροφορίες ρύθμισης για την getty(8). Παρακαλούμε δείτε τη σελίδα manual gettytab(5) για πιο πλήρεις πληροφορίες σχετικά με τη μορφή του αρχείου και την λίστα με τις δυνατότητες του.

26.4.4.1.1. Ρύθμιση για Κλειδωμένη Ταχύτητα

Αν πρόκειται να κλειδώσετε την επικοινωνία του modem σας σε μια συγκεκριμένη ταχύτητα, κατά πάσα πιθανότητα δεν θα χρειαστεί να κάνετε αλλαγές στο /etc/gettytab.

26.4.4.1.2. Ρύθμιση για Μεταβλητή Ταχύτητα

θα χρειαστεί να προσθέσετε μια καταχώριση στο /etc/gettytab για να δώσετε πληροφορίες στην getty σχετικά με τις ταχύτητες που επιθυμείτε να χρησιμοποιήσετε στο modem σας. Αν έχετε ένα modem 2400 bps, μπορείτε πιθανόν να χρησιμοποιήσετε την καταχώριση D2400.

#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
        :nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
        :nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
        :nx=D2400:tc=300-baud:

Αν έχετε modem υψηλότερης ταχύτητας, πιθανόν να χρειαστεί να προσθέσετε μια καταχώριση στο /etc/gettytab. Παρακάτω φαίνεται μια καταχώριση που μπορεί να χρησιμοποιηθεί για modem 14.4 Kbps με μέγιστη ταχύτητα σειριακής θύρας 19.2 Kbps:

#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
        :nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
        :nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
        :nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
        :nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
        :nx=V9600:tc=std.19200:

Αυτό θα έχει ως αποτέλεσμα συνδέσεις 8bit χωρίς ισοτιμία.

Το παραπάνω παράδειγμα, ξεκινά το ρυθμό επικοινωνίας στα 19.2 Kbps (για μια σύνδεση V.32bis), και έπειτα δοκιμάζει κυκλικά στα 9600 bps (για V.32), 2400 bps, 1200 bps, 300 bps, και πίσω στα 19.2 Kbps. Αυτή η κυκλική εναλλαγή ρυθμού επιτυγχάνεται με την ικανότητα nx= («next table»). Κάθε μια από τις γραμμές χρησιμοποιεί μια καταχώριση tc= («table continuation») για να βρει τις υπόλοιπες «τυποποιημένες» ρυθμίσεις για κάποιο συγκεκριμένο ρυθμό μετάδοσης δεδομένων.

Αν έχετε modem 28.8 Kbps ή/και θέλετε να επωφεληθείτε από την συμπίεση ενός modem 14.4 Kbps, θα πρέπει να χρησιμοποιήσετε ρυθμό επικοινωνίας μεγαλύτερο από 19.2 Kbps. Παρακάτω φαίνεται ένα παράδειγμα μια καταχώρισης στο gettytab που ξεκινάει από τα 57.6 Kbps:

#
# Additions for a V.32bis or V.34 Modem
# Starting at 57.6 Kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
        :nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
        :nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
        :nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
        :nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
        :nx=VH9600:tc=std.57600:

Αν έχετε αργό επεξεργαστή ή μεγάλο φορτίο, και το σύστημα σας δεν διαθέτει σειριακές θύρες που να βασίζονται στο 16550Α, ίσως λάβετε λάθη sio «silo» στα 57.6 Kbps.

26.4.4.2. /etc/ttys

Έχουμε ήδη καλύψει τη ρύθμιση του αρχείου /etc/ttys στο Παράδειγμα 26.1, «Προσθήκη Καταχωρίσεων για τα Τερματικά στο /etc/ttys». Η ρύθμιση για modems είναι παρόμοια, αλλά πρέπει να δώσουμε διαφορετικό όρισμα στην getty και να καθορίσουμε διαφορετικό τύπο τερματικού. Η γενική μορφή τόσο για κλειδωμένη όσο και για μεταβλητή ταχύτητα είναι η παρακάτω:

ttyu0   "/usr/libexec/getty xxx"   dialup on

Το πρώτο πεδίο στην παραπάνω γραμμή είναι το ειδικό αρχείο συσκευής για αυτή την καταχώριση - το ttyu0 αντιστοιχεί στο αρχείο /dev/ttyu0 το οποίο και θα παρακολουθεί η getty. Το δεύτερο πεδίο, "/usr/libexec/getty xxx" (το xxx θα έχει την αρχική τιμή ικανότητας του gettytab), είναι η διεργασία που θα εκτελέσει η init στη συσκευή. Το τρίτο πεδίο, dialup, είναι ο προεπιλεγμένος τύπος τερματικού. Η τέταρτη παράμετρος, on, δείχνει στην init ότι η γραμμή είναι σε λειτουργική κατάσταση. Μπορεί να υπάρχει και μια πέμπτη παράμετρος, η secure, αλλά θα πρέπει να χρησιμοποιείται μόνο για τερματικά στα οποία η φυσική πρόσβαση είναι ασφαλής (όπως είναι η κονσόλα του συστήματος).

Ο προεπιλεγμένος τύπος τερματικού (dialup στο παραπάνω παράδειγμα) μπορεί να αλλάξει ανάλογα με τις προτιμήσεις σας. Το dialup είναι ο παραδοσιακός τύπος τερματικού για επιλογικές γραμμές. Οι χρήστες μπορούν έτσι να προσαρμόζουν τα scripts σύνδεσης τους ώστε να αναγνωρίζουν το dialup και να ρυθμίζουν αυτόματα τον τύπο τερματικού. Ωστόσο, είναι μάλλον ευκολότερο να καθορίσετε το vt102 ως τον προεπιλεγμένο τύπο τερματικού, καθώς οι χρήστες χρησιμοποιούν συνήθως εξομοίωση VT102 στα απομακρυσμένα τους συστήματα.

Αφού κάνετε τις αλλαγές στο /etc/ttys, μπορείτε να στείλετε στη διεργασία init ένα σήμα HUP για να ξαναδιαβάσει το αρχείο. Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή για αυτό το σκοπό:

# kill -HUP 1

Αν αυτή είναι η πρώτη φορά που ρυθμίζετε το σύστημα σας, ίσως θέλετε να περιμένετε μέχρι να ολοκληρώσετε πλήρως τη σύνδεση και ρύθμιση του modem σας πριν στείλετε σήμα στην init.

26.4.4.2.1. Ρύθμιση για Κλειδωμένη Ταχύτητα

Για λειτουργία σε κλειδωμένη ταχύτητα, θα πρέπει η καταχώριση σας στο ttys να παρέχει στην getty μια καταχώριση σταθερής ταχύτητας. Για ένα modem με ταχύτητα θύρας κλειδωμένη στα 19.2 Kbps, η καταχώριση ttys θα μοιάζει με την παρακάτω:

ttyu0   "/usr/libexec/getty std.19200"   dialup on

Αν το modem σας είναι κλειδωμένο σε διαφορετικό ρυθμό δεδομένων, αντικαταστήστε με την κατάλληλη τιμή το std.19200 στην καταχώριση std.speed. Βεβαιωθείτε ότι χρησιμοποιείτε ένα έγκυρο τύπο, όπως ορίζεται στο /etc/gettytab.

26.4.4.2.2. Ρύθμιση για Μεταβλητή Ταχύτητα

Σε μια τέτοια ρύθμιση, η καταχώριση σας για το ttys θα πρέπει να αναφέρεται στην αρχική «auto-baud» (sic) καταχώριση του /etc/gettytab. Για παράδειγμα, αν προσθέσατε την παραπάνω συνιστώμενη καταχώριση για modem με μεταβλητή ταχύτητας σειριακής, και με αρχική ταχύτητα τα 19.2 Kbps (την καταχώριση gettytab που περιέχει ως σημείο εκκίνησης το V19200), η καταχώριση σας στο ttys θα μοιάζει με την παρακάτω:

ttyu0   "/usr/libexec/getty V19200"   dialup on

26.4.4.3. /etc/rc.d/serial

Τα modems υψηλής ταχύτητας, όπως τα V.32, V.32bis και V.34, απαιτούν έλεγχο ροής μέσω υλικού (RTS/CTS). Μπορείτε να προσθέσετε εντολές stty στο /etc/rc.d/serial για να θέσετε στον πυρήνα του FreeBSD την κατάλληλη παράμετρο έλεγχου ροής μέσω υλικού των θυρών modem.

Για παράδειγμα, για να θέσετε την επιλογή termios στην τιμή crtscts στις συσκευές αρχικοποίησης της δεύτερης σειριακής θύρας (COM2) για επιλογικές κλήσεις εισόδου και εξόδου, θα πρέπει να προσθέσετε τις παρακάτω γραμμές στο αρχείο /etc/rc.d/serial:

# Serial port initial configuration
stty -f /dev/ttyu1.init crtscts
stty -f /dev/cuau1.init crtscts

26.4.5. Ρυθμίσεις Μνήμης

Αν έχετε ένα modem στο οποίο μπορείτε να αποθηκεύσετε τις παραμέτρους μόνιμα στην μη-πτητική RAM που διαθέτει, θα πρέπει να χρησιμοποιήσετε ένα πρόγραμμα τερματικού (όπως το Telix μέσω του MS-DOS(R) ή του tip στο FreeBSD) για να ρυθμίσετε τις παραμέτρους. Συνδεθείτε στο modem χρησιμοποιώντας την ίδια αρχική ταχύτητα επικοινωνίας με αυτή που έχετε δηλώσει ως αρχική ταχύτητα στην getty, και ρυθμίστε τις παραμέτρους στη μνήμη του ώστε να ταιριάζουν με τις παρακάτω απαιτήσεις:

  • Το σήμα CD θα είναι ενεργό όταν το modem είναι συνδεμένο

  • Το σήμα DTR θα είναι ενεργό κατά τη λειτουργία. Απενεργοποίηση του DTR κλείνει τη γραμμή και επαναφέρει το modem στην αρχική του κατάσταση.

  • Το CTS θα χρησιμοποιείται για έλεγχο ροής μεταδιδόμενων δεδομένων

  • Ο έλεγχος ροής XON/XOFF θα είναι ανενεργός

  • Το RTS θα χρησιμοποιείται για έλεγχο ροής ληφθέντων δεδομένων

  • Ήσυχη λειτουργία (Quiet mode, χωρίς αποστολή κωδικών αποτελεσμάτων)

  • Δεν θα γίνεται echo των εντολών

Θα πρέπει να διαβάσετε την τεκμηρίωση του modem σας για να βρείτε τις εντολές που πρέπει να αποστείλετε. Ίσως επίσης χρειαστεί να αλλάξετε τη θέση κάποιων ρυθμιστικών διακοπτών (dip switches).

Για παράδειγμα, για να ρυθμίσετε τις παραπάνω παραμέτρους σε ένα εξωτερικό modem U.S. Robotics(R) Sportster(R) 14,400, θα έπρεπε να στείλετε τις παρακάτω εντολές στο modem:

ATZ
AT&C1&D2&H1&I0&R2&W

Μπορείτε με την ευκαιρία να ρυθμίσετε και άλλους παραμέτρους του modem, όπως για το αν θα χρησιμοποιείται το πρωτόκολλο V.42bis ή συμπίεση MNP5.

Το εξωτερικό modem U.S. Robotics(R) Sportster(R) 14,400 διαθέτει επίσης και κάποιους ρυθμιστικούς διακόπτες που πρέπει να ρυθμιστούν. Για άλλα modem, ίσως μπορείτε να χρησιμοποιήσετε αυτές τις ρυθμίσεις ως αναφορά:

  • Διακόπτης 1: Άνω Θέση - Κανονική λειτουργία DTR

  • Διακόπτης 2: N/A (Κωδικός Αποτελέσματος ως Κείμενο/Κωδικός Αποτελέσματος ως Αριθμός)

  • Διακόπτης 3: Άνω θέση - Χωρίς Κωδικό Αποτελέσματος

  • Διακόπτης 4: Κάτω θέση - Χωρίς echo και offline εντολές

  • Διακόπτης 5: Άνω θέση - Αυτόματη Απάντηση

  • Διακόπτης 6: Άνω θέση - Φυσιολογική Ανίχνευση Φέροντος Σήματος

  • Διακόπτης 7: Άνω θέση - Φόρτωση Προεπιλογών από NVRAM (μη-πτητική μνήμη)

  • Διακόπτης 8: N/A (Έξυπνος/Κουτός Τρόπος Λειτουργίας)

Θα πρέπει να απενεργοποιήσετε ή να απομονώσετε τους κωδικούς αποτελεσμάτων στο modem, για να αποφύγετε προβλήματα που μπορούν να δημιουργηθούν αν η getty από λάθος στείλει προτροπή login: στο modem ενώ αυτό βρίσκεται σε κατάσταση εντολών. Στην περίπτωση αυτή, το modem μπορεί να αναπαράγει ξανά την εντολή (echo) ή να στείλει κάποιο κωδικό αποτελέσματος. Αυτό μπορεί να έχει ως αποτέλεσμα μια μακρόχρονη και χαζή συνομιλία μεταξύ του modem και της getty.

26.4.5.1. Ρυθμίσεις για Κλειδωμένη Ταχύτητα

Για λειτουργία σε κλειδωμένη ταχύτητα, θα χρειαστεί να ρυθμίσετε το modem να διατηρεί σταθερή ταχύτητα υπολογιστή - modem, άσχετα με την ταχύτητα επικοινωνίας της επιλογικής σύνδεσης. Σε ένα εξωτερικό modem U.S. Robotics(R) Sportster(R) 14,400, οι εντολές αυτές θα κλειδώσουν την επικοινωνία υπολογιστή - modem στην ίδια ταχύτητα που έγινε η λήψη των εντολών:

ATZ
AT&B1&W

26.4.5.2. Ρυθμίσεις για Μεταβλητή Ταχύτητα

Για λειτουργία σε μεταβλητή ταχύτητα, θα χρειαστεί να ρυθμίσετε το modem σας να προσαρμόζει την ταχύτητα της σειριακής θύρας του ώστε να ταιριάζει με αυτή της εισερχόμενης κλήσης. Σε ένα εξωτερικό modem U.S. Robotics(R) Sportster(R) 14,400, οι εντολές αυτές θα κλειδώσουν την ταχύτητα μεταφοράς δεδομένων με διόρθωση λαθών του modem στην ταχύτητα που χρησιμοποιήθηκε για την αποστολή των εντολών, αλλά θα επιτρέψουν στην ταχύτητα της σειριακής θύρας να μεταβάλλεται για συνδέσεις που δεν έχουν διόρθωση λαθών:

ATZ
AT&B2&W

26.4.5.3. Έλεγχος των Ρυθμίσεων του Modem

Τα περισσότερα modem υψηλής ταχύτητας, παρέχουν εντολές με τις οποίες μπορείτε να παρακολουθήσετε τις τρέχουσες παραμέτρους λειτουργίας τους με σχετικά κατανοητό τρόπο. Στο εξωτερικό modem U.S. Robotics(R) Sportster(R) 14,400, η εντολή ATI5 δείχνει τις ρυθμίσεις που είναι αποθηκευμένες στη μη-πτητική RAM του modem. Για να δείτε τις πραγματικές παραμέτρους λειτουργίας του modem (όπως αυτές επηρεάζονται από τις θέσεις των ρυθμιστικών διακοπτών του), χρησιμοποιήστε τις εντολές ATZ και μετά ATI4.

Αν διαθέτετε modem άλλης εταιρίας, ελέγξτε τις οδηγίες χρήσης του για να δείτε πως μπορείτε να ελέγξετε με σιγουριά τις παραμέτρους ρύθμισης του.

26.4.6. Αντιμετώπιση Προβλημάτων

Παρακάτω θα βρείτε μερικά βήματα που μπορείτε να ακολουθήσετε για να ελέγξετε τη λειτουργία του modem στο σύστημα σας.

26.4.6.1. Ελέγχοντας το Σύστημα σας

Συνδέστε το modem στο FreeBSD σύστημα σας, εκκινήστε το, και αν το modem σας διαθέτει φωτεινές ενδείξεις κατάστασης, παρακολουθήστε τις για να δείτε αν ενεργοποιείται η ένδειξη DTR όταν εμφανίζεται η προτροπή login: στην κονσόλα του συστήματος. Αν η ένδειξη αυτή είναι ενεργή, σημαίνει ότι το FreeBSD έχει ξεκινήσει μια διεργασία getty στην αντίστοιχη θύρα επικοινωνιών και αναμένει το modem να απαντήσει μια κλήση.

Αν δεν ενεργοποιείται η ένδειξη DTR, εισέλθετε στο σύστημα μέσω της κονσόλας, και δώστε την εντολή ps ax για να δείτε αν το FreeBSD προσπαθεί να εκτελέσει διεργασία getty στη σωστή θύρα. Ανάμεσα στις διεργασίες, θα δείτε γραμμές όπως τις παρακάτω:

  114 ??  I      0:00.10 /usr/libexec/getty V19200 ttyu0
  115 ??  I      0:00.10 /usr/libexec/getty V19200 ttyu1

Αν δείτε κάτι διαφορετικό, όπως το παρακάτω:

  114 d0  I      0:00.10 /usr/libexec/getty V19200 ttyu0

και το modem δεν έχει απαντήσει ακόμα καμία κλήση, σημαίνει ότι η getty έχει ολοκληρώσει το άνοιγμα της σειριακής θύρας. Αυτό πιθανόν σημαίνει ότι υπάρχει πρόβλημα με την καλωδίωση, ή ότι το modem δεν είναι σωστά ρυθμισμένο, καθώς η getty δεν θα πρέπει να μπορεί να ανοίξει τη θύρα πριν ενεργοποιηθεί το σήμα CD (carrier detect, ανίχνευσης φέροντος) από το modem.

Αν δεν βλέπετε κάποιες διεργασίες getty να περιμένουν να ανοίξουν την επιθυμητή θύρα ttyuN, ελέγξτε ξανά τις καταχωρίσεις σας στο /etc/ttys για τυχόν λάθη. Ελέγξτε επίσης το αρχείο καταγραφής /var/log/messages για να δείτε αν υπάρχουν κάποια μηνύματα από την init ή την getty σχετικά με τα προβλήματα. Αν υπάρχουν μηνύματα, ελέγξτε ξανά τα αρχεία ρυθμίσεων /etc/ttys και /etc/gettytab, όπως και τα ειδικά αρχεία συσκευών /dev/ttyuN για πιθανά λάθη, ελλιπείς καταχωρίσεις, ή μη-ύπαρξη των ειδικών αρχείων συσκευών.

26.4.6.2. Προσπαθήστε να Εκτελέσετε Σύνδεση Εισόδου

Δοκιμάστε να εισέλθετε στο σύστημα σας μέσω απομακρυσμένης σύνδεσης. Βεβαιωθείτε ότι χρησιμοποιείτε 8 bits, 1 stop bit και επικοινωνία χωρίς ισοτιμία στο απομακρυσμένο σύστημα. Αν δε λάβετε άμεσα την προτροπή εισόδου, ή αν λαμβάνετε σκουπίδια, δοκιμάστε να πιέζετε Enter με ρυθμό περίπου μια φορά το δευτερόλεπτο. Αν ακόμα δεν λαμβάνετε την προτροπή login:, δοκιμάστε μετά από λίγο να στείλετε ένα BREAK. Αν κάνετε κλήση από ένα modem υψηλής ταχύτητας, δοκιμάστε ξανά, αφού κλειδώσετε την ταχύτητα επικοινωνίας υπολογιστή - modem από το οποίο καλείτε (μέσω π.χ. της AT&B1 σε ένα U.S. Robotics(R) Sportster(R) modem).

Αν δεν μπορείτε ακόμα να λάβετε προτροπή login:, ελέγξτε ξανά και ξανά το αρχείο /etc/gettytab.

  • Το όνομα της αρχικής ικανότητας που καθορίζεται στο αρχείο /etc/ttys για τη γραμμή πρέπει να ταιριάζει με το όνομα της ικανότητας στο /etc/gettytab

  • Κάθε καταχώριση nx= ταιριάζει με το όνομα μιας αντίστοιχης ικανότητας στο gettytab

  • Κάθε καταχώριση tc= ταιριάζει με το όνομα μιας αντίστοιχης ικανότητας στο gettytab

Αν κάνετε κλήση αλλά το modem στο FreeBSD σύστημα δεν απαντάει, βεβαιωθείτε ότι το modem είναι ρυθμισμένο να απαντάει την τηλεφωνική γραμμή όταν ενεργοποιείται το σήμα DTR. Αν το modem φαίνεται να είναι ρυθμισμένο σωστά, επαληθεύστε ότι η γραμμή DTR είναι ενεργή ελέγχοντας τις φωτεινές ενδείξεις του modem (αν υπάρχουν).

Αν έχετε ελέγξει τα πάντα πολλές φορές, και ακόμα δεν φαίνεται να βρίσκετε τη λύση, κάντε ένα διάλειμμα και προσπαθήστε ξανά αργότερα. Αν ακόμα δεν λειτουργεί, ίσως είναι καλή ιδέα να στείλετε ένα μήνυμα στην ηλεκτρονική λίστα γενικών ερωτήσεων του FreeBSD περιγράφοντας το πρόβλημα σας και το modem σας, και οι καλοί άνθρωποι που παρακολουθούν την λίστα θα προσπαθήσουν να σας βοηθήσουν.

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.

Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.