---
title: Κεφάλαιο 26. Σειριακές Επικοινωνίες
part: Μέρος IV. Δικτυακές Επικοινωνίες
prev: books/handbook/partiv
next: books/handbook/ppp-and-slip
showBookMenu: true
weight: 31
params:
  path: "/books/handbook/serialcomms/"
---

[[serialcomms]]
= Serial Communications
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 26
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/serialcomms/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[serial-synopsis]]
== Σύνοψη

Το UNIX(R) πάντοτε υποστήριζε σειριακές επικοινωνίες. Για την ακρίβεια, τα πρώτα UNIX(R) μηχανήματα βασίζονταν σε σειριακές γραμμές για την είσοδο και έξοδο στο χρήστη. Τα πράγματα ωστόσο έχουν αλλάξει πολύ από τις μέρες που το συνηθισμένο "τερματικό" αποτελούνταν από ένα σειριακό εκτυπωτή 10 χαρακτήρων το δευτερόλεπτο και ένα πληκτρολόγιο. Το κεφάλαιο αυτό θα καλύψει κάποιους από τους τρόπους σειριακής επικοινωνίας που χρησιμοποιούνται από το FreeBSD.

Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:

* Πως να συνδέσετε τερματικά στο FreeBSD σύστημα σας.
* Πως να χρησιμοποιήσετε ένα modem για να συνδεθείτε σε απομακρυσμένα συστήματα.
* Πως να επιτρέψετε σε απομακρυσμένους χρήστες να συνδεθούν στο σύστημα σας μέσω modem.
* Πως να εκκινήσετε το σύστημα σας μέσω σειριακής κονσόλας.

Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:

* Να ξέρετε πως θα ρυθμίσετε και θα εγκαταστήσετε ένα νέο πυρήνα (crossref:kernelconfig[kernelconfig,Ρυθμίζοντας τον Πυρήνα του FreeBSD]).
* Να κατανοείτε τις άδειες και διεργασίες του UNIX(R) (crossref:basics[basics,Βασικές Έννοιες στο UNIX(R)]).
* Να έχετε πρόσβαση στο τεχνικό εγχειρίδιο του υλικού σας (modem ή κάρτα πολλαπλών σειριακών θυρών) που θέλετε να χρησιμοποιήσετε στο FreeBSD.

[[serial]]
== Εισαγωγή

[WARNING]
====

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

[[serial-terminology]]
=== Ορολογία

bps::
Bits Ανά Δευτερόλεπτο - ο ρυθμός μετάδοσης των δεδομένων

DTE::
Data Terminal Equipment, Τερματικός Εξοπλισμός Δεδομένων - για παράδειγμα, ο υπολογιστής σας

DCE::
Data Communications Equipment, Εξοπλισμός Επικοινωνίας Δεδομένων - το modem σας

RS-232::
Πρότυπο της EIA για το υλικό που χρησιμοποιείται στις σειριακές επικοινωνίες

Όταν αναφερόμαστε στο ρυθμό μετάδοσης δεδομένων επικοινωνίας, δεν χρησιμοποιούμε πάντοτε τον όρο "baud". Το baud αναφέρεται στον αριθμό των μεταβάσεων του ηλεκτρικού σήματος στη μονάδα του χρόνου, ενώ κανονικά πρέπει να χρησιμοποιείται το "bps" (bits ανά δευτερόλεπτο) που είναι ο _σωστός_ όρος (η τουλάχιστον δεν φαίνεται να ενοχλεί πολύ τους σχολαστικούς).

[[serial-cables-ports]]
=== Θύρες και Καλώδια

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

[[term-cables]]
==== Καλώδια

Υπάρχουν αρκετοί διαφορετικοί τύποι σειριακών καλωδίων. Οι δύο πιο κοινοί τύποι για τους σκοπούς μας, είναι τα καλώδια τύπου null-modem και τα τυποποιημένα καλώδια RS-232 (γνωστά και ως "ευθείες"). Η τεκμηρίωση του υλικού σας θα πρέπει να περιγράφει τον τύπο του καλωδίου που απαιτείται.

[[term-cables-null]]
===== Καλώδια Τύπου Null-modem

Ένα καλώδιο τύπου null-modem, μεταφέρει απευθείας κάποια σήματα όπως η "Γείωση Σήματος (SG)", αλλά αντιστρέφει τις συνδέσεις σε κάποια άλλα. Για παράδειγμα, ο ακροδέκτης "Μετάδοσης Δεδομένων" (γνωστός και ως TD) της μιας πλευράς, συνδέεται με τον ακροδέκτη "Λήψης Δεδομένων" (γνωστός και ως RD) της άλλης.

Μπορείτε επίσης να φτιάξετε το δικό σας καλώδιο τύπου null-modem (π.χ. για λόγους ποιότητας) για χρήση με τερματικά. Ο παρακάτω πίνακας δείχνει τα <<serialcomms-signal-names,σήματα>> του RS-232 και τους αριθμούς των ακροδεκτών σε ένα συνδέτη DB-25. Σημειώστε επίσης ότι το πρότυπο ορίζει απευθείας σύνδεση των ακροδεκτών 1 της κάθε άκρης. Πρόκειται για τον ακροδέκτη της _Προστατευτικής Γείωσης_, αλλά συχνά η σύνδεση του παραλείπεται. Μερικά τερματικά λειτουργούν κανονικά χρησιμοποιώντας μόνο τους ακροδέκτες 2, 3 και 7, ενώ κάποιοι άλλα απαιτούν διαφορετικές ρυθμίσεις σε σχέση με τα παραδείγματα που φαίνονται παρακάτω.

.Καλώδιο Null-Modem DB-25 σε DB-25
[cols="1,1,1,1,1", frame="none", options="header"]
|===
<| Σήμα
<| Ακροδέκτης #
| 
<| Ακροδέκτης #
<| Σήμα

|SG
|7
|συνδέεται στο
|7
|SG

|TD
|2
|συνδέεται στο
|3
|RD

|RD
|3
|συνδέεται στο
|2
|TD

|RTS
|4
|συνδέεται στο
|5
|CTS

|CTS
|5
|συνδέεται στο
|4
|RTS

|DTR
|20
|συνδέεται στο
|6
|DSR

|DTR
|20
|συνδέεται στο
|8
|DCD

|DSR
|6
|συνδέεται στο
|20
|DTR

|DCD
|8
|συνδέεται στο
|20
|DTR
|===

Παρακάτω φαίνονται δύο διατάξεις που είναι πιο κοινές στις μέρες μας.

.Καλώδιο Null-Modem DB-9 σε DB-9
[cols="1,1,1,1,1", frame="none", options="header"]
|===
<| Σήμα
<| Ακροδέκτης #
| 
<| Ακροδέκτης #
<| Σήμα

|RD
|2
|συνδέεται στο
|3
|TD

|TD
|3
|συνδέεται στο
|2
|RD

|DTR
|4
|συνδέεται στο
|6
|DSR

|DTR
|4
|συνδέεται στο
|1
|DCD

|SG
|5
|συνδέεται στο
|5
|SG

|DSR
|6
|συνδέεται στο
|4
|DTR

|DCD
|1
|συνδέεται στο
|4
|DTR

|RTS
|7
|συνδέεται στο
|8
|CTS

|CTS
|8
|συνδέεται στο
|7
|RTS
|===

.Καλώδιο Null-Modem DB-9 σε DB-25
[cols="1,1,1,1,1", frame="none", options="header"]
|===
<| Σήμα
<| Ακροδέκτης #
| 
<| Ακροδέκτης #
<| Σήμα

|RD
|2
|συνδέεται στο
|2
|TD

|TD
|3
|συνδέεται στο
|3
|RD

|DTR
|4
|συνδέεται στο
|6
|DSR

|DTR
|4
|συνδέεται στο
|8
|DCD

|SG
|5
|συνδέεται στο
|7
|SG

|DSR
|6
|συνδέεται στο
|20
|DTR

|DCD
|1
|συνδέεται στο
|20
|DTR

|RTS
|7
|συνδέεται στο
|5
|CTS

|CTS
|8
|συνδέεται στο
|4
|RTS
|===

[NOTE]
====
Όταν ένας ακροδέκτης σε μια άκρη χρειάζεται να συνδεθεί με δύο ακροδέκτες στην άλλη, συνήθως ενώνουμε τους ακροδέκτες μεταξύ τους στη μια άκρη με ένα μικρό καλώδιο, και χρησιμοποιούμε ένα μακρύτερο καλώδιο για την ένωση με την άλλη άκρη.
====

Η παραπάνω διάταξη φαίνεται να είναι η πιο διαδεδομένη. Σε μια παραλλαγή (που εξηγείται στο βιβλίο _Το RS-232 με Απλά Βήματα_), το SG συνδέεται στο SG, το TD συνδέεται στο RD, τα RTS και CTS συνδέονται στο DCD, το DTR συνδέεται στο DSR, και αντίστροφα.

[[term-cables-std]]
===== Τυποποιημένα Καλώδια RS-232C

Ένα τυποποιημένο σειριακό καλώδιο RS-232C, μεταφέρει όλα τα σήματα απευθείας από τη μια άκρη στην άλλη, χωρίς καμιά αλλαγή στους ακροδέκτες. Αυτό απλά σημαίνει ότι ο ακροδέκτης "Μετάδοσης Δεδομένων (TD)" της μιας άκρης, συνδέεται στον ακροδέκτη "Μετάδοσης Δεδομένων (TD)" της άλλης άκρης. Αυτό είναι και το είδος του καλωδίου που θα χρησιμοποιήσετε για να συνδέσετε ένα modem στο FreeBSD σύστημα σας, και είναι επίσης κατάλληλο για ορισμένα τερματικά.

[[term-ports]]
==== Θύρες

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

[[term-portkinds]]
===== Είδη Θυρών

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

Τα περισσότερα τερματικά διαθέτουν θύρες DB-25. Οι προσωπικοί υπολογιστές, συμπεριλαμβανομένων και αυτών που εκτελούν FreeBSD, μπορεί να έχουν θύρες τύπου DB-25 ή DB-9. Αν διαθέτετε κάρτα πολλαπλών σειριακών θυρών στον υπολογιστή σας, μπορεί να διαθέτει θύρες τύπου RJ-12 ή RJ-45.

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

[[term-portnames]]
===== Ονόματα Θυρών

Στο FreeBSD, έχετε πρόσβαση σε κάθε σειριακή θύρα μέσω μιας καταχώρισης στον κατάλογο [.filename]#/dev#. Υπάρχουν δύο διαφορετικά είδη καταχωρίσεων:

* Οι θύρες που μπορούν να χρησιμοποιηθούν για είσοδο στο σύστημα, ονομάζονται [.filename]#/dev/ttyuN# όπου το _N_ είναι ο αριθμός της θύρας (η αρίθμηση ξεκινάει από το μηδέν). Γενικά, οι θύρες αυτές προορίζονται για σύνδεση με τερματικά. Οι θύρες εισόδου απαιτούν να είναι ενεργό το σήμα ανίχνευσης φέροντος (DCD) στη σειριακή γραμμή, προκειμένου να λειτουργήσουν σωστά.
* Οι θύρες κλήσης ή εξόδου, ονομάζονται [.filename]#/dev/cuauN#. Οι θύρες αυτές δεν χρησιμοποιούνται συνήθως για τερματικά, αλλά για modems. Μπορείτε να χρησιμοποιήσετε αυτή τη θύρα για κάποιο τερματικό που δεν υποστηρίζει το σήμα ανίχνευσης φέροντος.

