27.6. Ρύθμιση της Σειριακής Κονσόλας
Προηγ | Κεφάλαιο 27. Σειριακές Επικοινωνίες | Επόμενο

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

Συνεισφορά του Kazutaka YOKOTA.
Βασισμένο σε ένα κείμενο του Bill Paul.

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

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

### 27.6.1. Εισαγωγή

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

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

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

### 27.6.2. Ρύθμιση Σειριακής Κονσόλας (Σύντομη Έκδοση)

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

1. Συνδέστε το σειριακό καλώδιο στην `COM1` και στο τερματικό.

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

   `#` echo 'console="comconsole"' >> /boot/loader.conf

3. Επεξεργαστείτε το `/etc/ttys` και αλλάξτε το `off` σε `on` και το `dialup` σε `vt100` για την καταχώριση `ttyu0`. Διαφορετικά, δεν θα χρειάζεται κωδικός πρόσβασης για τη σύνδεση μέσω της σειριακής κονσόλας, το οποίο αποτελεί πιθανό κενό ασφαλείας.

4. Επανεκκινήστε το σύστημα για να δείτε αν ίσχυσαν οι αλλαγές.

Αν χρειάζεστε διαφορετικές ρυθμίσεις, θα βρείτε λεπτομέρειες για την ρύθμιση στο Τμήμα 27.6.3, &#x201C;Ρύθμιση Σειριακής Κονσόλας&#x201D;.

### 27.6.3. Ρύθμιση Σειριακής Κονσόλας

1. Προετοιμάστε ένα σειριακό καλώδιο.

   Θα χρειαστείτε είτε ένα καλώδιο τύπου null-modem, είτε ένα τυποποιημένο σειριακό καλώδιο και ένα προσαρμογέα null-modem. Δείτε το Τμήμα 27.2.2, &#x201C;Θύρες και Καλώδια&#x201D; για λεπτομέρειες σχετικά με τα είδη των σειριακών καλωδίων.

2. Αποσυνδέστε το πληκτρολόγιο σας.

   Τα περισσότερα PC ψάχνουν για το πληκτρολόγιο κατά την διάρκεια των διαγνωστικών εκκίνησης (POST, Power On Self Test), και θα αναφέρουν σφάλμα αν το πληκτρολόγιο δεν είναι συνδεμένο. Μερικά μηχανήματα παραπονιούνται ηχηρά για την έλλειψη πληκτρολογίου, και δεν συνεχίζουν την εκκίνηση μέχρι να το συνδέσετε.

   Αν ο υπολογιστής σας παραπονιέται για το λάθος, αλλά ξεκινά έτσι και αλλιώς, δεν χρειάζεται να κάνετε τίποτα ιδιαίτερο για αυτό. (Μερικά μηχανήματα με BIOS της Phoenix, λένε απλώς Keyboard Failed και συνεχίζουν την εκκίνηση κανονικά.)

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

   ### Υπόδειξη:

   Ρυθμίστε το πληκτρολόγιο σε &#x201C;Not installed&#x201D; στο BIOS. Η ρύθμιση αυτή απλώς αποτρέπει το BIOS από το να ανιχνεύει το πληκτρολόγιο στην εκκίνηση, και δεν πρόκειται να σας εμποδίσει να το χρησιμοποιήσετε κανονικά. Μπορείτε να αφήσετε το πληκτρολόγιο συνδεμένο ακόμα και όταν έχετε ενεργοποιήσει τη ρύθμιση &#x201C;Not installed&#x201D;. Αν δεν υπάρχει η παραπάνω ρύθμιση στο BIOS, ψάξτε για την επιλογή &#x201C;Halt on Error&#x201D;. Αλλάξτε τη σε &#x201C;All but Keyboard&#x201D; ή ακόμα και σε &#x201C;No Errors&#x201D;, και θα έχετε το ίδιο αποτέλεσμα.

   ### Σημείωση:

   Αν το σύστημα σας διαθέτει ποντίκι τύπου PS/2®, πιθανόν να πρέπει να το αποσυνδέσετε και αυτό. Τα ποντίκια τύπου PS/2® έχουν κάποια κυκλώματα κοινά με το πληκτρολόγιο, γεγονός που μπορεί να προκαλέσει σύγχυση στο πρόγραμμα ανίχνευσης του πληκτρολογίου. Κάποια συστήματα, όπως το Gateway 2000 Pentium 90 MHz με AMI BIOS, συμπεριφέρονται με αυτό τον τρόπο. Σε γενικές γραμμές, αυτό δεν είναι πρόβλημα καθώς το ποντίκι έτσι και αλλιώς δεν είναι χρήσιμο χωρίς το πληκτρολόγιο.