Αν έχετε συνδέσει ένα τερματικό στην πρώτη σειριακή θύρα (που στο MS-DOS(R) αναφέρεται ως [.filename]#COM1#), θα πρέπει να χρησιμοποιήσετε την συσκευή [.filename]#/dev/ttyu0# για να αναφερθείτε στο τερματικό. Αν το τερματικό είναι στη δεύτερη σειριακή θύρα (που είναι επίσης γνωστή ως [.filename]#COM2#) χρησιμοποιήστε τη συσκευή [.filename]#/dev/ttyu1#, κ.ο.κ.

=== Ρύθμιση του Πυρήνα

Το FreeBSD από προεπιλογή υποστηρίζει τέσσερις σειριακές θύρες. Στον κόσμο του MS-DOS(R) οι θύρες αυτές είναι γνωστές ως: [.filename]#COM1#, [.filename]#COM2#, [.filename]#COM3#, και [.filename]#COM4#. Το FreeBSD αυτή τη στιγμή υποστηρίζει "κουτές" σειριακές κάρτες πολλαπλών θυρών, όπως τις BocaBoard 1008 και 2016, όπως και πιο ευφυής κάρτες, όπως αυτές που κατασκευάζονται από την Digiboard και την Stallion Technologies. Ο προεπιλεγμένος πυρήνας ωστόσο, εκτελεί ανίχνευση μόνο για τις τυπικές σειριακές (COM) θύρες.

Για να δείτε αν ο πυρήνας σας αναγνωρίζει οποιαδήποτε από τις σειριακές θύρες, παρατηρήστε τα μηνύματα κατά τη διάρκεια εκκίνησης του συστήματος, ή χρησιμοποιήστε την εντολή `/sbin/dmesg` για να ξαναδείτε τα μηνύματα του πυρήνα κατά τη διάρκεια της εκκίνησης. Πιο συγκεκριμένα, αναζητήστε τα μηνύματα που ξεκινούν με τους χαρακτήρες `sio`.

[TIP]
====

Για να δείτε μόνο τα μηνύματα που περιέχουν τη λέξη `sio`, χρησιμοποιήστε την εντολή:

[source,shell]
....
# /sbin/dmesg | grep 'sio'
....

====

Για παράδειγμα, σε ένα σύστημα με τέσσερις σειριακές θύρες, τα μηνύματα του πυρήνα που σχετίζονται με αυτές φαίνονται παρακάτω:

[source,shell]
....
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A
....

Αν ο πυρήνας σας δεν αναγνωρίζει όλες τις σειριακές σας θύρες, πιθανόν να χρειαστεί να τον ρυθμίσετε χρησιμοποιώντας το αρχείο [.filename]#/boot/device.hints#. Μπορείτε επίσης να μετατρέψετε σε σχόλιο (ή και να διαγράψετε τελείως) γραμμές που αναφέρονται σε συσκευές που δεν υπάρχουν στο σύστημα σας.

Παρακαλούμε ανατρέξτε στη σελίδα manual του man:sio[4] για περισσότερες πληροφορίες σχετικά με τις σειριακές θύρες και τις ρυθμίσεις των καρτών πολλαπλών σειριακών θυρών. Αν χρησιμοποιείτε αρχείο ρυθμίσεων που προέρχεται από κάποια παλαιότερη έκδοση του FreeBSD, θα πρέπει να είστε ιδιαίτερα προσεκτικοί, καθώς κάποιες από τις επιλογές των συσκευών και η σύνταξη τους έχουν αλλάξει στις νεότερες εκδόσεις.

[NOTE]
====
Το `port IO_COM1` υποκαθιστά το `port 0x3f8`, `IO_COM2` είναι το `0x2f8`, `IO_COM3` είναι το `0x3e8`, και το `IO_COM4` είναι το `0x2e8`. Αυτές είναι και οι πιο κοινές ρυθμίσεις για τις παραπάνω θύρες. Οι γραμμές interrupt 4, 3, 5 και 9 είναι οι πλέον συνηθισμένες στις σειριακές θύρες. Σημειώστε επίσης ότι οι συνηθισμένες σειριακές θύρες _δεν_ μπορούν να μοιράζονται το ίδιο interrupt με κάποια άλλη συσκευή σε υπολογιστές που διαθέτουν δίαυλο τύπου ISA (οι κάρτες πολλαπλών θυρών διαθέτουν ειδικά κυκλώματα που επιτρέπουν σε όλα τα 16550Α που χρησιμοποιεί η κάρτα να λειτουργούν χρησιμοποιώντας μόνο μία ή δύο γραμμές interrupt).
====

=== Ειδικά Αρχεία Συσκευών

Η πρόσβαση στις περισσότερες συσκευές του πυρήνα, επιτυγχάνεται μέσω "ειδικών αρχείων συσκευών", τα οποία βρίσκονται στον κατάλογο [.filename]#/dev/#. Στις συσκευές [.filename]#sio# η πρόσβαση επιτυγχάνεται μέσω των αρχείων [.filename]#/dev/ttyuN# (για συσκευές εισόδου, dial-in) και [.filename]#/dev/cuauN# (για συσκευές εξόδου, call-out). Το FreeBSD παρέχει επίσης συσκευές αρχικοποίησης ([.filename]#/dev/ttyuN.init# και [.filename]#/dev/cuauN.init#) και συσκευές κλειδώματος ([.filename]#/dev/ttyuN.lock# και [.filename]#/dev/cuauN.lock#). Οι συσκευές αρχικοποίησης χρησιμοποιούνται για την ρύθμιση των αρχικών παραμέτρων επικοινωνίας στη θύρα, κάθε φορά που ανοίγει. Τέτοιες παράμετροι είναι π.χ. το `crtscts` για τα modems που χρησιμοποιούν σηματοδοσία `RTS/CTS` για έλεγχο ροής. Οι συσκευές κλειδώματος χρησιμοποιούνται για να κλειδώνουν κάποιες ρυθμίσεις στις θύρες, ώστε να μην μπορούν να αλλαχθούν από άλλους χρήστες ή προγράμματα. Για πληροφορίες σχετικές με τις ρυθμίσεις τερματικών, την αρχικοποίηση και τα κλειδώματα συσκευών, και τη ρύθμιση παραμέτρων στα τερματικά, δείτε αντίστοιχα τις σελίδες manual man:termios[4], man:sio[4], και man:stty[1].

[[serial-hw-config]]
=== Ρυθμίσεις Σειριακών Θυρών

Η συσκευή [.filename]#ttyuN# (ή [.filename]#cuauN#) είναι η κανονική συσκευή που μπορείτε να χρησιμοποιήσετε στις εφαρμογές σας. Όταν μια διαδικασία ανοίγει μια συσκευή, χρησιμοποιούνται κάποιες προεπιλεγμένες ρυθμίσεις I/O για το τερματικό. Μπορείτε να δείτε αυτές τις ρυθμίσεις με την εντολή:

[source,shell]
....
# stty -a -f /dev/ttyu1
....

Αν αλλάξετε τις ρυθμίσεις σε αυτή τη συσκευή, αυτές θα παραμείνουν μέχρι το κλείσιμο της συσκευής. Όταν ανοιχθεί ξανά, θα έχει επανέλθει στις προεπιλεγμένες ρυθμίσεις. Για να αλλάξετε τις προεπιλεγμένες ρυθμίσεις, μπορείτε να ανοίξετε και να αλλάξετε τις ρυθμίσεις της συσκευής "αρχικής κατάστασης". Για παράδειγμα, για να ενεργοποιήσετε τη λειτουργία `CLOCAL`, να ορίσετε επικοινωνία 8bit και έλεγχο ροής μέσω `XON/XOFF` για τη συσκευή [.filename]#ttyu5#, γράψτε:

[source,shell]
....
# stty -f /dev/ttyu5.init clocal cs8 ixon ixoff
....

Η αρχικοποίηση των σειριακών συσκευών για όλο το σύστημα, ελέγχεται από το αρχείο [.filename]#/etc/rc.d/serial#. Το αρχείο αυτό επηρεάζει τις προεπιλεγμένες ρυθμίσεις των σειριακών συσκευών.

Για να αποτρέψετε την αλλαγή συγκεκριμένων ρυθμίσεων από κάποια εφαρμογή, αλλάξτε τις ρυθμίσεις της συσκευής "κλειδώματος". Για παράδειγμα, για να κλειδώσετε την ταχύτητα της συσκευής [.filename]#ttyu5# στα 57600 bps, γράψτε:

[source,shell]
....
# stty -f /dev/ttyu5.lock 57600
....

Τώρα, μια εφαρμογή που ανοίγει τη θύρα [.filename]#ttyu5# και επιχειρεί να αλλάξει την ταχύτητα της θύρας, θα αναγκαστεί να παραμείνει στα 57600 bps.

Φυσικά, θα πρέπει να ρυθμίσετε τις συσκευές αρχικοποίησης και κλειδώματος, ώστε να είναι εγγράψιμες μόνο από τον λογαριασμό του `root`.

[[term]]
== Τερματικά

[WARNING]
====

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

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

[[term-uses]]
=== Χρήσεις και Είδη Τερματικών

Τα αρχικά συστήματα UNIX(R) δεν είχαν κονσόλες. Αντίθετα, οι χρήστες εισέρχονταν στο σύστημα και εκτελούσαν τα προγράμματα τους μέσω τερματικών που συνδέονταν στις σειριακές θύρες του υπολογιστή. Αυτό μοιάζει αρκετά με τη χρήση modem και λογισμικού εξομοίωσης τερματικού για σύνδεση σε ένα απομακρυσμένο σύστημα. Με τον τρόπο αυτό μπορείτε βέβαια να εκτελέσετε εργασίες μόνο σε περιβάλλον κειμένου.

Τα σημερινά PC διαθέτουν κονσόλες ικανές να απεικονίσουν γραφικά πολύ υψηλής ποιότητας, αλλά η ικανότητα σύνδεσης στο μηχάνημα μέσω σειριακής θύρας, υπάρχει ακόμα σχεδόν σε όλα τα σημερινά συστήματα τύπου UNIX(R). Το FreeBSD δεν αποτελεί εξαίρεση. Συνδέοντας ένα τερματικό σε μια αχρησιμοποίητη σειριακή θύρα, μπορείτε να εισέλθετε στο σύστημα και να εκτελέσετε οποιοδήποτε πρόγραμμα κειμένου το οποίο θα μπορούσατε φυσιολογικά να εκτελέσετε στην κονσόλα ή σε ένα παράθυρο `xterm` του συστήματος X Window.

Για χρήση σε επιχειρήσεις, είναι δυνατόν να συνδέσετε πολλά τερματικά σε ένα FreeBSD σύστημα και να τα τοποθετήσετε στις θέσεις εργασίας των υπαλλήλων. Ένας οικιακός χρήστης μπορεί να χρησιμοποιήσει κάποιο παλιό υπολογιστή (π.χ. ένα παλιό IBM PC ή Macintosh(R)) ως τερματικό ενός πολύ ισχυρότερου υπολογιστή που εκτελεί FreeBSD. Με τον τρόπο αυτό, μπορείτε να μετατρέψετε αυτό που κανονικά θα ήταν σύστημα ενός χρήστη, σε ένα πανίσχυρο σύστημα πολλαπλών χρηστών.

Στο FreeBSD υπάρχουν τρία είδη τερματικών:

* <<term-dumb,Κουτά Τερματικά>>
* <<term-pcs,PC που λειτουργούν ως τερματικά>>
* <<term-x,Τερματικά X>>

Οι παρακάτω υποενότητες περιγράφουν καθένα από αυτούς τους τύπους.

[[term-dumb]]
==== Κουτά Τερματικά

Τα κουτά τερματικά είναι εξειδικευμένες συσκευές που επιτρέπουν τη σύνδεση σε υπολογιστές μέσω σειριακών γραμμών. Αποκαλούνται "κουτά" ακριβώς επειδή η μόνη υπολογιστική ισχύ που έχουν είναι για απεικόνιση, αποστολή, και λήψη κειμένου. Δεν μπορείτε να εκτελέσετε προγράμματα σε αυτά. Όλη η ισχύς τους προέρχεται από τον υπολογιστή που θα τα συνδέσετε, και μέσω αυτού μπορείτε να εκτελέσετε συντάκτες κειμένου, μεταγλωττιστές, προγράμματα email, παιχνίδια κ.ο.κ.

Υπάρχουν εκατοντάδες είδη κουτών τερματικών από αρκετούς κατασκευαστές, όπως το VT-100 της Digital Equipment Corporation και το WY-75 της Wyse. Σχεδόν οποιοσδήποτε τύπος μπορεί να λειτουργήσει με το FreeBSD. Μερικά τερματικά υψηλού κόστους μπορούν επίσης να απεικονίσουν και γραφικά, αλλά αυτή τη δυνατότητα μπορούν να την εκμεταλλευθούν σχετικά λίγα πακέτα λογισμικού.

Τα κουτά τερματικά είναι δημοφιλή σε περιβάλλοντα εργασίας όπου οι εργαζόμενοι δεν χρειάζονται πρόσβαση σε γραφικές εφαρμογές, όπως αυτές που παρέχονται από το σύστημα X Window.

[[term-pcs]]
==== PC που Λειτουργούν ως Τερματικά

Αν ένα <<term-dumb,κουτό τερματικό>> έχει ακριβώς την ισχύ που χρειάζεται για να δείχνει, να στέλνει, και να λαμβάνει κείμενο, τότε και κάθε υπολογιστής που σας περισσεύει μπορεί να λειτουργήσει σαν κουτό τερματικό. Το μόνο που χρειάζεστε είναι το σωστό καλώδιο και κάποιο πρόγραμμα _εξομοίωσης τερματικού_ το οποίο θα εκτελείτε στον υπολογιστή αυτό.

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

Υπάρχουν δύο τουλάχιστον βοηθητικά προγράμματα στο βασικό σύστημα του FreeBSD που μπορούν να χρησιμοποιηθούν για να δουλέψετε μέσω σειριακής σύνδεσης: το man:cu[1] και το man:tip[1].

Για να συνδεθείτε από ένα άλλο μηχάνημα που εκτελεί FreeBSD στη σειριακή σύνδεση ενός άλλου συστήματος, μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή:

[source,shell]
....
# cu -l serial-port-device
....

Όπου το "serial-port-device" είναι το όνομα του αρχείου συσκευής που αντιπροσωπεύει μια σειριακή θύρα στο σύστημα σας. Αυτά τα αρχεία συσκευών καλούνται [.filename]#/dev/cuauN#.

Το "N" στο όνομα της συσκευής, αντιπροσωπεύει τον αριθμό της σειριακής θύρας.

[NOTE]
====
Σημειώστε ότι η αρίθμηση των συσκευών στο FreeBSD ξεκινά από το μηδέν, και όχι από το ένα (όπως συμβαίνει για παράδειγμα στα συστήματα που σχετίζονται με το MS-DOS(R)). Αυτό πρακτικά σημαίνει ότι η θύρα που στο MS-DOS(R) καλείται [.filename]#COM1# θα είναι συνήθως η [.filename]#/dev/cuau0# στο FreeBSD.
====

[NOTE]
====
Κάποιοι χρήστες προτιμούν να χρησιμοποιούν άλλα προγράμματα που διατίθενται μέσω της Συλλογής των Ports. Τα Ports περιλαμβάνουν αρκετά βοηθητικά προγράμματα με λειτουργίες παρόμοιες με το man:cu[1] και το man:tip[1], για παράδειγμα το package:comms/minicom[].
====

[[term-x]]
==== Τερματικά X

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

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

[[term-config]]
=== Ρύθμιση

Η ενότητα αυτή περιγράφει τι χρειάζεται να ρυθμίσετε στο FreeBSD σύστημα σας για να είναι δυνατή η είσοδος σε αυτό μέσω τερματικού. Προϋποθέτει ότι έχετε ήδη ρυθμίσει τον πυρήνα σας να υποστηρίζει τη σειριακή θύρα στην οποία είναι συνδεμένη το τερματικό-και ότι το έχετε ήδη συνδέσει.

Στο crossref:boot[boot,Η Διαδικασία Εκκίνησης του FreeBSD] είδαμε ότι η διεργασία `init` είναι υπεύθυνη για τον έλεγχο των άλλων διεργασιών, και για την αρχικοποίηση κατά την εκκίνηση του συστήματος. Μια από τις εργασίες που εκτελεί η `init` είναι να διαβάζει το αρχείο [.filename]#/etc/ttys# και να ξεκινά μια διεργασία `getty` σε κάθε διαθέσιμο τερματικό. Η διεργασία `getty` αναλαμβάνει να διαβάσει το όνομα χρήστη και να ξεκινήσει το πρόγραμμα `login`.

Για να ρυθμιστούν τα τερματικά στο FreeBSD σύστημα σας, θα πρέπει να εκτελέσετε τα ακόλουθα βήματα ως `root`:

[.procedure]
. Προσθέστε μια γραμμή στο [.filename]#/etc/ttys# με το όνομα της συσκευής όπως φαίνεται στον κατάλογο [.filename]#/dev#, αν δεν υπάρχει ήδη.
. Καθορίστε ότι θα εκτελείται η `/usr/libexec/getty` στην θύρα, και επιλέξτε τον κατάλληλο τύπο _getty_ από το αρχείο [.filename]#/etc/gettytab#.
. Καθορίστε τον προεπιλεγμένο τύπο τερματικού.
. Ενεργοποιήστε τη θύρα θέτοντας την αντίστοιχη επιλογή στο "on".
. Επιλέξτε αν η θύρα θα είναι ασφαλής με την επιλογή "secure".
. Εξαναγκάστε την `init` να διαβάσει ξανά το αρχείο [.filename]#/etc/ttys#.

Ως προαιρετικό βήμα, μπορείτε να δημιουργήσετε ένα προσαρμοσμένο τύπο _getty_ για να τον χρησιμοποιήσετε στο βήμα 2, στην καταχώριση του [.filename]#/etc/gettytab#. Στο κεφάλαιο αυτό δεν θα σας εξηγήσουμε πως γίνεται αυτό. Σας προτρέπουμε να διαβάσετε τις σελίδες manual του man:gettytab[5] και man:getty[8] για περισσότερες πληροφορίες.

[[term-etcttys]]
==== Προσθέτοντας μια Καταχώριση στο [.filename]#/etc/ttys#

Το αρχείο [.filename]#/etc/ttys# περιέχει μια λίστα όλων των θυρών του FreeBSD συστήματος σας στις οποίες θέλετε να επιτρέπεται η είσοδος στο σύστημα. Για παράδειγμα, υπάρχει μια καταχώριση σε αυτό το αρχείο για την πρώτη εικονική κονσόλα [.filename]#ttyv0#. Μέσω αυτής της καταχώρισης, μπορείτε να εισέλθετε στο σύστημα από την κονσόλα. Το αρχείο αυτό περιέχει επίσης καταχωρίσεις για άλλες εικονικές κονσόλες, σειριακές θύρες και ψευδό-τερματικά. Για κάποιο τερματικό που είναι συνδεμένο απευθείας σε μια σειριακή θύρα, γράψτε απλώς την καταχώριση της σειριακής συσκευής όπως φαίνεται στον κατάλογο [.filename]#/dev#, χωρίς να γράψετε και τον κατάλογο [.filename]#/dev# (για παράδειγμα, η συσκευή [.filename]#/dev/ttyv0# θα καταχωρισθεί ως [.filename]#ttyv0#).

Η προεπιλεγμένη εγκατάσταση του FreeBSD περιέχει ένα αρχείο [.filename]#/etc/ttys# το οποίο υποστηρίζει τις πρώτες τέσσερις σειριακές θύρες: [.filename]#ttyu0# ως και [.filename]#ttyu3#. Αν συνδέσετε τερματικό σε κάποια από αυτές τις θύρες, δεν χρειάζεται να προσθέσετε άλλη καταχώριση.

[[ex-etc-ttys]]
.Προσθήκη Καταχωρίσεων για τα Τερματικά στο [.filename]#/etc/ttys#
[example]
====
Ας υποθέσουμε ότι θέλουμε να συνδέσουμε δύο τερματικά στο σύστημα: ένα Wyse-50 και ένα παλιό IBM PC 286 στο οποίο εκτελούμε την εφαρμογή Procomm με την οποία εξομοιώνεται ένα τερματικό τύπου VT-100. Συνδέουμε το Wyse στη δεύτερη σειριακή θύρα και το 286 στην έκτη σειριακή θύρα (η οποία βρίσκεται σε μια κάρτα πολλαπλών θυρών). Οι αντίστοιχες καταχωρίσεις στο αρχείο [.filename]#/etc/ttys# θα μοιάζουν με τις παρακάτω:

[.programlisting]
....
ttyu1  "/usr/libexec/getty std.38400"  wy50  on  insecure
ttyu5   "/usr/libexec/getty std.19200"  vt100  on  insecure
....

* Το πρώτο πεδίο, είναι συνήθως το όνομα του ειδικού αρχείου τερματικού όπως φαίνεται στον κατάλογο [.filename]#/dev#.

* Το δεύτερο πεδίο, είναι η εντολή που θα εκτελεστεί για αυτή τη γραμμή, η οποία είναι συνήθως η man:getty[8]. Η `getty` αρχικοποιεί και ανοίγει τη γραμμή, ρυθμίζει την ταχύτητα, εμφανίζει την προτροπή για εισαγωγή ονόματος χρήστη, και εκτελεί το πρόγραμμα man:login[1].Το πρόγραμμα `getty` δέχεται μια (προαιρετική) παράμετρο στη γραμμή εντολής του, τον τύπο του _getty_. Ο τύπος του _getty_ καθορίζει τα χαρακτηριστικά της γραμμής του τερματικού, όπως π.χ. το ρυθμό μετάδοσης σε bps και την ισοτιμία (parity). Το πρόγραμμα `getty` διαβάζει αυτά τα χαρακτηριστικά από το αρχείο [.filename]#/etc/gettytab#.Το αρχείο [.filename]#/etc/gettytab# περιέχει πολλές καταχωρίσεις για γραμμές τερματικών, τόσο παλιές όσο και καινούριες. Στις περισσότερες από αυτές τις περιπτώσεις, οι καταχωρίσεις που ξεκινούν με το κείμενο `std`, θα λειτουργήσουν για απευθείας συνδεδεμένα τερματικά. Αυτές οι καταχωρίσεις αγνοούν την ισοτιμία. Υπάρχει μια καταχώριση `std` για κάθε ρυθμό μετάδοσης, από 110 ως 115200. Φυσικά, μπορείτε να προσθέσετε τις δικές σας καταχωρίσεις σε αυτό το αρχείο. Η σελίδα manual του man:gettytab[5] περιέχει περισσότερες πληροφορίες.Όταν ρυθμίζετε τον τύπο της _getty_ στο αρχείο [.filename]#/etc/ttys#, βεβαιωθείτε ότι ταιριάζουν οι αντίστοιχες ρυθμίσεις επικοινωνιών στο τερματικό σας.Στο παράδειγμα μας, το Wyse-50 δεν χρησιμοποιεί ισοτιμία και συνδέεται στα 38400 bps. Το 286 PC δεν χρησιμοποιεί ισοτιμία, και συνδέεται στα 19200 bps.

* Το τρίτο πεδίο είναι ο τύπος του τερματικού που συνδέεται συνήθως σε αυτή τη γραμμή tty. Για θύρες επιλογικών συνδέσεων (dial-up), η τιμή αυτού του πεδίου συχνά θα είναι `unknown` ή `dialup`, καθώς οι χρήστες θα μπορούν να πραγματοποιήσουν σύνδεση με οποιοδήποτε λογισμικό ή τερματικό. Για άμεσα συνδεμένα τερματικά, ο τύπος τερματικού δεν αλλάζει, έτσι μπορείτε να βάλετε ένα πραγματικό τύπο τερματικού σε αυτό το πεδίο, τον οποίο θα βρείτε στη βάση δεδομένων του man:termcap[5].Για παράδειγμα, το Wyse-50 χρησιμοποιεί τον πραγματικό τύπο τερματικού του, ενώ το 286 PC που εκτελεί το Procomm, έχει ρυθμιστεί να εξομοιώνει τερματικό τύπου VT-100.

* Το τέταρτο πεδίο καθορίζει αν η θύρα θα είναι ενεργή. Τοποθετώντας εδώ τη λέξη `on`, η `init` θα ξεκινήσει το πρόγραμμα που αναφέρεται στο δεύτερο πεδίο, την `getty`. Αν βάλετε `off` σε αυτό το πεδίο, δεν θα εκτελεστεί η `getty`, και έτσι δεν θα μπορεί να γίνει είσοδος στο σύστημα από τη συγκεκριμένη θύρα.

* Το τελευταίο πεδίο χρησιμοποιείται για να καθορίσει αν η θύρα είναι ασφαλής. Αν χαρακτηρίσετε μια θύρα ως ασφαλή, σημαίνει ότι την εμπιστεύεστε αρκετά ώστε να επιτρέπετε την είσοδο του `root` μέσω αυτής (ή οποιουδήποτε λογαριασμού με ID 0). Δεν επιτρέπεται η είσοδος του `root` σε μια θύρα που έχει χαρακτηριστεί μη-ασφαλής. Σε μη-ασφαλείς θύρες, οι χρήστες πρέπει να εισέρχονται χρησιμοποιώντας ένα συνηθισμένο λογαριασμό χρήστη, και να χρησιμοποιούν την εντολή man:su[1] ή άλλο αντίστοιχο μηχανισμό για να αποκτήσουν προνόμια υπερχρήστη.Σας συνιστούμε ανεπιφύλακτα να χρησιμοποιήσετε τη ρύθμιση "insecure", ακόμα και για τερματικά που βρίσκονται σε κλειδωμένα δωμάτια. Είναι αρκετά εύκολο να εισέλθετε ως κανονικός χρήστης και να χρησιμοποιήσετε την εντολή `su` αν χρειάζεστε προνόμια υπερχρήστη.
====

[[term-hup]]
==== Εξαναγκάστε την `init` να Ξαναδιαβάσει το [.filename]#/etc/ttys#

Έχοντας κάνει τις απαραίτητες αλλαγές στο αρχείο [.filename]#/etc/ttys#, θα πρέπει να στείλετε σήμα SIGHUP (hangup) στην διεργασία `init` για να την αναγκάσετε να διαβάσει ξανά το αρχείο ρυθμίσεων της. Για παράδειγμα:

[source,shell]
....
# kill -HUP 1
....

[NOTE]
====
Η `init` είναι πάντοτε η πρώτη διεργασία που εκτελείται σε ένα σύστημα, και έτσι θα έχει πάντοτε τον αριθμό διεργασίας (PID) 1.
====

Αν όλες οι ρυθμίσεις είναι σωστές, τα καλώδια είναι στη θέση τους, και τα τερματικά είναι ενεργά, θα εκτελεστεί η `getty` σε κάθε τερματικό, και στο σημείο αυτό θα δείτε την προτροπή εισόδου (login) στις οθόνες των τερματικών σας.

[[term-debug]]
=== Αντιμετώπιση Προβλημάτων Σύνδεσης

Ακόμα και αν δώσετε μεγάλη προσοχή στις λεπτομέρειες, πάντα μπορεί να πάει κάτι στραβά όταν ρυθμίζετε ένα τερματικό. Εδώ θα βρείτε μια λίστα από συμπτώματα και συνιστώμενες διορθώσεις.

==== Δεν Εμφανίζεται Προτροπή Εισόδου (login)

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

Βεβαιωθείτε ότι το καλώδιο είναι καλά συνδεμένο τόσο στο τερματικό, όσο και στον υπολογιστή που εκτελεί FreeBSD. Βεβαιωθείτε ότι είναι το σωστό είδος καλωδίου.

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

Βεβαιωθείτε ότι εκτελείται η διαδικασία `getty` που εξυπηρετεί το τερματικό. Για να δείτε μια λίστα με τις ενεργές διαδικασίες `getty`, χρησιμοποιήστε την εντολή `ps`:

[source,shell]
....
# ps -axww|grep getty
....

Θα πρέπει να δείτε μια καταχώριση για το τερματικό σας. Για παράδειγμα, η ακόλουθη οθόνη δείχνει ότι η διεργασία `getty` εκτελείτε στη δεύτερη σειριακή θύρα [.filename]#ttyu1# και χρησιμοποιεί την καταχώριση `std.38400` στο αρχείο [.filename]#/etc/gettytab#:

[source,shell]
....
22189  d1  Is+    0:00.03 /usr/libexec/getty std.38400 ttyu1
....

Αν δεν εκτελείται καμιά διεργασία `getty`, βεβαιωθείτε ότι έχετε ενεργοποιήσει τη θύρα στο [.filename]#/etc/ttys#. Επίσης θυμηθείτε να εκτελέσετε την εντολή `kill -HUP 1` μετά την τροποποίηση του αρχείου [.filename]#ttys#.

Αν εκτελείται η διεργασία `getty` αλλά το τερματικό εξακολουθεί να μη δείχνει προτροπή εισόδου, ή αν δείχνει προτροπή αλλά δεν σας επιτρέπει να γράψετε, ίσως το τερματικό σας ή το καλώδιο να μην επιτρέπουν συνεννόηση μέσω υλικού (hardware handshake). Δοκιμάστε να αλλάξετε την καταχώριση στο αρχείο [.filename]#/etc/ttys# από `std.38400` σε `3wire.38400` (θυμηθείτε να εκτελέσετε την εντολή `kill -HUP 1` μετά την τροποποίηση του [.filename]#/etc/ttys#). Η καταχώριση `3wire` είναι αντίστοιχη με την `std`, αλλά αγνοεί το hardware handshaking. Μπορεί επίσης να χρειαστεί να μειώσετε το ρυθμό σηματοδοσίας (baud) και να ενεργοποιήσετε τον έλεγχο ροής μέσω λογισμικού όταν χρησιμοποιείτε το `3wire`, προκειμένου να αποφύγετε υπερχείλιση της προσωρινής μνήμης (buffer overflow).

==== Αν Βλέπετε Σκουπίδια Αντί για Προτροπή Εισόδου

Βεβαιωθείτε ότι το τερματικό και το FreeBSD συμφωνούν στο ρυθμό bps και στις ρυθμίσεις ισοτιμίας. Ελέγξτε τις διεργασίες `getty` για να βεβαιωθείτε ότι εκτελείτε το σωστό τύπο _getty_. Αν αυτό δεν συμβαίνει, επεξεργαστείτε το αρχείο [.filename]#/etc/ttys# και εκτελέστε την εντολή `kill -HUP 1`.

==== Οι Χαρακτήρες Εμφανίζονται Διπλοί, το Password Εμφανίζεται κατά την Πληκτρολόγηση

Αλλάξτε τη ρύθμιση του τερματικού (ή του προγράμματος εξομοίωσης τερματικού) από "half duplex" ή "local echo" σε "full duplex".

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

[WARNING]
====

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

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

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

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

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

==== Modems και Καλώδια

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

[[serialcomms-signal-names]]
.Ονομασίες Σημάτων
[cols="1,1", frame="none", options="header"]
|===
<| Ακρωνύμια
<| Ονόματα

|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, αυτό μπορεί να σας φανεί άβολο.

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

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

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

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

[source,shell]
....
4850 ??  I      0:00.09 /usr/libexec/getty V19200 ttyu0
....

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

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

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

Υπάρχουν τρία αρχεία ρυθμίσεων συστήματος στον κατάλογο [.filename]#/etc#, τα οποία πιθανώς θα χρειαστεί να επεξεργαστείτε για να επιτρέψετε την είσοδο μέσω επιλογικής σύνδεσης στο FreeBSD σύστημα σας. Το πρώτο αρχείο είναι το [.filename]#/etc/gettytab#, το οποίο περιέχει πληροφορίες ρύθμισης για τον δαίμονα [.filename]#/usr/libexec/getty# Το δεύτερο αρχείο είναι το [.filename]#/etc/ttys# το οποίο περιέχει πληροφορίες που γνωστοποιούν στην [.filename]#/sbin/init# σε ποιες συσκευές [.filename]#tty# θα πρέπει να εκτελούνται διεργασίες `getty`. Τέλος, μπορείτε να βάλετε εντολές αρχικοποίησης της θύρας στο script [.filename]#/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:` στην αρχικά ρυθμισμένη ταχύτητα, και εξετάζει τους χαρακτήρες που λαμβάνει ως απάντηση. Αν ο χρήστης δει σκουπίδια, θεωρείται ότι γνωρίζει ότι πρέπει να πιέσει το kbd:[Enter] μέχρι να πάρει μια προτροπή που μπορεί να αναγνωρίσει. Αν οι ρυθμοί δεδομένων δεν ταιριάζουν, η `getty` βλέπει οτιδήποτε γράφει ο χρήστης ως "σκουπίδια", και έτσι δοκιμάζει την επόμενη ταχύτητα και στέλνει ξανά την προτροπή `login:`. Η διαδικασία μπορεί να επαναληφθεί όσες φορές χρειάζεται, αλλά συνήθως χρειάζονται μόνο μια-δυο προσπάθειες μέχρι ο χρήστης να λάβει κανονική προτροπή. Προφανώς αυτή η ακολουθία εισόδου δεν είναι τόσο καθαρή όπως η προηγούμενη μέθοδος "κλειδωμένης ταχύτητας", αλλά κάποιος χρήστης που βρίσκεται σε γραμμή χαμηλής ταχύτητας, μάλλον θα λάβει καλύτερη απόκριση σε εφαρμογές πλήρους οθόνης.

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

==== [.filename]#/etc/gettytab#

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

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

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

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

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

[.programlisting]
....
#
# 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 υψηλότερης ταχύτητας, πιθανόν να χρειαστεί να προσθέσετε μια καταχώριση στο [.filename]#/etc/gettytab#. Παρακάτω φαίνεται μια καταχώριση που μπορεί να χρησιμοποιηθεί για modem 14.4 Kbps με μέγιστη ταχύτητα σειριακής θύρας 19.2 Kbps:

[.programlisting]
....
#
# 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. Παρακάτω φαίνεται ένα παράδειγμα μια καταχώρισης στο [.filename]#gettytab# που ξεκινάει από τα 57.6 Kbps:

[.programlisting]
....
#
# 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.

[[dialup-ttys]]
==== [.filename]#/etc/ttys#

Έχουμε ήδη καλύψει τη ρύθμιση του αρχείου [.filename]#/etc/ttys# στο <<ex-etc-ttys>>. Η ρύθμιση για modems είναι παρόμοια, αλλά πρέπει να δώσουμε διαφορετικό όρισμα στην `getty` και να καθορίσουμε διαφορετικό τύπο τερματικού. Η γενική μορφή τόσο για κλειδωμένη όσο και για μεταβλητή ταχύτητα είναι η παρακάτω:

[.programlisting]
....
ttyu0   "/usr/libexec/getty xxx"   dialup on
....

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

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

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

[source,shell]
....
# kill -HUP 1
....

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

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

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

[.programlisting]
....
ttyu0   "/usr/libexec/getty std.19200"   dialup on
....

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

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

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

[.programlisting]
....
ttyu0   "/usr/libexec/getty V19200"   dialup on
....

==== [.filename]#/etc/rc.d/serial#

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

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

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

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

Αν έχετε ένα 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:

[.programlisting]
....
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`.

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

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

[.programlisting]
....
ATZ
AT&B1&W
....

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

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

[.programlisting]
....
ATZ
AT&B2&W
....

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

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

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

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

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

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

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

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

[source,shell]
....
  114 ??  I      0:00.10 /usr/libexec/getty V19200 ttyu0
  115 ??  I      0:00.10 /usr/libexec/getty V19200 ttyu1
....

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

[source,shell]
....
  114 d0  I      0:00.10 /usr/libexec/getty V19200 ttyu0
....

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

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

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

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

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

* Το όνομα της αρχικής ικανότητας που καθορίζεται στο αρχείο [.filename]#/etc/ttys# για τη γραμμή πρέπει να ταιριάζει με το όνομα της ικανότητας στο [.filename]#/etc/gettytab#
* Κάθε καταχώριση `nx=` ταιριάζει με το όνομα μιας αντίστοιχης ικανότητας στο [.filename]#gettytab#
* Κάθε καταχώριση `tc=` ταιριάζει με το όνομα μιας αντίστοιχης ικανότητας στο [.filename]#gettytab#

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

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

[[dialout]]
== Υπηρεσία Επιλογικής Σύνδεσης

[WARNING]
====

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

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

Η υπηρεσία αυτή χρησιμεύει επίσης για να συνδεθείτε σε μια BBS.

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

[[hayes-unsupported]]
=== Το τύπου Hayes Modem μου δεν Υποστηρίζεται, Τι Μπορώ να Κάνω;

Στην πραγματικότητα, η σελίδα manual της `tip` δεν είναι ενημερωμένη. Υπάρχει ήδη κατάλληλο γενικό πρόγραμμα κλήσης για modems της Hayes. Απλώς χρησιμοποιήστε την καταχώριση `at=hayes` στο αρχείο [.filename]#/etc/remote#.

Το πρόγραμμα οδήγησης Hayes δεν είναι αρκετά έξυπνο ώστε να αναγνωρίζει κάποια από τα προχωρημένα χαρακτηριστικά των νεώτερων modems. Μπορεί να μπερδευτεί από μηνύματα όπως τα `BUSY`, `NO DIALTONE`, ή `CONNECT 115200`. Θα πρέπει να απενεργοποιήσετε αυτά τα μηνύματα όταν χρησιμοποιείται την `tip` (στέλνοντας την εντολή `ATX0&W`).

Επίσης, το μέγιστο χρονικό διάστημα το οποίο περιμένει η `tip` είναι 60 δευτερόλεπτα. Το modem σας θα πρέπει να έχει μικρότερο χρονικό περιθώριο, αλλιώς η tip θα νομίζει ότι υπάρχει πρόβλημα επικοινωνίας. Δοκιμάστε την εντολή `ATS7=45&W`.

[[direct-at]]
=== Πως Υποτίθεται Ότι θα Στείλω Αυτές τις `ΑΤ` Εντολές;

Δημιουργήστε αυτό που ονομάζεται "απευθείας" καταχώριση στο αρχείο [.filename]#/etc/remote#. Για παράδειγμα, αν το modem σας είναι συνδεμένο στην πρώτη σειριακή θύρα, [.filename]#/dev/cuau0#, προσθέστε την ακόλουθη γραμμή:

[.programlisting]
....
cuau0:dv=/dev/cuau0:br#19200:pa=none
....

Στην ικανότητα br, χρησιμοποιήστε τον υψηλότερο ρυθμό bps που υποστηρίζει το modem σας. Έπειτα, πληκτρολογήστε `tip cuau0` και θα συνδεθείτε με το modem σας

Ή χρησιμοποιήστε την `cu` ως `root`, δίνοντας την ακόλουθη εντολή:

[source,shell]
....
# cu -lline -sspeed
....

Το _line_ είναι η σειριακή θύρα (π.χ. [.filename]#/dev/cuau0#) και το _speed_ είναι η ταχύτητα (π.χ. `57600`). Όταν τελειώσετε με τις εντολές ΑΤ, γράψτε `~.` για να τερματίσετε τη σύνδεση.

[[gt-failure]]
=== Το Σύμβολο `@` της Ικανότητας pn Δεν Λειτουργεί!

Το σύμβολο `@` της ικανότητας τηλεφωνικού αριθμού (pn, phone number) οδηγεί την tip να διαβάσει το αρχείο [.filename]#/etc/phones# για ένα τηλεφωνικό αριθμό. Αλλά το σύμβολο `@` είναι επίσης ένας ειδικός χαρακτήρας σε αρχεία ικανοτήτων όπως το [.filename]#/etc/remote#. Θα πρέπει να χρησιμοποιήσετε την ανάποδη κάθετο για να δηλώσετε ότι δεν επιθυμείτε να έχει επίδραση ειδικού χαρακτήρα:

[.programlisting]
....
pn=\@
....

[[dial-command-line]]
=== Πως Μπορώ να Καλέσω Ένα Τηλεφωνικό Αριθμό Από την Γραμμή Εντολών;

Βάλτε μια "γενική" καταχώριση στο αρχείο [.filename]#/etc/remote#. Για παράδειγμα:

[.programlisting]
....
tip115200|Dial any phone number at 115200 bps:\
        :dv=/dev/cuau0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
        :dv=/dev/cuau0:br#57600:at=hayes:pa=none:du:
....

Έπειτα μπορείτε να δίνετε εντολές όπως:

[source,shell]
....
# tip -115200 5551234
....

Αν προτιμάτε την `cu` αντί για την `tip`, χρησιμοποιήστε μια γενική καταχώριση για την `cu`:

[.programlisting]
....
cu115200|Use cu to dial any number at 115200bps:\
        :dv=/dev/cuau1:br#57600:at=hayes:pa=none:du:
....

και πληκτρολογήστε:

[source,shell]
....
# cu 5551234 -s 115200
....

[[set-bps]]
=== Πρέπει να Πληκτρολογώ το Ρυθμό bps Κάθε Φορά που το Κάνω Αυτό;

Θα πρέπει να προσθέσετε μια καταχώριση `tip1200` ή `cu1200`, αλλά μπορείτε να βάλετε την δική σας επιθυμητή τιμή στην ικανότητα br. Η εντολή `tip` θεωρεί ότι τα 1200 bps είναι μια καλή προεπιλογή, και για το λόγο αυτό ψάχνει να βρει μια καταχώριση `tip1200`. Δεν χρειάζεται ωστόσο να χρησιμοποιήσετε ταχύτητα 1200 bps.

[[terminal-server]]
=== Έχω Πρόσβαση σε Ένα Αριθμό Υπολογιστών Μέσω Ενός Εξυπηρετητή Τερματικών

Αντί να περιμένετε μέχρι να συνδεθείτε και να πληκτρολογείτε `CONNECT host` κάθε φορά, χρησιμοποιήστε την ικανότητα `cm` του tip. Για παράδειγμα, δείτε τις παρακάτω καταχωρίσεις στο [.filename]#/etc/remote#:

[.programlisting]
....
pain|pain.deep13.com|Forrester's machine:\
        :cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
        :cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
        :dv=/dev/cuau2:br#38400:at=hayes:du:pa=none:pn=5551234:
....

Το παραπάνω, θα σας επιτρέψει να γράφετε `tip pain` ή `tip muffin` για να συνδέεστε στους υπολογιστές `pain` ή `muffin`, και `tip deep13` για να συνδέεστε στον εξυπηρετητή τερματικών.

[[tip-multiline]]
=== Μπορεί η Tip να Δοκιμάσει Περισσότερες Από Μια Γραμμές για κάθε Σύνδεση;

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

Δημιουργήστε μια καταχώριση για το πανεπιστήμιο σας στο [.filename]#/etc/remote# και χρησιμοποιήστε το `@` στην ικανότητα `pn`:

[.programlisting]
....
big-university:\
        :pn=\@:tc=dialout
dialout:\
        :dv=/dev/cuau3:br#9600:at=courier:du:pa=none:
....

Έπειτα, δημιουργήστε μια λίστα με τους αριθμούς τηλεφώνων του πανεπιστημίου στο [.filename]#/etc/phones#:

[.programlisting]
....
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
....

Η `tip` θα δοκιμάσει κάθε μία, με τη σειρά που εμφανίζονται, και θα σταματήσει. Αν θέλετε να συνεχίζει την προσπάθεια, εκτελέστε την `tip` μέσα σε ένα βρόγχο while.

[[multi-controlp]]
=== Γιατί Πρέπει να Πιέσω kbd:[Ctrl+P] Δύο Φορές για να Στείλω το Συνδυασμό kbd:[Ctrl+P] Μια Φορά;

Ο συνδυασμός πλήκτρων kbd:[Ctrl+P] αποτελεί τον προεπιλεγμένο χαρακτήρα "εξαναγκασμού (force)", και χρησιμοποιείται για να καταλάβει η `tip` ότι ο επόμενος χαρακτήρας θα πρέπει να χρησιμοποιηθεί όπως είναι. Μπορείτε να θέσετε τον χαρακτήρα εξαναγκασμού σε οποιοδήποτε άλλο χαρακτήρα, χρησιμοποιώντας την ακολουθία διαφυγής `~s`, η οποία σημαίνει "ρύθμισε μια μεταβλητή".

Πληκτρολογήστε `~sforce=single-char` και συνεχίστε με ένα χαρακτήρα νέας γραμμής. Το _single-char_ είναι οποιοσδήποτε μονός χαρακτήρας. Αν αφήσετε κενό το _single-char_, ο χαρακτήρας εξαναγκασμού θα είναι ο nul, τον οποίο μπορείτε να πληκτρολογήσετε χρησιμοποιώντας το συνδυασμό πλήκτρων kbd:[Ctrl+2] ή kbd:[Ctrl+Space]. Μια αρκετά καλή τιμή για το _single-char_ είναι το kbd:[Shift+Ctrl+6], που χρησιμοποιείται μόνο σε κάποιους εξυπηρετητές τερματικών.

Μπορείτε να ορίσετε το χαρακτήρα εξαναγκασμού σε όποιον εσείς επιθυμείτε, με την ακόλουθη καταχώριση στο αρχείο [.filename]#$HOME/.tiprc#:

[.programlisting]
....
force=single-char
....

[[uppercase]]
=== Ξαφνικά Ότι Γράφω Εμφανίζεται με Κεφαλαία Γράμματα!!

Μάλλον έχετε πιέσει kbd:[Ctrl+A], που είναι ο "χαρακτήρας ανύψωσης" της `tip`, και είναι σχεδιασμένος ειδικά για όσους έχουν πρόβλημα με το πλήκτρο kbd:[CAPS LOCK]. Χρησιμοποιήστε την εντολή `~s` που δείξαμε παραπάνω, για να θέσετε μια λογική τιμή στη μεταβλητή `raisechar`. Στην πραγματικότητα, μπορείτε να θέσετε την ίδια τιμή με τον χαρακτήρα εξαναγκασμού, αν δεν σκοπεύετε ποτέ να χρησιμοποιήσετε κάποια από αυτές τις δυνατότητες.

Παρακάτω φαίνεται ένα υπόδειγμα αρχείου [.filename]#.tiprc#, το οποίο είναι τέλειο για χρήστες του Emacs που χρειάζεται να πληκτρολογούν συχνά kbd:[Ctrl+2] και kbd:[Ctrl+A]:

[.programlisting]
....
force=^^
raisechar=^^
....

Ο χαρακτήρας `^^` είναι ο kbd:[Shift+Ctrl+6].

[[tip-filetransfer]]
=== Πως Μπορώ να Μεταφέρω Αρχεία με την `tip`;

Αν επικοινωνείτε με άλλο UNIX(R) σύστημα, μπορείτε να στείλετε και να λάβετε αρχεία με τις εντολές `~p` (put) και `~t` (take). Οι εντολές αυτές εκτελούν τις cat και echo στο απομακρυσμένο σύστημα για να λαμβάνουν και να στέλνουν αρχεία. Η σύνταξη τους είναι:

`~p` τοπικό-αρχείο [απομακρυσμένο-αρχείο]

`~t` απομακρυσμένο-αρχείο [τοπικό-αρχείο]

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

[[zmodem-tip]]
=== Πως Μπορώ να Εκτελέσω το zmodem με την `tip`;

Για να λάβετε αρχεία, ξεκινήστε το πρόγραμμα αποστολής στον απομακρυσμένο υπολογιστή. Έπειτα πληκτρολογήστε `~C rz` για να ξεκινήσετε την τοπική λήψη.

Για να στείλετε αρχεία, ξεκινήστε το πρόγραμμα λήψης στον απομακρυσμένο υπολογιστή. Έπειτα πληκτρολογήστε `~C sz files` για να στείλετε τα αρχεία στο απομακρυσμένο σύστημα.

[[serialconsole-setup]]
== Ρύθμιση της Σειριακής Κονσόλας

[WARNING]
====

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

[[serialconsole-intro]]
=== Εισαγωγή

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

Όπως περιγράφεται στο crossref:boot[boot,Η Διαδικασία Εκκίνησης του FreeBSD], το FreeBSD χρησιμοποιεί σύστημα εκκίνησης τριών σταδίων. Τα πρώτα δύο στάδια είναι στον κώδικα του boot block, ο οποίος αποθηκεύεται στην αρχή της κατάτμησης (slice) του δίσκου εκκίνησης του FreeBSD. Το boot block κατόπιν φορτώνει και εκτελεί τον φορτωτή εκκίνησης ([.filename]#/boot/loader#) ως κώδικα του τρίτου σταδίου.

Για να ενεργοποιήσετε την σειριακή κονσόλα, θα πρέπει να ρυθμίσετε τον κώδικα του boot block, το φορτωτή εκκίνησης, και τον πυρήνα.

[[serialconsole-howto-fast]]
=== Ρύθμιση Σειριακής Κονσόλας (Σύντομη Έκδοση)

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

[.procedure]
====
. Συνδέστε το σειριακό καλώδιο στην [.filename]#COM1# και στο τερματικό.
. Για να δείτε όλα τα μηνύματα εκκίνησης στην σειριακή κονσόλα, δώστε την παρακάτω εντολή ως υπερχρήστης:
+
[source,shell]
....
# echo 'console="comconsole"' >> /boot/loader.conf
....
+
. Επεξεργαστείτε το [.filename]#/etc/ttys# και αλλάξτε το `off` σε `on` και το `dialup` σε `vt100` για την καταχώριση [.filename]#ttyu0#. Διαφορετικά, δεν θα χρειάζεται κωδικός πρόσβασης για τη σύνδεση μέσω της σειριακής κονσόλας, το οποίο αποτελεί πιθανό κενό ασφαλείας.
. Επανεκκινήστε το σύστημα για να δείτε αν ίσχυσαν οι αλλαγές.
====

Αν χρειάζεστε διαφορετικές ρυθμίσεις, θα βρείτε λεπτομέρειες για την ρύθμιση στο <<serialconsole-howto>>.

[[serialconsole-howto]]
=== Ρύθμιση Σειριακής Κονσόλας

[.procedure]
====
. Προετοιμάστε ένα σειριακό καλώδιο.
+ 
Θα χρειαστείτε είτε ένα καλώδιο τύπου null-modem, είτε ένα τυποποιημένο σειριακό καλώδιο και ένα προσαρμογέα null-modem. Δείτε το <<serial-cables-ports>> για λεπτομέρειες σχετικά με τα είδη των σειριακών καλωδίων.
. Αποσυνδέστε το πληκτρολόγιο σας.
+ 
Τα περισσότερα PC ψάχνουν για το πληκτρολόγιο κατά την διάρκεια των διαγνωστικών εκκίνησης (POST, Power On Self Test), και θα αναφέρουν σφάλμα αν το πληκτρολόγιο δεν είναι συνδεμένο. Μερικά μηχανήματα παραπονιούνται ηχηρά για την έλλειψη πληκτρολογίου, και δεν συνεχίζουν την εκκίνηση μέχρι να το συνδέσετε.
+ 
Αν ο υπολογιστής σας παραπονιέται για το λάθος, αλλά ξεκινά έτσι και αλλιώς, δεν χρειάζεται να κάνετε τίποτα ιδιαίτερο για αυτό. (Μερικά μηχανήματα με BIOS της Phoenix, λένε απλώς `Keyboard Failed` και συνεχίζουν την εκκίνηση κανονικά.)
+ 
Αν ο υπολογιστής σας αρνείται να εκκινήσει χωρίς πληκτρολόγιο, θα πρέπει να ρυθμίσετε το BIOS ώστε να αγνοεί το λάθος (αν γίνεται). Συμβουλευτείτε το εγχειρίδιο της μητρικής σας για λεπτομέρειες σχετικά με αυτή τη διαδικασία.
+
[TIP]
======

Ρυθμίστε το πληκτρολόγιο σε "Not installed" στο BIOS. Η ρύθμιση αυτή απλώς αποτρέπει το BIOS από το να ανιχνεύει το πληκτρολόγιο στην εκκίνηση, και δεν πρόκειται να σας εμποδίσει να το χρησιμοποιήσετε κανονικά. Μπορείτε να αφήσετε το πληκτρολόγιο συνδεμένο ακόμα και όταν έχετε ενεργοποιήσει τη ρύθμιση "Not installed". Αν δεν υπάρχει η παραπάνω ρύθμιση στο BIOS, ψάξτε για την επιλογή "Halt on Error". Αλλάξτε τη σε "All but Keyboard" ή ακόμα και σε "No Errors", και θα έχετε το ίδιο αποτέλεσμα.
======
+
[NOTE]
======
Αν το σύστημα σας διαθέτει ποντίκι τύπου PS/2(R), πιθανόν να πρέπει να το αποσυνδέσετε και αυτό. Τα ποντίκια τύπου PS/2(R) έχουν κάποια κυκλώματα κοινά με το πληκτρολόγιο, γεγονός που μπορεί να προκαλέσει σύγχυση στο πρόγραμμα ανίχνευσης του πληκτρολογίου. Κάποια συστήματα, όπως το Gateway 2000 Pentium 90 MHz με AMI BIOS, συμπεριφέρονται με αυτό τον τρόπο. Σε γενικές γραμμές, αυτό δεν είναι πρόβλημα καθώς το ποντίκι έτσι και αλλιώς δεν είναι χρήσιμο χωρίς το πληκτρολόγιο.
======

. Συνδέστε ένα κουτό τερματικό στην [.filename]#COM1# ([.filename]#sio0#).
+ 
Αν δεν έχετε κουτό τερματικό, μπορείτε να συνδέσετε ένα παλιό PC/XT με ένα πρόγραμμα για modem, ή να χρησιμοποιήσετε τη σειριακή θύρα σε ένα άλλο μηχάνημα UNIX(R). Αν δεν έχετε σειριακή θύρα [.filename]#COM1# ([.filename]#sio0#), αγοράστε μια. Τη δεδομένη στιγμή δεν υπάρχει τρόπος να επιλέξετε άλλη θύρα εκτός από την [.filename]#COM1#, χωρίς να επαναμεταγλωττίσετε τα boot blocks. Αν χρησιμοποιείτε ήδη την [.filename]#COM1# για κάποια άλλη συσκευή, θα πρέπει να την αφαιρέσετε προσωρινά, και να εγκαταστήσετε νέο boot block και πυρήνα, μόλις συνδεθείτε στο FreeBSD. (Υποθέτουμε ότι η [.filename]#COM1# θα είναι έτσι και αλλιώς διαθέσιμη σε ένα εξυπηρετητή αρχείων/υπολογισμών/τερματικών. Αν πραγματικά χρειάζεστε την [.filename]#COM1# για κάτι άλλο (και δεν μπορείτε αυτό το κάτι άλλο να το μετακινήσετε στην [.filename]#COM2# ([.filename]#sio1#)), μάλλον δεν θα έπρεπε να ασχοληθείτε καθόλου με όλο αυτό το θέμα).
. Βεβαιωθείτε ότι το αρχείο ρυθμίσεων του πυρήνα σας έχει τις κατάλληλες επιλογές (flags) για την [.filename]#COM1# ([.filename]#sio0#).
+ 
Οι σχετικές επιλογές είναι:
+
`0x10`:::
Ενεργοποιεί την υποστήριξη κονσόλας για αυτή τη θύρα. Αν δεν τεθεί αυτή η επιλογή, τα υπόλοιπα flags για την κονσόλα δεν λαμβάνονται υπόψιν. Τη δεδομένη στιγμή, η υποστήριξη κονσόλας μπορεί να είναι ενεργοποιημένη μόνο σε μια θύρα. Η πρώτη που καθορίζεται στο αρχείο ρυθμίσεων, είναι και αυτή που θα προτιμηθεί. Από μόνη της, η επιλογή αυτή δεν θα ενεργοποιήσει την κονσόλα στη συγκεκριμένη σειριακή θύρα. Θα πρέπει να θέσετε το παρακάτω flag ή να χρησιμοποιήσετε την επιλογή `-h` που περιγράφεται παρακάτω, μαζί με αυτό το flag.

`0x20`:::
Εξαναγκάζει τη συγκεκριμένη θύρα να γίνει η κονσόλα (εκτός αν υπάρχει άλλη κονσόλα υψηλότερης προτεραιότητας) άσχετα με την επιλογή `-h` που περιγράφεται παρακάτω. Θα πρέπει να χρησιμοποιήσετε το flag `0x20` μαζί με το flag `0x10`.

`0x40`:::
Παρακρατεί τη συγκεκριμένη θύρα (σε συνδυασμό με την `0x10`) κάνοντας την μη διαθέσιμη για κανονική πρόσβαση. Δεν θα πρέπει να θέσετε αυτή την επιλογή στη σειριακή θύρα που σκοπεύετε να χρησιμοποιήσετε ως σειριακή κονσόλα. Η μόνη χρήση αυτού του flag, είναι να καθορίσετε ότι η θύρα θα χρησιμοποιηθεί για απομακρυσμένη εκσφαλμάτωση του πυρήνα (kernel debugging). Δείτε extref:{developers-handbook}[Το Βιβλίο του Προγραμματιστή] για περισσότερες λεπτομέρειες σχετικά με την απομακρυσμένη εκσφαλμάτωση.
+ 
Παράδειγμα:
+
[.programlisting]
....
device sio0 flags 0x10
....
+ 
Δείτε τη σελίδα manual man:sio[4] για περισσότερες λεπτομέρειες.
+ 
Αν δεν έχουν καθοριστεί flags, θα πρέπει να εκτελέσετε το UserConfig (σε διαφορετική κονσόλα) ή να επαναμεταγλωττίσετε τον πυρήνα.
. Δημιουργήστε το αρχείο [.filename]#boot.config# στον ριζικό κατάλογο της κατάτμησης `a` του δίσκου εκκίνησης.
+ 
Το αρχείο αυτό θα κατευθύνει τον κώδικα του boot block σχετικά με το πως θέλετε να εκκινήσει το σύστημα. Για να ενεργοποιήσετε την σειριακή κονσόλα, θα χρειαστείτε μία ή περισσότερες από τις παρακάτω επιλογές-αν θέλετε να προσδιορίσετε πολλαπλές επιλογές, θα πρέπει να τις περιλάβετε όλες στην ίδια γραμμή.
+
`-h`:::
Εναλλάσσει μεταξύ της εσωτερικής και της σειριακής κονσόλας. Για παράδειγμα, αν ξεκινήσετε από την εσωτερική κονσόλα (οθόνη), μπορείτε να χρησιμοποιήσετε την επιλογή `-h` για να κατευθύνετε το φορτωτή εκκίνησης και τον πυρήνα να χρησιμοποιήσουν τη σειριακή θύρα ως συσκευή κονσόλας. Εναλλακτικά, αν εκκινήσετε μέσω της σειριακής θύρας, μπορείτε να χρησιμοποιήσετε την επιλογή `-h` για να κατευθύνετε το φορτωτή εκκίνησης και τον πυρήνα να χρησιμοποιήσουν την κανονική κονσόλα αντί για τη σειριακή.

`-D`:::
Εναλλάσσει μεταξύ της απλής και της διπλής κονσόλας. Στην ρύθμιση απλής κονσόλας, θα χρησιμοποιηθεί είτε η εσωτερική κονσόλα (απεικόνιση σε οθόνη) είτε η σειριακή θύρα, ανάλογα με το πως έχει τεθεί η επιλογή `-h` που εξετάσαμε παραπάνω. Σε περίπτωση διπλής κονσόλας, θα ενεργοποιηθούν ταυτόχρονα τόσο η εσωτερική όσο και η σειριακή κονσόλα, άσχετα από τη ρύθμιση της επιλογής `-h`. Σημειώστε ωστόσο ότι η ρύθμιση διπλής κονσόλας μπορεί να ενεργοποιηθεί μόνο κατά την εκκίνηση, όσο εκτελείται το boot block. Μόλις δοθεί ο έλεγχος στο φορτωτή εκκίνησης, η μοναδική κονσόλα που παραμένει είναι αυτή που καθορίζεται από την επιλογή `-h`.

`-P`:::
Ενεργοποιεί την ανίχνευση πληκτρολογίου του boot block. Αν δεν βρεθεί πληκτρολόγιο, ενεργοποιούνται αυτόματα οι επιλογές `-D` και `-h`.
+
[NOTE]
======
Λόγω περιορισμών χώρου στην τρέχουσα έκδοση των boot blocks, η επιλογή `-P` μπορεί να ανιχνεύσει μόνο εκτεταμένα (extended) πληκτρολόγια. Πληκτρολόγια με λιγότερα από 101 πλήκτρα (και χωρίς τα πλήκτρα kbd:[F11] και kbd:[F12]) ίσως να μην ανιχνευθούν. Εξαιτίας αυτού του περιορισμού, είναι πιθανό να μην ανιχνευθούν και κάποια πληκτρολόγια φορητών υπολογιστών. Αν συμβαίνει αυτό στο σύστημα σας, θα πρέπει να σταματήσετε να χρησιμοποιείτε την επιλογή `-P`. Δυστυχώς, δεν υπάρχει κάποιος τρόπος να παρακάμψετε αυτό το πρόβλημα.
======
+ 
Χρησιμοποιήστε είτε την επιλογή `-P` για να επιλέξετε την κονσόλα αυτόματα, ή την επιλογή `-h` για να ενεργοποιήσετε τη σειριακή κονσόλα.
+ 
Μπορείτε επίσης να περιλάβετε και άλλες επιλογές που περιγράφονται στη σελίδα manual του man:boot[8].
+ 
Όλες οι επιλογές εκκίνησης, εκτός της `-P`, θα περάσουν στο φορτωτή εκκίνησης ([.filename]#/boot/loader#). Ο φορτωτής εκκίνησης θα καθορίσει αν η κονσόλα θα δημιουργηθεί στην οθόνη ή στη σειριακή θύρα, αφού εξετάσει μόνο την επιλογή `-h`. Αυτό σημαίνει ότι αν καθορίσετε την επιλογή `-D` αλλά όχι την επιλογή `-h` στο [.filename]#/boot.config#, θα μπορείτε να χρησιμοποιήσετε την σειριακή θύρα ως κονσόλα μόνο κατά την εκτέλεση του boot block. Ο φορτωτής εκκίνησης όμως θα χρησιμοποιήσει την εσωτερική κονσόλα (οθόνη).
. Εκκινήστε το μηχάνημα.
+ 
Όταν ξεκινήσετε το FreeBSD μηχάνημα, τα boot blocks θα δείξουν τα περιεχόμενα του [.filename]#/boot.config# στην κονσόλα. Για παράδειγμα:
+
[source,shell]
....
/boot.config: -P
Keyboard: no
....
+ 
Η δεύτερη γραμμή θα εμφανιστεί μόνο αν βάλετε την επιλογή `-P` στο [.filename]#/boot.config#, και δείχνει αν υπάρχει ή όχι συνδεμένο πληκτρολόγιο. Τα μηνύματα αυτά κατευθύνονται στην σειριακή ή στην εσωτερική κονσόλα, ή ακόμα και στις δύο, ανάλογα με την επιλογή που έχει γίνει στο [.filename]#/boot.config#.
+
[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
<| Επιλογές
<| Το μήνυμα εμφανίζεται στην

|καμία
|εσωτερική κονσόλα

|`-h`
|σειριακή κονσόλα

|`-D`
|εσωτερική και σειριακή κονσόλα

|`-Dh`
|σειριακή και εσωτερική κονσόλα

|`-P`, πληκτρολόγιο συνδεμένο
|εσωτερική κονσόλα

|`-P`, χωρίς πληκτρολόγιο
|σειριακή κονσόλα
|===
+ 
Μετά τα παραπάνω μηνύματα, θα υπάρξει μια μικρή παύση πριν τα boot blocks συνεχίσουν φορτώνοντας το φορτωτή εκκίνησης, και πριν εμφανιστούν περισσότερα μηνύματα στην κονσόλα. Υπό κανονικές συνθήκες, δεν χρειάζεται να διακόψετε τα boot blocks, αλλά ίσως θέλετε να το κάνετε αυτό για να βεβαιωθείτε ότι όλα είναι ρυθμισμένα σωστά.
+ 
Πιέστε οποιοδήποτε πλήκτρο εκτός από το kbd:[Enter] στην κονσόλα για να διακόψετε τη διαδικασία εκκίνησης. Τα boot blocks θα σας ρωτήσουν για περισσότερες πληροφορίες. Θα πρέπει να δείτε κάτι όπως το παρακάτω:
+
[source,shell]
....
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:
....
+ 
Επαληθεύστε ότι το παραπάνω μήνυμα εμφανίζεται είτε στη σειριακή κονσόλα, ή στην εσωτερική κονσόλα ή και στις δύο, ανάλογα με τις επιλογές που έχετε βάλει στο αρχείο [.filename]#/boot.config#. Αν το μήνυμα εμφανίζεται στην σωστή κονσόλα, πιέστε kbd:[Enter] για να συνεχίσετε με τη διαδικασία εκκίνησης.
+ 
Αν επιθυμείτε σειριακή κονσόλα, αλλά δεν βλέπετε την προτροπή σε αυτήν, υπάρχει κάποιο λάθος στις ρυθμίσεις. Στο μεταξύ, γράψτε `-h` και πιέστε kbd:[Enter] ή kbd:[Return] (αν γίνεται) για να πείτε στο boot block (και έπειτα στο φορτωτή εκκίνησης και τον πυρήνα) να επιλέξει τη σειριακή θύρα για την κονσόλα. Μόλις το σύστημα ξεκινήσει, κοιτάξτε ξανά τις ρυθμίσεις για να βρείτε που είναι το λάθος.
====

Μετά τη φόρτωση του φορτωτή εκκίνησης, βρίσκεστε στο τρίτο στάδιο της διαδικασίας εκκίνησης και έχετε ακόμα τη δυνατότητα να επιλέξετε μεταξύ της εσωτερικής και σειριακής κονσόλας, θέτοντας τις κατάλληλες μεταβλητές περιβάλλοντος στο φορτωτή εκκίνησης. Δείτε το <<serialconsole-loader>>.

[[serialconsole-summary]]
=== Περίληψη

Εδώ θα βρείτε μια περίληψη των διάφορων επιλογών που παρουσιάστηκαν σε αυτή την ενότητα, και την κονσόλα που επιλέχθηκε τελικά.

==== 1η Περίπτωση: Έχετε Θέσει το Flag 0x10 για τη Θύρα [.filename]#sio0#

[.programlisting]
....
device sio0 flags 0x10
....

[.informaltable]
[cols="1,1,1,1", frame="none", options="header"]
|===
<| Επιλογές στο /boot.config
<| Κονσόλα κατά τη διάρκεια των boot blocks
<| Κονσόλα κατά τη διάρκεια του φορτωτή εκκίνησης
<| Κονσόλα στον πυρήνα

|καμία
|εσωτερική
|εσωτερική
|εσωτερική

|`-h`
|σειριακή
|σειριακή
|σειριακή

|`-D`
|σειριακή και εσωτερική
|εσωτερική
|εσωτερική

|`-Dh`
|σειριακή και εσωτερική
|σειριακή
|σειριακή

|`-P`, πληκτρολόγιο συνδεμένο
|εσωτερική
|εσωτερική
|εσωτερική

|`-P`, χωρίς πληκτρολόγιο
|σειριακή και εσωτερική
|σειριακή
|σειριακή
|===

==== 2η Περίπτωση: Έχετε Θέσει το Flag 0x30 για την Θύρα [.filename]#sio0#

[.programlisting]
....
device sio0 flags 0x30
....

[.informaltable]
[cols="1,1,1,1", frame="none", options="header"]
|===
<| Επιλογές στο /boot.config
<| Κονσόλα κατά τη διάρκεια των boot blocks
<| Κονσόλα κατά τη διάρκεια του φορτωτή εκκίνησης
<| Κονσόλα στον πυρήνα

|καμία
|εσωτερική
|εσωτερική
|σειριακή

|`-h`
|σειριακή
|σειριακή
|σειριακή

|`-D`
|σειριακή και εσωτερική
|εσωτερική
|σειριακή

|`-Dh`
|σειριακή και εσωτερική
|σειριακή
|σειριακή

|`-P`, πληκτρολόγιο συνδεμένο
|εσωτερική
|εσωτερική
|σειριακή

|`-P`, χωρίς πληκτρολόγιο
|σειριακή και εσωτερική
|σειριακή
|σειριακή
|===

[[serialconsole-tips]]
=== Συμβουλές για την Σειριακή Κονσόλα

==== Ρύθμιση Μεγαλύτερης Ταχύτητας για τη Σειριακή Θύρα

Οι προεπιλεγμένες ρυθμίσεις της σειριακής θύρας είναι: 9600 baud, 8 bits, χωρίς ισοτιμία (parity), 1 stop bit. Αν θέλετε να αλλάξετε την προεπιλεγμένη ταχύτητα της κονσόλας, έχετε τις παρακάτω επιλογές:

* Επαναμεταγλωττίστε τα boot blocks θέτοντας τη μεταβλητή `BOOT_COMCONSOLE_SPEED` για να ορίσετε την νέα ταχύτητα κονσόλας. Δείτε το <<serialconsole-com2>> για λεπτομερείς οδηγίες σχετικά με τη μεταγλώττιση και εγκατάσταση νέων boot blocks.
+ 
Αν η ενεργοποίηση της σειριακής κονσόλας δεν γίνεται μέσω της επιλογής `-h`, ή αν η σειριακή κονσόλα που χρησιμοποιείται από τον πυρήνα είναι διαφορετική από αυτή που χρησιμοποιείται από τα boot blocks, θα πρέπει επίσης να προσθέσετε την παρακάτω επιλογή στο αρχείο ρυθμίσεων του πυρήνα, και να μεταγλωττίσετε ένα νέο πυρήνα:
+
[.programlisting]
....
options CONSPEED=19200
....

* Στις επιλογές εκκίνησης του πυρήνα, χρησιμοποιήστε το `-S`. Μπορείτε επίσης να προσθέσετε την επιλογή `-S` στο [.filename]#/boot.config#. Η σελίδα manual man:boot[8] περιέχει μια λίστα των υποστηριζόμενων επιλογών, και περιγράφει πως να τις προσθέσετε στο αρχείο [.filename]#/boot.config#.
* Ενεργοποιήστε την επιλογή `comconsole_speed` στο αρχείο [.filename]#/boot/loader.conf#.
+ 
Για να λειτουργήσει αυτή η επιλογή, θα πρέπει επίσης να θέσετε τιμές για τις επιλογές `console`, `boot_serial`, και `boot_multicons` στο ίδιο αρχείο, το [.filename]#/boot/loader.conf#. Παρακάτω φαίνεται ένα παράδειγμα χρήσης του `comconsole_speed` για αλλαγή ταχύτητα της σειριακής κονσόλας:
+
[.programlisting]
....
boot_multicons="YES"
boot_serial="YES"
comconsole_speed="115200"
console="comconsole,vidconsole"
....

[[serialconsole-com2]]
==== Χρησιμοποιώντας Σειριακή Θύρα Εκτός της [.filename]#sio0# για την Κονσόλα.

Θα πρέπει να επαναμεταγλωττίσετε κάποια προγράμματα για να χρησιμοποιήσετε ως κονσόλα μια σειριακή θύρα εκτός της [.filename]#sio0#. Αν για οποιοδήποτε λόγο θέλετε να χρησιμοποιήσετε άλλη σειριακή θύρα, θα πρέπει να επαναμεταγλωττίσετε τα boot blocks, το φορτωτή εκκίνησης και τον πυρήνα, με τον τρόπο που φαίνεται παρακάτω.

[.procedure]
. Ανακτήστε τον πηγαίο κώδικα του πυρήνα. (Δείτε το crossref:cutting-edge[updating-upgrading,Ενημέρωση και Αναβάθμιση του FreeBSD])
. Επεξεργαστείτε το αρχείο [.filename]#/etc/make.conf# και θέστε την επιλογή `BOOT_COMCONSOLE_PORT` στη διεύθυνση της θύρας που θέλετε να χρησιμοποιήσετε (0x3F8, 0x2F8, 0x3E8 or 0x2E8). Μπορείτε να χρησιμοποιήσετε μόνο τις θύρες [.filename]#sio0# ως [.filename]#sio3# ([.filename]#COM1# ως [.filename]#COM4#). Κάρτες πολλαπλών θυρών, δεν πρόκειται να λειτουργήσουν. Δεν χρειάζεται να ρυθμίσετε την τιμή του interrupt.
. Δημιουργήστε ένα αρχείο ρύθμισης προσαρμοσμένου πυρήνα, και προσθέστε τα κατάλληλα flags για τη σειριακή θύρα που επιθυμείτε να χρησιμοποιήσετε. Για παράδειγμα, αν θέλετε η [.filename]#sio1# ([.filename]#COM2#) να γίνει η κονσόλα:
+
[.programlisting]
....
device sio1 flags 0x10
....
+ 
ή
+
[.programlisting]
....
device sio1 flags 0x30
....
+ 
Δεν θα πρέπει να θέσετε flags κονσόλας για τις άλλες σειριακές θύρες.
. Μεταγλωττίστε και εγκαταστήστε ξανά τα boot blocks και τον φορτωτή εκκίνησης:
+
[source,shell]
....
# cd /sys/boot
# make clean
# make
# make install
....

. Επαναμεταγλωττίστε και εγκαταστήστε τον πυρήνα.
. Γράψτε τα boot blocks στον δίσκο εκκίνησης χρησιμοποιώντας την man:bsdlabel[8] και εκκινήστε με το νέο πυρήνα.

[[serialconsole-ddb]]
==== Είσοδος στον DDB Debugger Μέσω της Σειριακής Γραμμής

Αν θέλετε να εισέλθετε στον debugger του πυρήνα από την σειριακή κονσόλα (κάτι που είναι χρήσιμο για να εκτελέσετε διαγνωστικά από απομακρυσμένη τοποθεσία, αλλά επίσης και επικίνδυνο αν στείλετε κατά λάθος BREAK μέσω της σειριακής θύρας!) θα πρέπει να περιλάβετε την παρακάτω επιλογή στον πυρήνα σας:

[.programlisting]
....
options BREAK_TO_DEBUGGER
options DDB
....

==== Προτροπή Εισόδου στην Σειριακή Κονσόλα

Αν και αυτό δεν είναι απαραίτητο, ίσως να θέλετε να έχετε προτροπή εισόδου (_login_) μέσω της σειριακής γραμμής, τώρα που μπορείτε πλέον να δείτε τα μηνύματα εκκίνησης και να εισέλθετε στο debugger του πυρήνα μέσω της σειριακής κονσόλας. Η διαδικασία περιγράφεται παρακάτω.

Με κάποιο συντάκτη κειμένου, ανοίξτε το αρχείο [.filename]#/etc/ttys# και βρείτε τις γραμμές:

[.programlisting]
....
ttyu0 "/usr/libexec/getty std.9600" unknown off secure
ttyu1 "/usr/libexec/getty std.9600" unknown off secure
ttyu2 "/usr/libexec/getty std.9600" unknown off secure
ttyu3 "/usr/libexec/getty std.9600" unknown off secure
....

Οι καταχωρίσεις από [.filename]#ttyu0# ως [.filename]#ttyu3# αντιστοιχούν στις [.filename]#COM1# ως [.filename]#COM4#. Αλλάξτε το `off` σε `on` για την θύρα που επιθυμείτε. Αν έχετε αλλάξει την ταχύτητα της σειριακής θύρας, θα χρειαστεί να αλλάξετε το `std.9600` ώστε να ταιριάζει με την τρέχουσα ρύθμιση, π.χ. `std.19200`.

Μάλλον θα θέλετε να αλλάξετε και τον τύπο του τερματικού, από `unknown` στον πραγματικό τύπου του σειριακού σας τερματικού.

Αφού αλλάξετε τις ρυθμίσεις, θα πρέπει να εκτελέσετε την εντολή `kill -HUP 1` ώστε να ενεργοποιηθούν.

[[serialconsole-loader]]
=== Αλλαγή Κονσόλας μέσω του Φορτωτή Εκκίνησης

Σε προηγούμενες ενότητες, περιγράψαμε πως να ρυθμίσετε την σειριακή κονσόλα αλλάζοντας τις ρυθμίσεις του boot block. Στην ενότητα αυτή, δείχνουμε πως μπορείτε να καθορίσετε την κονσόλα δίνοντας κάποιες εντολές και μεταβλητές περιβάλλοντος στον φορτωτή εκκίνησης. Καθώς ο φορτωτής εκκίνησης καλείται από το τρίτο στάδιο της διαδικασίας εκκίνησης, και μετά το boot block, οι ρυθμίσεις του φορτωτή εκκίνησης υπερισχύουν σε σχέση με αυτές του boot block.

==== Ρύθμιση της Σειριακής Κονσόλας

Μπορείτε εύκολα να καθορίσετε ότι θα χρησιμοποιηθεί η σειριακή κονσόλα στον φορτωτή εκκίνησης και στον πυρήνα που θα φορτωθεί, γράφοντας απλώς μια γραμμή στο [.filename]#/boot/loader.conf#:

[.programlisting]
....
console="comconsole"
....

Η ρύθμιση αυτή θα ενεργοποιηθεί, άσχετα με το boot block που συζητήσαμε στην προηγούμενη ενότητα.

Είναι καλύτερα η γραμμή αυτή να είναι η πρώτη στο αρχείο [.filename]#/boot/loader.conf#, ώστε να βλέπετε τα αρχικά μηνύματα εκκίνησης στη σειριακή κονσόλα.

Με τον ίδιο τρόπο, μπορείτε να καθορίσετε την εσωτερική κονσόλα ως:

[.programlisting]
....
console="vidconsole"
....

Αν δεν καθορίσετε τη μεταβλητή περιβάλλοντος `console`, ο φορτωτής εκκίνησης (και έπειτα ο πυρήνας) θα χρησιμοποιήσουν οποιαδήποτε κονσόλα έχετε καθορίσει στο boot block με την επιλογή `-h`.

Μπορείτε να καθορίσετε την κονσόλα στο [.filename]#/boot/loader.conf.local# ή στο [.filename]#/boot/loader.conf#.

Δείτε το man:loader.conf[5] για περισσότερες πληροφορίες.

[NOTE]
====
Τη δεδομένη στιγμή, ο φορτωτής εκκίνησης δεν έχει επιλογή αντίστοιχη με την `-P` του boot block, και δεν υπάρχει κάποιος τρόπος να γίνει αυτόματη επιλογή μεταξύ εσωτερικής και σειριακής κονσόλας ανάλογα με την παρουσία πληκτρολογίου.
====

==== Χρήση Σειριακής Θύρας Εκτός της [.filename]#sio0# για την Κονσόλα

Θα πρέπει να επαναμεταγλωττίσετε το φορτωτή εκκίνησης ώστε να χρησιμοποιήσει μια σειριακή θύρα διαφορετική από την [.filename]#sio0# για τη σειριακή κονσόλα. Ακολουθήστε τη διαδικασία που περιγράφεται στο <<serialconsole-com2>>.

[[serialconsole-caveats]]
=== Πιθανές Παγίδες

Η γενική ιδέα είναι να επιτρέπεται σε όσους το επιθυμούν, να δημιουργήσουν εξειδικευμένους εξυπηρετητές που δεν απαιτούν κάρτες γραφικών και πληκτρολόγια. Δυστυχώς, αν και τα περισσότερα συστήματα θα σας επιτρέψουν να εκκινήσετε χωρίς πληκτρολόγιο, σε πολύ λίγα θα μπορέσετε να εκκινήσετε χωρίς κάρτα γραφικών. Τα μηχανήματα με BIOS της AMI μπορούν να ρυθμιστούν με αυτό τον τρόπο, αλλάζοντας την επιλογή "graphics adapter" στις ρυθμίσεις του CMOS σε "Not installed."

Τα περισσότερα μηχανήματα ωστόσο δεν υποστηρίζουν αυτή την επιλογή, και θα αρνηθούν να εκκινήσουν αν δεν βάλετε μια κάρτα γραφικών. Στα μηχανήματα αυτά θα πρέπει να αφήσετε μια στοιχειώδη (ακόμα και μονόχρωμη) κάρτα γραφικών, αν και δεν είναι απαραίτητο να συνδέσετε και οθόνη. Μπορείτε επίσης να δοκιμάσετε να εγκαταστήσετε BIOS της AMI.