3. Συνδέστε ένα κουτό τερματικό στην `COM1` (`sio0`).

   Αν δεν έχετε κουτό τερματικό, μπορείτε να συνδέσετε ένα παλιό PC/XT με ένα πρόγραμμα για modem, ή να χρησιμοποιήσετε τη σειριακή θύρα σε ένα άλλο μηχάνημα UNIX®. Αν δεν έχετε σειριακή θύρα `COM1` (`sio0`), αγοράστε μια. Τη δεδομένη στιγμή δεν υπάρχει τρόπος να επιλέξετε άλλη θύρα εκτός από την `COM1`, χωρίς να επαναμεταγλωττίσετε τα boot blocks. Αν χρησιμοποιείτε ήδη την `COM1` για κάποια άλλη συσκευή, θα πρέπει να την αφαιρέσετε προσωρινά, και να εγκαταστήσετε νέο boot block και πυρήνα, μόλις συνδεθείτε στο FreeBSD. (Υποθέτουμε ότι η `COM1` θα είναι έτσι και αλλιώς διαθέσιμη σε ένα εξυπηρετητή αρχείων/υπολογισμών/τερματικών. Αν πραγματικά χρειάζεστε την `COM1` για κάτι άλλο (και δεν μπορείτε αυτό το κάτι άλλο να το μετακινήσετε στην `COM2` (`sio1`)), μάλλον δεν θα έπρεπε να ασχοληθείτε καθόλου με όλο αυτό το θέμα).

4. Βεβαιωθείτε ότι το αρχείο ρυθμίσεων του πυρήνα σας έχει τις κατάλληλες επιλογές (flags) για την `COM1` (`sio0`).

   Οι σχετικές επιλογές είναι:

   `0x10`

     Ενεργοποιεί την υποστήριξη κονσόλας για αυτή τη θύρα. Αν δεν τεθεί αυτή η επιλογή, τα υπόλοιπα flags για την κονσόλα δεν λαμβάνονται υπόψιν. Τη δεδομένη στιγμή, η υποστήριξη κονσόλας μπορεί να είναι ενεργοποιημένη μόνο σε μια θύρα. Η πρώτη που καθορίζεται στο αρχείο ρυθμίσεων, είναι και αυτή που θα προτιμηθεί. Από μόνη της, η επιλογή αυτή δεν θα ενεργοποιήσει την κονσόλα στη συγκεκριμένη σειριακή θύρα. Θα πρέπει να θέσετε το παρακάτω flag ή να χρησιμοποιήσετε την επιλογή `-h` που περιγράφεται παρακάτω, μαζί με αυτό το flag.

   `0x20`

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

   `0x40`

     Παρακρατεί τη συγκεκριμένη θύρα (σε συνδυασμό με την `0x10`) κάνοντας την μη διαθέσιμη για κανονική πρόσβαση. Δεν θα πρέπει να θέσετε αυτή την επιλογή στη σειριακή θύρα που σκοπεύετε να χρησιμοποιήσετε ως σειριακή κονσόλα. Η μόνη χρήση αυτού του flag, είναι να καθορίσετε ότι η θύρα θα χρησιμοποιηθεί για απομακρυσμένη εκσφαλμάτωση του πυρήνα (kernel debugging). Δείτε Το Βιβλίο του Προγραμματιστή για περισσότερες λεπτομέρειες σχετικά με την απομακρυσμένη εκσφαλμάτωση.

   Παράδειγμα:

   device sio0 flags 0x10

   Δείτε τη σελίδα manual sio(4) για περισσότερες λεπτομέρειες.

   Αν δεν έχουν καθοριστεί flags, θα πρέπει να εκτελέσετε το UserConfig (σε διαφορετική κονσόλα) ή να επαναμεταγλωττίσετε τον πυρήνα.

5. Δημιουργήστε το αρχείο `boot.config` στον ριζικό κατάλογο της κατάτμησης `a` του δίσκου εκκίνησης.

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

   `-h`

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

   `-D`

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

   `-P`

     Ενεργοποιεί την ανίχνευση πληκτρολογίου του boot block. Αν δεν βρεθεί πληκτρολόγιο, ενεργοποιούνται αυτόματα οι επιλογές `-D` και `-h`.

     ### Σημείωση:

     Λόγω περιορισμών χώρου στην τρέχουσα έκδοση των boot blocks, η επιλογή `-P` μπορεί να ανιχνεύσει μόνο εκτεταμένα (extended) πληκτρολόγια. Πληκτρολόγια με λιγότερα από 101 πλήκτρα (και χωρίς τα πλήκτρα F11 και F12) ίσως να μην ανιχνευθούν. Εξαιτίας αυτού του περιορισμού, είναι πιθανό να μην ανιχνευθούν και κάποια πληκτρολόγια φορητών υπολογιστών. Αν συμβαίνει αυτό στο σύστημα σας, θα πρέπει να σταματήσετε να χρησιμοποιείτε την επιλογή `-P`. Δυστυχώς, δεν υπάρχει κάποιος τρόπος να παρακάμψετε αυτό το πρόβλημα.

   Χρησιμοποιήστε είτε την επιλογή `-P` για να επιλέξετε την κονσόλα αυτόματα, ή την επιλογή `-h` για να ενεργοποιήσετε τη σειριακή κονσόλα.

   Μπορείτε επίσης να περιλάβετε και άλλες επιλογές που περιγράφονται στη σελίδα manual του boot(8).

   Όλες οι επιλογές εκκίνησης, εκτός της `-P`, θα περάσουν στο φορτωτή εκκίνησης (`/boot/loader`). Ο φορτωτής εκκίνησης θα καθορίσει αν η κονσόλα θα δημιουργηθεί στην οθόνη ή στη σειριακή θύρα, αφού εξετάσει μόνο την επιλογή `-h`. Αυτό σημαίνει ότι αν καθορίσετε την επιλογή `-D` αλλά όχι την επιλογή `-h` στο `/boot.config`, θα μπορείτε να χρησιμοποιήσετε την σειριακή θύρα ως κονσόλα μόνο κατά την εκτέλεση του boot block. Ο φορτωτής εκκίνησης όμως θα χρησιμοποιήσει την εσωτερική κονσόλα (οθόνη).

6. Εκκινήστε το μηχάνημα.

   Όταν ξεκινήσετε το FreeBSD μηχάνημα, τα boot blocks θα δείξουν τα περιεχόμενα του `/boot.config` στην κονσόλα. Για παράδειγμα:

   /boot.config: -P Keyboard: no

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

   Επιλογές | Το μήνυμα εμφανίζεται στην
   --- | ---
   καμία | εσωτερική κονσόλα
   `-h` | σειριακή κονσόλα
   `-D` | εσωτερική και σειριακή κονσόλα
   `-Dh` | σειριακή και εσωτερική κονσόλα
   `-P`, πληκτρολόγιο συνδεμένο | εσωτερική κονσόλα
   `-P`, χωρίς πληκτρολόγιο | σειριακή κονσόλα

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

   Πιέστε οποιοδήποτε πλήκτρο εκτός από το Enter στην κονσόλα για να διακόψετε τη διαδικασία εκκίνησης. Τα boot blocks θα σας ρωτήσουν για περισσότερες πληροφορίες. Θα πρέπει να δείτε κάτι όπως το παρακάτω:

   >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot:

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

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

Μετά τη φόρτωση του φορτωτή εκκίνησης, βρίσκεστε στο τρίτο στάδιο της διαδικασίας εκκίνησης και έχετε ακόμα τη δυνατότητα να επιλέξετε μεταξύ της εσωτερικής και σειριακής κονσόλας, θέτοντας τις κατάλληλες μεταβλητές περιβάλλοντος στο φορτωτή εκκίνησης. Δείτε το Τμήμα 27.6.6, &#x201C;Αλλαγή Κονσόλας μέσω του Φορτωτή Εκκίνησης&#x201D;.

### 27.6.4. Περίληψη

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

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

device sio0 flags 0x10

Επιλογές στο /boot.config | Κονσόλα κατά τη διάρκεια των boot blocks | Κονσόλα κατά τη διάρκεια του φορτωτή εκκίνησης | Κονσόλα στον πυρήνα
--- | --- | --- | ---
καμία | εσωτερική | εσωτερική | εσωτερική
`-h` | σειριακή | σειριακή | σειριακή
`-D` | σειριακή και εσωτερική | εσωτερική | εσωτερική
`-Dh` | σειριακή και εσωτερική | σειριακή | σειριακή
`-P`, πληκτρολόγιο συνδεμένο | εσωτερική | εσωτερική | εσωτερική
`-P`, χωρίς πληκτρολόγιο | σειριακή και εσωτερική | σειριακή | σειριακή

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

device sio0 flags 0x30

Επιλογές στο /boot.config | Κονσόλα κατά τη διάρκεια των boot blocks | Κονσόλα κατά τη διάρκεια του φορτωτή εκκίνησης | Κονσόλα στον πυρήνα
--- | --- | --- | ---
καμία | εσωτερική | εσωτερική | σειριακή
`-h` | σειριακή | σειριακή | σειριακή
`-D` | σειριακή και εσωτερική | εσωτερική | σειριακή
`-Dh` | σειριακή και εσωτερική | σειριακή | σειριακή
`-P`, πληκτρολόγιο συνδεμένο | εσωτερική | εσωτερική | σειριακή
`-P`, χωρίς πληκτρολόγιο | σειριακή και εσωτερική | σειριακή | σειριακή

### 27.6.5. Συμβουλές για την Σειριακή Κονσόλα

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

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

- Επαναμεταγλωττίστε τα boot blocks θέτοντας τη μεταβλητή `BOOT_COMCONSOLE_SPEED` για να ορίσετε την νέα ταχύτητα κονσόλας. Δείτε το Τμήμα 27.6.5.2, &#x201C;Χρησιμοποιώντας Σειριακή Θύρα Εκτός της `sio0` για την Κονσόλα.&#x201D; για λεπτομερείς οδηγίες σχετικά με τη μεταγλώττιση και εγκατάσταση νέων boot blocks.

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

  options CONSPEED=19200

- Στις επιλογές εκκίνησης του πυρήνα, χρησιμοποιήστε το `-S`. Μπορείτε επίσης να προσθέσετε την επιλογή `-S` στο `/boot.config`. Η σελίδα manual boot(8) περιέχει μια λίστα των υποστηριζόμενων επιλογών, και περιγράφει πως να τις προσθέσετε στο αρχείο `/boot.config`.

- Ενεργοποιήστε την επιλογή `comconsole_speed` στο αρχείο `/boot/loader.conf`.

  Για να λειτουργήσει αυτή η επιλογή, θα πρέπει επίσης να θέσετε τιμές για τις επιλογές `console`, `boot_serial`, και `boot_multicons` στο ίδιο αρχείο, το `/boot/loader.conf`. Παρακάτω φαίνεται ένα παράδειγμα χρήσης του `comconsole_speed` για αλλαγή ταχύτητα της σειριακής κονσόλας:

  boot_multicons="YES" boot_serial="YES" comconsole_speed="115200" console="comconsole,vidconsole"

#### 27.6.5.2. Χρησιμοποιώντας Σειριακή Θύρα Εκτός της `sio0` για την Κονσόλα.

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

1. Ανακτήστε τον πηγαίο κώδικα του πυρήνα. (Δείτε το Κεφάλαιο 25, Ενημέρωση και Αναβάθμιση του FreeBSD)

2. Επεξεργαστείτε το αρχείο `/etc/make.conf` και θέστε την επιλογή `BOOT_COMCONSOLE_PORT` στη διεύθυνση της θύρας που θέλετε να χρησιμοποιήσετε (0x3F8, 0x2F8, 0x3E8 or 0x2E8). Μπορείτε να χρησιμοποιήσετε μόνο τις θύρες `sio0` ως `sio3` (`COM1` ως `COM4`). Κάρτες πολλαπλών θυρών, δεν πρόκειται να λειτουργήσουν. Δεν χρειάζεται να ρυθμίσετε την τιμή του interrupt.

3. Δημιουργήστε ένα αρχείο ρύθμισης προσαρμοσμένου πυρήνα, και προσθέστε τα κατάλληλα flags για τη σειριακή θύρα που επιθυμείτε να χρησιμοποιήσετε. Για παράδειγμα, αν θέλετε η `sio1` (`COM2`) να γίνει η κονσόλα:

   device sio1 flags 0x10

   ή

   device sio1 flags 0x30

   Δεν θα πρέπει να θέσετε flags κονσόλας για τις άλλες σειριακές θύρες.

4. Μεταγλωττίστε και εγκαταστήστε ξανά τα boot blocks και τον φορτωτή εκκίνησης:

   `#` `cd /sys/boot` `#` `make clean` `#` `make` `#` `make install`

5. Επαναμεταγλωττίστε και εγκαταστήστε τον πυρήνα.

6. Γράψτε τα boot blocks στον δίσκο εκκίνησης χρησιμοποιώντας την bsdlabel(8) και εκκινήστε με το νέο πυρήνα.

#### 27.6.5.3. Είσοδος στον DDB Debugger Μέσω της Σειριακής Γραμμής

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

options BREAK_TO_DEBUGGER options DDB

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

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

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

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

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

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

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

### 27.6.6. Αλλαγή Κονσόλας μέσω του Φορτωτή Εκκίνησης

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

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

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

console="comconsole"

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

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

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

console="vidconsole"

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

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

Δείτε το loader.conf(5) για περισσότερες πληροφορίες.

### Σημείωση:

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

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

Θα πρέπει να επαναμεταγλωττίσετε το φορτωτή εκκίνησης ώστε να χρησιμοποιήσει μια σειριακή θύρα διαφορετική από την `sio0` για τη σειριακή κονσόλα. Ακολουθήστε τη διαδικασία που περιγράφεται στο Τμήμα 27.6.5.2, &#x201C;Χρησιμοποιώντας Σειριακή Θύρα Εκτός της `sio0` για την Κονσόλα.&#x201D;.

### 27.6.7. Πιθανές Παγίδες

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

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

Προηγ | Πάνω | Επόμενο
27.5. Υπηρεσία Επιλογικής Σύνδεσης | Αρχή | Κεφάλαιο 28. PPP και SLIP

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

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