JimMockΑνανεώθηκε και αναδομήθηκε από τον JakeHambyΑρχική συνεισφορά από τον Ρυθμίζοντας τον Πυρήνα του &os;Σύνοψηπυρήναςδημιουργία προσαρμοσμένου πυρήναΟ πυρήνας είναι η καρδιά του λειτουργικού συστήματος &os;. Είναι
υπεύθυνος για τη διαχείριση της μνήμης, την επιβολή των ρυθμίσεων
ασφαλείας, τη δικτύωση, την πρόσβαση στο δίσκο, και πολλά άλλα. Ένα
συνεχώς αυξανόμενο μέρος του &os; μπορεί να ρυθμιστεί δυναμικά, αλλά
υπάρχουν ακόμα περιπτώσεις οι οποίες απαιτούν ρυθμίσεις και μεταγλώττιση
του πυρήνα του &os; με προσαρμοσμένες παραμέτρους.Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:Για ποιους λόγους μπορεί να χρειαστεί να φτιάξετε ένα
προσαρμοσμένο πυρήνα.Πως να γράψετε ένα αρχείο ρυθμίσεων πυρήνα, ή να αλλάξετε ένα
υπάρχον αρχείο ρυθμίσεων.Πως να χρησιμοποιήσετε το αρχείο ρυθμίσεων του πυρήνα για να
φτιάξετε και να μεταγλωττίσετε ένα νέο πυρήνα.Πως να εγκαταστήσετε το νέο πυρήνα.Πως να επιλύσετε τυχόν προβλήματα με το νέο πυρήνα.Όλες οι εντολές που εμφανίζονται σε αυτό το κεφάλαιο ως παραδείγματα
πρέπει να εκτελεστούν ως root για να είναι
επιτυχείς.Γιατί να Φτιάξετε Προσαρμοσμένο Πυρήνα;Κατά παράδοση, το &os; είχε αυτό που αποκαλούμε
μονολιθικό πυρήνα. Αυτό σημαίνει ότι ο πυρήνας ήταν ένα
μεγάλο πρόγραμμα, υποστήριζε ένα σταθερό αριθμό συσκευών, και αν θέλατε
να αλλάξετε τη συμπεριφορά του, θα έπρεπε να μεταγλωττίσετε καινούριο
και να επανεκκινήσετε τον υπολογιστή σας με αυτόν.Σήμερα, το &os; κινείται ταχύτατα προς ένα μοντέλο όπου οι
περισσότερες λειτουργίες του πυρήνα περιέχονται σε modules (αρθρώματα)
τα οποία μπορούν να φορτωθούν και να αποφορτωθούν κατά απαίτηση,
δυναμικά στον πυρήνα. Αυτό επιτρέπει στον πυρήνα να προσαρμόζεται
σε υλικό το οποίο ενεργοποιείται τη δεδομένη στιγμή (όπως για
παράδειγμα όταν εισέρχεται μια κάρτα PCMCIA σε ένα φορητό υπολογιστή).
Επίσης επιτρέπει στον πυρήνα να επεκτείνει δυναμικά τη λειτουργικότητά
του, προσθέτοντας χαρακτηριστικά τα οποία δεν ήταν απαραίτητα όταν
είχε μεταγλωττιστεί αρχικά. Αυτού του είδους ο πυρήνας είναι γνωστός ως
modular (αρθρωτός).Παρ' όλα αυτά, είναι ακόμα απαραίτητο να γίνουν κάποιες στατικές
ρυθμίσεις στον πυρήνα. Σε ορισμένες περιπτώσεις, αυτό συμβαίνει επειδή
η συγκεκριμένη λειτουργία είναι τόσο στενά συνδεμένη με τον πυρήνα
ώστε δεν μπορεί να φορτωθεί δυναμικά. Σε άλλες, συμβαίνει επειδή απλά
κανείς δεν έχει ακόμα ασχοληθεί να γράψει ένα δυναμικό module που να
παρέχει αυτή τη λειτουργικότητα.Η δημιουργία προσαρμοσμένου πυρήνα είναι από τις πλέον σημαντικές
τελετουργίες κάθε προχωρημένου χρήστη του BSD. Η διαδικασία
αυτή, αν και χρονοβόρα, θα αποβεί ιδιαίτερα ωφέλιμη για το &os; σύστημα
σας. Σε αντίθεση με τον πυρήνα GENERIC, ο οποίος
πρέπει να υποστηρίξει μεγάλο εύρος συσκευών, ένας προσαρμοσμένος πυρήνας
περιέχει υποστήριξη μόνο για το υλικό του δικού σας
υπολογιστή. Έτσι έχετε κάποια οφέλη, όπως:Ταχύτερη εκκίνηση. Καθώς ο πυρήνας θα ανιχνεύει μόνο το υλικό
που έχετε στο σύστημα σας, ο χρόνος που χρειάζεται για την εκκίνηση
του συστήματος σας θα μειωθεί δραματικά.Χαμηλότερη κατανάλωση μνήμης. Ένας προσαρμοσμένος πυρήνας,
συχνά χρησιμοποιεί λιγότερη μνήμη από τον
πυρήνα GENERIC, αφού απουσιάζουν από αυτόν
συσκευές και χαρακτηριστικά που δεν χρησιμοποιούνται. Αυτό είναι
σημαντικό, καθώς ο πυρήνας βρίσκεται πάντα φορτωμένος στη φυσική
μνήμη, μειώνοντας έτσι τη μνήμη που είναι διαθέσιμη για εφαρμογές.
Για το λόγο αυτό, ο προσαρμοσμένος πυρήνας είναι ιδιαίτερα χρήσιμος
σε συστήματα με μικρό μέγεθος φυσικής μνήμης (RAM).Επιπρόσθετη υποστήριξη συσκευών. Ο προσαρμοσμένος πυρήνας σας
επιτρέπει να προσθέσετε υποστήριξη για συσκευές οι οποίες δεν
υπάρχουν στον GENERIC πυρήνα, όπως για
παράδειγμα για κάρτες ήχου.TomRhodesΓράφηκε από τον Ανακαλύπτοντας τις Συσκευές του Συστήματος σαςΠριν ξεκινήσετε με τη ρύθμιση του πυρήνα σας, θα ήταν σκόπιμο να
κάνετε μια απογραφή υλικού του υπολογιστή σας. Σε περιπτώσεις που το
&os; δεν είναι το βασικό σας λειτουργικό σύστημα, μπορείτε εύκολα να
δημιουργήσετε αυτή τη λίστα, εξετάζοντας τις ρυθμίσεις του τρέχοντος
λειτουργικού συστήματος. Για παράδειγμα, η
Διαχείριση Συσκευών (Device Manager) της
µsoft; δείχνει συνήθως σημαντικές πληροφορίες σχετικά με τις
εγκατεστημένες συσκευές. Μπορείτε να βρείτε την
Διαχείριση Συσκευών
στον πίνακα ελέγχου.Μερικές εκδόσεις των µsoft.windows; διαθέτουν ένα εικονίδιο
με τίτλο Σύστημα (System). Από την οθόνη
που εμφανίζεται μπορείτε να επιλέξετε την
Διαχείριση Συσκευών.Αν δεν υπάρχει άλλο λειτουργικό σύστημα στον υπολογιστή,
ο διαχειριστής θα πρέπει να βρει αυτές τις πληροφορίες χειροκίνητα. Μια
μέθοδος είναι με τη χρήση του βοηθητικού προγράμματος &man.dmesg.8; και
της εντολής &man.man.1;. Τα περισσότερα προγράμματα οδήγησης του &os;
διαθέτουν σελίδα manual, η οποία δείχνει το υποστηριζόμενο υλικό. Κατά
τη διάρκεια της εκκίνησης, εμφανίζεται μια λίστα με τις συσκευές που
ανιχνεύθηκαν. Για παράδειγμα, οι παρακάτω γραμμές δείχνουν ότι το
πρόγραμμα οδήγησης psm εντόπισε ένα
ποντίκι:psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0Αυτό το πρόγραμμα οδήγησης θα πρέπει να περιληφθεί στο αρχείο
ρυθμίσεων του προσαρμοσμένου πυρήνα σας, ή να φορτωθεί δυναμικά μέσω
του &man.loader.conf.5;.Σε ορισμένες περιπτώσεις, η έξοδος της dmesg
μπορεί να δείχνει μόνο τα μηνύματα του συστήματος και όχι τα
αποτελέσματα της ανίχνευσης συσκευών. Στις περιπτώσεις αυτές, μπορείτε
να δείτε την επιθυμητή έξοδο στα περιεχόμενα του αρχείου
/var/run/dmesg.boot.Μια άλλη μέθοδος για την ανίχνευση του υλικού, είναι μέσω του
βοηθητικού προγράμματος &man.pciconf.8;, το οποίο παρέχει πιο αναλυτική
περιγραφή. Για παράδειγμα:ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernetΗ παραπάνω έξοδος, που λήφθηκε μέσω της εντολής
pciconf , δείχνει ότι το
πρόγραμμα οδήγησης ath εντόπισε μια συσκευή
ασύρματου Ethernet. Μπορείτε να δείτε την αντίστοιχη σελίδα manual
του προγράμματος &man.ath.4;, χρησιμοποιώντας την εντολή
man ath.Μπορείτε επίσης να πάρετε χρήσιμες πληροφορίες από την εντολή
&man.man.1;, αν δώσετε την επιλογή . Στο παραπάνω
παράδειγμα, δίνοντας:&prompt.root; man -k AtherosΘα δείτε μια λίστα από σελίδες manual που περιέχουν τη
συγκεκριμένη λέξη:ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)Έχοντας διαθέσιμη την απογραφή υλικού του υπολογιστή σας,
η διαδικασία δημιουργίας προσαρμοσμένου πυρήνα σίγουρα φαίνεται
λιγότερο αποθαρρυντική.Προγράμματα Οδήγησης, Υποσυστήματα και Αρθρώματα (modules)kerneldrivers / modules / subsystemsΠριν δημιουργήσετε ένα προσαρμοσμένο πυρήνα, θα πρέπει πρώτα να
σκεφτείτε για ποιους λόγους τον χρειάζεστε. Σε πολλές περιπτώσεις,
η υποστήριξη κάποιας συγκεκριμένης συσκευής μπορεί να επιτευχθεί με την
χρήση κάποιου αρθρώματος (module).Τα αρθρώματα του πυρήνα βρίσκονται στον κατάλογο
/boot/kernel/ και μπορούν να
φορτωθούν δυναμικά στον πυρήνα που εκτελείται τη δεδομένη στιγμή, με
τη χρήση της εντολής &man.kldload.8;. Τα περισσότερα, αν και όχι όλα,
τα προγράμματα οδήγησης στον πυρήνα, διατίθενται και σε μορφή
αρθρώματος· έχουν επίσης τη δική του σελίδα βοήθειας το καθένα. Για
παράδειγμα, στην προηγούμενη ενότητα, είδαμε το πρόγραμμα οδήγησης
ασύρματου Ethernet ath. Η σελίδα βοήθειας
για αυτή τη συσκευή αναφέρει:Alternatively, to load the driver as a module at boot time, place the
following line in &man.loader.conf.5;:
if_ath_load="YES"Όπως αναφέρεται στις οδηγίες, αν βάλετε την γραμμή
if_ath_load="YES" στο αρχείο
/boot/loader.conf, το άρθρωμα θα φορτωθεί δυναμικά
κατά την εκκίνηση του συστήματος σας.Σε μερικές περιπτώσεις ωστόσο, δεν υπάρχει άρθρωμα που να σχετίζεται
με κάποιο πρόγραμμα οδήγησης. Αυτό ισχύει περισσότερο για κάποια
ιδιαίτερα υποσυστήματα και πολύ σημαντικά προγράμματα οδήγησης. Για
παράδειγμα, το πρόγραμμα οδήγησης του συστήματος αρχείων fast file
system (FFS) απαιτείται να είναι ενσωματωμένο στον
πυρήνα. Το ίδιο συμβαίνει και με την υποστήριξη δικτύου (INET).
Δυστυχώς, ο μόνος τρόπος για να δείτε αν ένα πρόγραμμα οδήγησης πρέπει
να είναι υποχρεωτικά ενσωματωμένο στον πυρήνα, είναι να ελέγξετε αν
υπάρχει το αντίστοιχο άρθρωμα.Είναι αρκετά εύκολο να αφαιρέσετε την υποστήριξη για κάποια
συσκευή ή άλλη επιλογή, και να καταλήξετε με ένα πυρήνα που δεν μπορεί
να ξεκινήσει. Για παράδειγμα, αν βγάλετε το πρόγραμμα οδήγησης
&man.ata.4; από το αρχείο ρυθμίσεων του πυρήνα σας, αν το σύστημα σας
χρησιμοποιεί δίσκους ATA δεν θα μπορεί να
ξεκινήσει. Στην περίπτωση αυτή θα πρέπει να βάλετε την αντίστοιχη
γραμμή στο αρχείο loader.conf για να φορτώσετε
το σχετικό άρθρωμα. Αν δεν είστε σίγουροι, ελέγξτε για την ύπαρξη
του αρθρώματος, και απλώς αφήστε την υποστήριξη ενσωματωμένη στον
πυρήνα.Δημιουργία και Εγκατάσταση Προσαρμοσμένου Πυρήναkernelbuilding / installingΧρειάζεται να έχετε εγκαταστήσει όλο τον πηγαίο κώδικα του
&os; για να μεταγλωττίσετε τον πυρήνα.Αρχικά, θα κάνουμε μια γρήγορη παρουσίαση του καταλόγου στον οποίο
γίνεται η μεταγλώττιση του πυρήνα. Όλοι οι κατάλογοι που θα αναφέρουμε
βρίσκονται κάτω από τον κατάλογο /usr/src/sys ο
οποίος είναι επίσης προσβάσιμος μέσω της διαδρομής
/sys. Υπάρχει εδώ ένας αριθμός υποκαταλόγων ο
οποίος αντιπροσωπεύει διαφορετικά τμήματα του πυρήνα, αλλά οι πλέον
σημαντικοί για το σκοπό μας είναι οι
arch/conf, όπου θα
επεξεργαστείτε τις ρυθμίσεις για τον προσαρμοσμένο πυρήνα σας, και ο
compile, που είναι ο χώρος εργασίας στον οποίο θα
γίνει η μεταγλώττιση του. Ο arch
αντιπροσωπεύει ένα από τα i386,
amd64,
ia64, powerpc,
sparc64, ή pc98
(ένας εναλλακτικός τύπος PC, διαδεδομένος στην Ιαπωνία). Οτιδήποτε
βρίσκεται μέσα στον συγκεκριμένο κατάλογο μιας αρχιτεκτονικής,
σχετίζεται μόνο με την αρχιτεκτονική αυτή. Το υπόλοιπο του κώδικα,
είναι ανεξάρτητο από την αρχιτεκτονική και κοινό σε κάθε πλατφόρμα όπου
θα μπορούσε να μεταγλωττιστεί το &os;. Παρατηρήστε τη λογική οργάνωση
της δομής των καταλόγων, όπου κάθε υποστηριζόμενη συσκευή, σύστημα
αρχείων και επιλογή βρίσκεται στο δικό της κατάλογο.Στα παραδείγματα αυτού του κεφαλαίου υποθέτουμε ότι χρησιμοποιείτε
την αρχιτεκτονική i386. Αν χρησιμοποιείτε διαφορετική αρχιτεκτονική,
θα χρειαστεί να αλλάξετε τα ονόματα των καταλόγων και διαδρομών ώστε
να συμβαδίζουν με αυτή.Αν δεν υπάρχει ο κατάλογος
/usr/src/sys στο σύστημα σας
(ή αν είναι άδειος), τότε δεν έχετε
εγκαταστήσει τον πηγαίο κώδικα του πυρήνα. Ο ευκολότερος τρόπος για
να τον εγκαταστήσετε είναι εκτελώντας το sysinstall
ως root, επιλέγοντας
Configure, μετά
Distributions, έπειτα
src και τέλος
All. Θα χρειαστεί να δημιουργήσετε και
ένα συμβολικό δεσμό προς τον κατάλογο /usr/src/sys/ αν δεν υπάρχει
ήδη:&prompt.root; ln -s /usr/src/sys /sysΈπειτα, μετακινηθείτε στον κατάλογο
arch/conf
και αντιγράψτε το αρχείο ρυθμίσεων GENERIC στο
όνομα το οποίο θέλετε να δώσετε στο νέο σας πυρήνα. Για παράδειγμα:
&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MYKERNELΚατά παράδοση, το όνομα αυτό γράφεται εξ' ολοκλήρου με κεφαλαία
γράμματα και αν έχετε πολλά μηχανήματα &os; με διαφορετικό υλικό,
είναι καλή ιδέα να του δώσετε το όνομα του μηχανήματος. Για το
παράδειγμα μας, θα το αποκαλούμε
MYKERNEL.Δεν είναι γενικά καλή ιδέα να αποθηκεύσετε το αρχείο ρυθμίσεων σας
απευθείας στον κατάλογο /usr/src. Αν
αντιμετωπίσετε προβλήματα, ίσως μπείτε στον πειρασμό να διαγράψετε
απλώς τον κατάλογο /usr/src και να ξεκινήσετε
από την αρχή. Συνήθως λίγα δευτερόλεπτα μετά από αυτό θα
συνειδητοποιήσετε ότι έχετε επίσης διαγράψει το αρχείο ρυθμίσεων
του πυρήνα σας. Επίσης, μην επεξεργάζεστε απευθείας το αρχείο
GENERIC, καθώς μπορεί οι αλλαγές σας να χαθούν
την επόμενη φορά που θα
ανανεώσετε τον πηγαίο σας κώδικα.
Καλό θα είναι να αποθηκεύσετε το αρχείο ρυθμίσεων σε άλλο κατάλογο
και να δημιουργήσετε ένα συμβολικό δεσμό προς το αρχείο, στον κατάλογο
i386.Για παράδειγμα:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MYKERNEL
&prompt.root; ln -s /root/kernels/MYKERNELΤώρα, τροποποιήστε το αρχείο
MYKERNEL με τον
επεξεργαστή κειμένου που προτιμάτε. Αν ξεκινάτε μόλις τώρα, πιθανόν ο
μόνος διαθέσιμος επεξεργαστής κειμένου να είναι το
vi, ο οποίος είναι αρκετά πολύπλοκος για να
τον εξηγήσουμε εδώ, αλλά καλύπτεται αρκετά καλά από πλήθος βιβλίων στην
βιβλιογραφία. Ωστόσο, το &os;
διαθέτει επίσης ένα ευκολότερο επεξεργαστή κειμένου, τον
ee ο οποίος είναι η κατάλληλη επιλογή αν
είστε αρχάριος. Αλλάξτε κατά βούληση τα σχόλια στην αρχή του αρχείου
ρυθμίσεων ώστε να αντανακλούν τις αλλαγές που έχετε κάνει και οι οποίες
το διαχωρίζουν από το GENERIC.SunOSΑν έχετε δημιουργήσει πυρήνα στο &sunos; ή σε κάποιο άλλο
λειτουργικό σύστημα τύπου BSD, το μεγαλύτερο μέρος αυτού του αρχείου
θα σας φανεί γνωστό. Από την άλλη, αν έρχεστε από κάποιο άλλο
λειτουργικό, όπως το DOS το αρχείο ρυθμίσεων
GENERIC ίσως να σας είναι δύσκολο στην κατανόηση,
για το λόγο αυτό ακολουθήστε αργά και προσεκτικά τις περιγραφές του
τμήματος
Αρχείο Ρυθμίσεων.Αν συγχρονίσετε τον πηγαίο κώδικα
με τις τελευταίες αλλαγές του &os; project, να διαβάσετε το αρχείο
/usr/src/UPDATING πριν προχωρήσετε σε οποιοδήποτε
βήμα αναβάθμισης. Το αρχείο αυτό περιγράφει πιθανά σημαντικά
προβλήματα ή περιοχές που χρειάζονται ιδιαίτερη προσοχή όσο αφορά τον
ανανεωμένο πηγαίο κώδικα. Το αρχείο
/usr/src/UPDATING ταιριάζει πάντα με την έκδοση
του πηγαίου κώδικα του &os; που έχετε, και είναι για αυτό το λόγο
πιο ενημερωμένο σε σχέση με ότι διαβάσετε στο παρόν βιβλίο.Θα πρέπει τώρα να μεταγλωττίσετε τον πηγαίο κώδικα του πυρήνα.
Μεταγλώττιση του ΠυρήναΧρειάζεται να έχετε εγκαταστήσει όλο τον πηγαίο κώδικα του
&os; για να μεταγλωττίσετε τον πυρήνα.Μετακινηθείτε στον κατάλογο /usr/src:&prompt.root; cd /usr/srcΜεταγλωττίστε τον πυρήνα:&prompt.root; make buildkernel KERNCONF=MYKERNELΕγκαταστήστε το νέο πυρήνα:&prompt.root; make installkernel KERNCONF=MYKERNELΑπό προεπιλογή, όταν δημιουργείτε ένα προσαρμοσμένο πυρήνα,
δημιουργούνται επίσης και όλα τα modules
(αρθρώματα) πυρήνα. Αν θέλετε να κάνετε πιο γρήγορη ανανέωση του
πυρήνα ή να δημιουργήσετε μόνο συγκεκριμένα modules, θα πρέπει να
τροποποιήσετε το αρχείο /etc/make.conf πριν
ξεκινήσετε τη δημιουργία του πυρήνα:MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfsΣτη μεταβλητή αυτή δίνετε μια λίστα των modules που θέλετε να
δημιουργηθούν, αντί να δημιουργηθούν όλα.WITHOUT_MODULES = linux acpi sound ntfsΣτη μεταβλητή αυτή δίνετε μια λίστα βασικών (top level) modules
που θέλετε να παραλείψετε κατά τη διαδικασία δημιουργίας. Για άλλες
μεταβλητές που ίσως είναι χρήσιμες στη διαδικασία δημιουργίας πυρήνα,
δείτε τη σελίδα manual του &man.make.conf.5;./boot/kernel.oldΟ νέος πυρήνας θα αντιγραφεί στον κατάλογο
/boot/kernel με το όνομα
/boot/kernel/kernel ενώ ο παλιός πυρήνας θα
μετακινηθεί στο /boot/kernel.old/kernel. Τερματίστε
τώρα το σύστημα σας και επανεκκινήστε για να χρησιμοποιήσετε το νέο
πυρήνα. Αν κάτι πάει στραβά, υπάρχουν κάποιες πληροφορίες για
Αντιμετώπιση Προβλημάτων που
ίσως σας φανούν χρήσιμες, στο τέλος αυτού του κεφαλαίου. Βεβαιωθείτε ότι
διαβάσατε το τμήμα που εξηγεί πως να επαναφέρετε το σύστημα σας σε
περίπτωση που ο νέος πυρήνας
δεν εκκινεί.Άλλα αρχεία που σχετίζονται με τη διαδικασία εκκίνησης, όπως ο
&man.loader.8; και οι ρυθμίσεις του, βρίσκονται στον κατάλογο
/boot. Εξειδικευμένα modules ή modules τρίτων
κατασκευαστών μπορούν να τοποθετηθούν στον κατάλογο
/boot/kernel, αν και οι χρήστες
θα πρέπει να γνωρίζουν ότι είναι σημαντικό τα modules να είναι σε
συγχρονισμό με τον πυρήνα. Modules τα οποία δεν προορίζονται για
εκτέλεση με τον τρέχοντα πυρήνα, μπορούν να προκαλέσουν αστάθεια
ή εσφαλμένη λειτουργία του συστήματος σας.JoelDahlΑνανεώθηκε για το &os; Το Αρχείο ΡυθμίσεωνkernelNOTESNOTESkernelconfiguration fileΗ γενική μορφή ενός αρχείου ρυθμίσεων πυρήνα, είναι αρκετά απλή.
Κάθε γραμμή περιέχει μια λέξη-κλειδί και ένα ή περισσότερα ορίσματα. Για
λόγους απλότητας, οι περισσότερες γραμμές περιέχουν μόνο ένα όρισμα.
Οτιδήποτε βρίσκεται μετά το σύμβολο # θεωρείται
σχόλιο και αγνοείται. Στα επόμενα τμήματα θα βρείτε περιγραφή για τις
λέξεις-κλειδιά, με τη σειρά που εμφανίζονται στο αρχείο ρυθμίσεων
GENERIC.
Για εξαντλητική λίστα των παραμέτρων και
συσκευών που εξαρτώνται από την αρχιτεκτονική, δείτε το αρχείο
NOTES το οποίο βρίσκεται στον ίδιο κατάλογο με το
αρχείο GENERIC. Για επιλογές και ρυθμίσεις που
είναι ανεξάρτητες από την αρχιτεκτονική, δείτε το αρχείο
/usr/src/sys/conf/NOTES.Μπορείτε να χρησιμοποιήσετε την οδηγία
include στα αρχεία ρυθμίσεων. Η οδηγία αυτή
επιτρέπει την λογική συμπερίληψη ενός άλλου αρχείου ρυθμίσεων μέσα στο
τρέχον, κάνοντας πιο εύκολη τη συντήρηση του όταν οι αλλαγές που
χρειάζονται είναι λίγες σε σχέση με το αρχικό αρχείο. Για παράδειγμα,
αν χρειάζεστε ένα πυρήνα GENERIC με λίγες μόνο
παραπάνω επιλογές ή προγράμματα οδήγησης, μπορείτε να δημιουργήσετε ένα
μικρό αρχείο διαφορών σε σχέση με τον
GENERIC:include GENERIC
ident MYKERNEL
options IPFIREWALL
options DUMMYNET
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERTΠολλοί διαχειριστές βρίσκουν ότι αυτό το μοντέλο προσφέρει σημαντικά
πλεονεκτήματα σε σχέση με τον παραδοσιακό τρόπο συγγραφής αρχείων
ρυθμίσεων από το μηδέν: το τοπικό αρχείο ρυθμίσεων περιέχει μόνο τις
διαφορές από ένα πυρήνα GENERIC. Καθώς γίνονται
αναβαθμίσεις στο σύστημα, τα νέα χαρακτηριστικά και δυνατότητες που
προστίθενται στον GENERIC θα προστεθούν και
στον προσαρμοσμένο πυρήνα, εκτός αν το αποτρέψετε χρησιμοποιώντας το
nooptions ή το nodevice.
Το υπόλοιπο αυτού του κεφαλαίου, εξηγεί το περιεχόμενο ενός τυπικού
αρχείου ρυθμίσεων και το ρόλο που έχουν οι διάφορες επιλογές και τα
προγράμματα οδήγησης που εμφανίζονται σε αυτό.Για να δημιουργήσετε ένα αρχείο το οποίο να περιέχει όλες τις
διαθέσιμες επιλογές, όπως γίνεται συνήθως για δοκιμές, εκτελέστε την
ακόλουθη εντολή ως root:&prompt.root; cd /usr/src/sys/i386/conf && make LINTkernelconfiguration fileΤο παρακάτω είναι ένα παράδειγμα του αρχείου ρυθμίσεων
GENERIC με επιπρόσθετα διευκρινιστικά σχόλια όπου
είναι απαραίτητο. Το παράδειγμα θα πρέπει να ταιριάζει αρκετά καλά
με το αντίγραφο του αρχείου πού έχετε στο
/usr/src/sys/i386/conf/GENERIC.kernel optionsmachinemachine i386Πρόκειται για την αρχιτεκτονική του μηχανήματος. Πρέπει να είναι
amd64,
i386, ia64,
pc98, powerpc, ή
sparc64.kernel optionscpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUΗ παραπάνω επιλογή καθορίζει τον τύπο της CPU που έχετε στο σύστημα
σας. Μπορεί να έχετε παραπάνω από μια τέτοιες γραμμές (αν για παράδειγμα
δεν είστε σίγουρος αν θα πρέπει να χρησιμοποιήσετε
I586_CPU ή I686_CPU),
αλλά για ένα προσαρμοσμένο πυρήνα είναι καλύτερα να καθορίσετε μόνο τη
CPU που έχετε. Αν δεν είστε σίγουρος για τον τύπο της CPU μπορείτε να
ελέγξετε το αρχείο /var/run/dmesg.boot για να δείτε
τα μηνύματα εκκίνησης του συστήματος σας.kernel optionsidentident GENERICΑυτό είναι το αναγνωριστικό όνομα του πυρήνα. Θα πρέπει να το
αλλάξετε στο όνομα που δώσατε στον πυρήνα σας, π.χ.
MYKERNEL αν έχετε ακολουθήσει τις οδηγίες από το
προηγούμενο μας παράδειγμα. Η τιμή που θα βάλετε στο αλφαριθμητικό
ident θα εκτυπώνεται όταν εκκινείτε με τον
συγκεκριμένο πυρήνα, και έτσι είναι χρήσιμο να δώσετε στο νέο πυρήνα ένα
διαφορετικό όνομα αν θέλετε να το ξεχωρίζετε από το συνηθισμένο πυρήνα
σας (αν π.χ. θέλετε να φτιάξετε ένα πειραματικό πυρήνα).#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.Το αρχείο &man.device.hints.5; χρησιμοποιείται για τον καθορισμό
επιλογών που σχετίζονται με τους οδηγούς συσκευών. Η προεπιλεγμένη θέση
την οποία ελέγχει ο &man.loader.8; κατά την εκκίνηση είναι το
/boot/device.hints. Χρησιμοποιώντας την επιλογή
hints μπορείτε να ενσωματώσετε στατικά τις οδηγίες
αυτές μέσα στον πυρήνα. Στην περίπτωση αυτή δεν υπάρχει λόγος να
δημιουργήσετε το αρχείο device.hints στον κατάλογο
/boot.makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbolsΗ φυσιολογική διαδικασία δημιουργίας του &os; περιλαμβάνει
πληροφορίες εκσφαλμάτωσης (debugging) όταν ο πυρήνας δημιουργείται με
την επιλογή , επιτρέποντας έτσι την χρήση τους όταν
δοθούν στο &man.gcc.1;.options SCHED_ULE # ULE schedulerΟ προεπιλεγμένος scheduler του &os;. Κρατήστε την επιλογή
αυτή.options PREEMPTION # Enable kernel thread preemptionΕπιτρέπει σε νήματα του πυρήνα να προσπεραστούν από άλλα,
υψηλότερης προτεραιότητας. Βοηθάει στην αύξηση απόκρισης του
συστήματος και επιτρέπει σε νήματα διακοπών (interrupts) να εκτελεστούν
πιο γρήγορα, αντί να μένουν σε αναμονή.options INET # InterNETworkingΥποστήριξη δικτύου. Αφήστε την επιλογή αυτή ενεργοποιημένη, ακόμα
και αν δεν σκοπεύετε να συνδεθείτε σε κάποιο δίκτυο. Τα περισσότερα
προγράμματα χρειάζονται έστω και την εσωτερική (loopback) δικτύωση
(τη δυνατότητα δηλ. να κάνουν συνδέσεις δικτύου μέσα στο ίδιο σας το
μηχάνημα), καθιστώντας την επιλογή αυτή ουσιαστικά υποχρεωτική.options INET6 # IPv6 communications protocolsΗ επιλογή αυτή ενεργοποιεί τα πρωτόκολλα επικοινωνίας IPv6.options FFS # Berkeley Fast FilesystemΠρόκειται για το βασικό σύστημα αρχείων του σκληρού δίσκου. Αφήστε
την επιλογή αυτή ενεργοποιημένη, αν ξεκινάτε από το σκληρό δίσκο.
options SOFTUPDATES # Enable FFS Soft Updates supportΗ επιλογή αυτή ενεργοποιεί τα Soft Updates στον πυρήνα, το οποίο
βοηθάει την επιτάχυνση της εγγραφής στους δίσκους. Ακόμα και αν η
λειτουργία αυτή παρέχεται από τον πυρήνα, θα πρέπει επίσης να
ενεργοποιηθεί για συγκεκριμένους δίσκους. Δείτε την έξοδο της εντολής
&man.mount.8; για να δείτε αν είναι ενεργοποιημένα τα Soft Updates
στους δίσκους του συστήματος σας. Αν δεν δείτε την επιλογή
soft-updates θα χρειαστεί να την ενεργοποιήσετε με
την εντολή &man.tunefs.8; (για υπάρχοντα συστήματα αρχείων) ή
&man.newfs.8; (για νέα συστήματα αρχείων).options UFS_ACL # Support for access control listsΜε την επιλογή αυτή, ενεργοποιείται η υποστήριξη του πυρήνα για
λίστες ελέγχου πρόσβασης (access control lists). Τα
ACLs εξαρτιούνται από τη χρήση εκτεταμένων ιδιοτήτων
και από το σύστημα αρχείων UFS2, και περιγράφονται
με λεπτομέρεια στο . Τα ACLs
είναι ενεργοποιημένα από προεπιλογή, και δεν θα πρέπει να τα
απενεργοποιήσετε από τον πυρήνα αν έχουν χρησιμοποιηθεί στο παρελθόν σε
κάποιο σύστημα αρχείων, καθώς αυτό θα τα αφαιρέσει από τα αρχεία,
αλλάζοντας έτσι τον τρόπο προστασίας τους με απρόβλεπτους τρόπους.
options UFS_DIRHASH # Improve performance on big directoriesΜε την επιλογή αυτή, περιλαμβάνονται λειτουργίες που αυξάνουν την
ταχύτητα πρόσβασης του δίσκου σε μεγάλους καταλόγους, με κόστος τη χρήση
επιπρόσθετης μνήμης. Φυσιολογικά, θα θέλετε να κρατήσετε την επιλογή
αυτή σε ένα μεγάλο εξυπηρετητή ή σταθμό εργασίας, και να την αφαιρέσετε
όταν χρησιμοποιείτε το &os; σε ένα μικρό σύστημα όπου η μνήμη είναι
περιορισμένη και η ταχύτητα πρόσβασης στο δίσκο είναι λιγότερο
σημαντική, όπως για παράδειγμα σε ένα firewall.options MD_ROOT # MD is a potential root deviceΜε την επιλογή αυτή ενεργοποιείται η υποστήριξη χρήσης ενός
εικονικού δίσκου στη μνήμη RAM (ramdrive) για χρήση ως συσκευή root.
kernel optionsNFSkernel optionsNFS_ROOToptions NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENTΤο δικτυακό σύστημα αρχείων. Αν δεν έχετε σκοπό να προσαρτήσετε
συστήματα αρχείων από άλλο εξυπηρετητή αρχείων &unix; μέσω TCP/IP,
μπορείτε να μετατρέψετε αυτές τις γραμμές σε σχόλια.kernel optionsMSDOSFSoptions MSDOSFS # MSDOS FilesystemΤο σύστημα αρχείων του &ms-dos;. Αν δεν σκοπεύετε να προσαρτήσετε
δίσκο DOS κατά την εκκίνηση, μπορείτε με ασφάλεια να μετατρέψετε την
επιλογή αυτή σε σχόλιο. Η υποστήριξη θα φορτωθεί αυτόματα την πρώτη
φορά που θα προσαρτήσετε κατάτμηση DOS όπως περιγράψαμε παραπάνω.
Επίσης, το εξαιρετικό πρόγραμμα
emulators/mtools σας επιτρέπει να
έχετε πρόσβαση σε δισκέτες DOS χωρίς να χρειάζεται να τις προσαρτήσετε
και να αποπροσαρτήσετε (και επίσης δεν απαιτεί τη χρήση του
MSDOSFS).options CD9660 # ISO 9660 FilesystemΤο σύστημα αρχείων ISO 9660 για CDROM. Μετατρέψτε το σε σχόλιο αν
δεν έχετε οδηγό CDROM ή αν σπάνια προσαρτάτε CD δεδομένων (καθώς θα
φορτωθεί δυναμικά την πρώτη φορά που θα προσαρτήσετε τέτοιο CD ). Τα
μουσικά CD δεν χρειάζονται αυτό το σύστημα αρχείων.options PROCFS # Process filesystem (requires PSEUDOFS)Αυτό το σύστημα αρχείων περιέχει τις διεργασίες του συστήματος.
Πρόκειται για ένα εικονικό σύστημα αρχείων το οποίο
προσαρτάται στον κατάλογο /proc και επιτρέπει σε
προγράμματα όπως το &man.ps.1; να δίνουν περισσότερες πληροφορίες για
τις διεργασίες που εκτελούνται. Η χρήση του PROCFS
δεν απαιτείται στις περισσότερες περιπτώσεις, καθώς τα περισσότερα
εργαλεία παρακολούθησης και εκσφαλμάτωσης έχουν προσαρμοστεί να
εκτελούνται χωρίς το PROCFS. Στις νέες εγκαταστάσεις,
αυτό το σύστημα αρχείων δεν προσαρτάται από προεπιλογή.options PSEUDOFS # Pseudo-filesystem frameworkΠυρήνες που χρησιμοποιούν το
PROCFS πρέπει επίσης να παρέχουν υποστήριξη για το
PSEUDOFS.options GEOM_PART_GPT # GUID Partition Tables.Με την επιλογή αυτή δίνεται η δυνατότητα ύπαρξης μεγάλου αριθμού
κατατμήσεων σε ένα μόνο δίσκο.options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]Συμβατότητα με το 4.3BSD. Αφήστε την επιλογή αυτή ενεργή: κάποια
προγράμματα θα συμπεριφέρονται παράξενα αν την απενεργοποιήσετε.options COMPAT_FREEBSD4 # Compatible with &os;4Η επιλογή αυτή απαιτείται
για την υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί σε
παλιότερες εκδόσεις του &os; και οι οποίες χρησιμοποιούν παλιές
διεπαφές και κλήσεις συστήματος. Συνίσταται να υπάρχει αυτή η επιλογή
σε όλα τα συστήματα &i386; τα οποία εκτελούν παλιότερες
εφαρμογές. Αρχιτεκτονικές όπως η ia64 και η &sparc64; που άρχισαν να
υποστηρίζονται από την έκδοση 5.Χ και μετά δεν χρειάζονται αυτή την
επιλογή.options COMPAT_FREEBSD5 # Compatible with &os;5Η επιλογή αυτή απαιτείται στο για την
υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο &os; 5.X και
χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.options COMPAT_FREEBSD6 # Compatible with &os;6Η επιλογή αυτή απαιτείται στο για την
υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο &os; 6.X και
χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.options COMPAT_FREEBSD7 # Compatible with &os;75Η επιλογή αυτή απαιτείται στο για την
υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο &os; 7.X και
χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.options SCSI_DELAY=5000 # Delay (in ms) before probing SCSIΜε την επιλογή αυτή ο πυρήνας περιμένει 5 δευτερόλεπτα πριν
ανιχνεύσει κάθε συσκευή SCSI στο σύστημα σας. Αν έχετε μόνο IDE δίσκους
μπορείτε να την αγνοήσετε, διαφορετικά μπορείτε να δοκιμάσετε να
μειώσετε τον αριθμό αυτό, για να επιταχύνετε την εκκίνηση. Φυσικά, αν το
κάνετε αυτό και ανακαλύψετε ότι το &os; έχει πρόβλημα στην αναγνώριση
των συσκευών σας, θα πρέπει να την ανεβάσετε ξανά.options KTRACE # ktrace(1) supportΗ επιλογή αυτή ενεργοποιεί το tracing των διεργασιών του πυρήνα, το
οποίο είναι χρήσιμο στην εκσφαλμάτωση.options SYSVSHM # SYSV-style shared memoryΗ επιλογή αυτή ενεργοποιεί την κοινόχρηστη μνήμη σύμφωνα με το
πρότυπο του System V. Η πλέον κοινή χρήση της, είναι η
επέκταση XSHM στα Χ η οποία χρησιμοποιείται αυτόματα από πολλές βαριές
εφαρμογές γραφικών για καλύτερη ταχύτητα. Αν χρησιμοποιείτε Χ,
σίγουρα θέλετε να περιλάβετε αυτή την επιλογή.options SYSVMSG # SYSV-style message queuesΥποστήριξη για μηνύματα του System V. Η επιλογή αυτή προσθέτει
μόνο μερικές εκατοντάδες bytes στον πυρήνα.options SYSVSEM # SYSV-style semaphoresΥποστήριξη σηματοφορέων του System V. Χρησιμοποιείται λιγότερο
συχνά, αλλά προσθέτει μόνο μερικές εκατοντάδες bytes στον πυρήνα.
Η επιλογή της εντολής &man.ipcs.1; θα σας
δείξει ποιες διεργασίες χρησιμοποιούν κάθε μια από αυτές τις
λειτουργίες του System V.options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensionsΕπεκτάσεις πραγματικού χρόνου (Real-time) που προστέθηκαν στο
&posix; το 1993. Χρησιμοποιείται από κάποιες εφαρμογές στη συλλογή των
ports (όπως το &staroffice;).options KBD_INSTALL_CDEV # install a CDEV entry in /devΗ επιλογή αυτή είναι απαραίτητη για τη δημιουργία του αρχείου
συσκευής πληκτρολογίου στον κατάλογο /dev.options ADAPTIVE_GIANT # Giant mutex is adaptive.Το Giant είναι το όνομα ενός συστήματος αμοιβαίου αποκλεισμού
(sleep mutex) το οποίο προστατεύει ένα μεγάλο αριθμό πόρων του πυρήνα.
Στις μέρες μας, αυτό θεωρείται ανεπίτρεπτο από πλευράς απόδοσης και
αντικαθίσταται με κλειδώματα τα οποία προστατεύουν συγκεκριμένους
πόρους. Η επιλογή ADAPTIVE_GIANT επιτρέπει στο Giant
να συμπεριληφθεί στο σετ των mutexes που μπορούν να εκτελεστούν
επιλεκτικά. Έτσι, αν ένα νήμα θέλει να κλειδώσει το Giant mutex, αλλά
αυτό είναι ήδη κλειδωμένο από ένα νήμα σε μια άλλη CPU, το πρώτο νήμα
θα συνεχίσει να εκτελείται, και θα περιμένει για την απελευθέρωση του
κλειδώματος. Φυσιολογικά, το νήμα θα επέστρεφε στην κατάσταση ύπνου
(sleep) και θα περίμενε για την επόμενη ευκαιρία εκτέλεσης του. Αν δεν
είστε σίγουρος, αφήστε αυτή την επιλογή ενεργή.Σημειώστε ότι από το &os; 8.0-RELEASE και τις επόμενες εκδόσεις,
όλα τα mutexes έχουν από προεπιλογή τη δυνατότητα προσαρμογής, εκτός
αν έχει επίτηδες γίνει διαφορετική ρύθμιση, χρησιμοποιώντας την
επιλογή NO_ADAPTIVE_MUTEXES κατά τη μεταγλώττιση.
Το Giant έχει επίσης δυνατότητα προσαρμογής πλέον, και έτσι η
επιλογή ADAPTIVE_GIANT έχει αφαιρεθεί από το
αρχείο ρυθμίσεων πυρήνα.kernel optionsSMPdevice apic # I/O APICΗ συσκευή apic επιτρέπει τη χρήση του I/O APIC για την παράδοση των
interrupts (διακοπών). Η συσκευή apic μπορεί να χρησιμοποιηθεί τόσο σε
πυρήνες για ένα επεξεργαστή (UP) όσο και για πολλαπλούς (SMP), αλλά στη
δεύτερη περίπτωση είναι απαραίτητη. Προσθέστε την επιλογή
options SMP για να έχετε υποστήριξη πολλαπλών
επεξεργαστών.Η συσκευή apic υπάρχει μόνο στην αρχιτεκτονική i386, η γραμμή αυτή
δεν θα πρέπει να χρησιμοποιηθεί σε άλλες αρχιτεκτονικές.device eisaΘα πρέπει να συμπεριλάβετε την επιλογή αυτή αν έχετε μητρική με
δίαυλο τύπου EISA. Ενεργοποιείται έτσι η αυτόματη ανίχνευση και ρύθμιση
όλων των συσκευών στο δίαυλο EISA.device pciΘα πρέπει να συμπεριλάβετε αυτή την επιλογή αν έχετε μητρική με
δίαυλο PCI. Ενεργοποιείται έτσι η αυτόματη ανίχνευση των καρτών PCI και
η επικοινωνία μεταξύ των διαύλων PCI και ISA.# Floppy drives
device fdcΠρόκειται για τον ελεγκτή μονάδας δισκέτας.# ATA and ATAPI devices
device ataΑυτός ο οδηγός υποστηρίζει όλες τις συσκευές τύπου ATA και ATAPI.
Χρειάζεστε μόνο μια καταχώρηση device ata για να
ανιχνεύσει ο πυρήνας όλες τις συσκευές ATA/ATAPI τύπου PCI στα σύγχρονα
μηχανήματα.device atadisk # ATA disk drivesΗ επιλογή αυτή απαιτείται μαζί με το device ata
για την υποστήριξη δίσκων ATA.device ataraid # ATA RAID drivesΗ επιλογή αυτή απαιτείται μαζί με τοdevice ata
για την υποστήριξη δίσκων ATA RAID.
device atapicd # ATAPI CDROM drivesΗ επιλογή αυτή απαιτείται μαζί με το device ata
για την υποστήριξη οδηγών ATAPI CDROM.device atapifd # ATAPI floppy drivesΗ επιλογή αυτή απαιτείται μαζί με το device ata
για την υποστήριξη οδηγών δισκέτας ATAPI.device atapist # ATAPI tape drivesΗ επιλογή αυτή απαιτείται μαζί με το device ata
για την υποστήριξη μονάδων ταινίας ATAPI.options ATA_STATIC_ID # Static device numberingΜε την επιλογή αυτή, ο αριθμός του ελεγκτή γίνεται στατικός. Χωρίς
αυτή, οι αριθμοί συσκευών αποδίδονται δυναμικά.# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50Ελεγκτές SCSI. Μπορείτε να μετατρέψετε σε σχόλιο οποιονδήποτε δεν
έχετε στο σύστημα σας. Αν το σύστημα σας έχει μόνο συσκευές IDE,
μπορείτε να αφαιρέσετε όλες τις γραμμές. Οι γραμμές τύπου
*_REG_PRETTY_PRINT χρησιμοποιούνται για να δίνουν
περισσότερες διαγνωστικές πληροφορίες για τους αντίστοιχους οδηγούς.
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)Περιφερειακά SCSI. Μπορείτε και πάλι να μετατρέψετε σε σχόλιο όσες
συσκευές δεν έχετε, ή αν έχετε μόνο συσκευές IDE, μπορείτε να
αφαιρέσετε εντελώς αυτές τις γραμμές.Ο οδηγός USB &man.umass.4; και κάποιοι άλλοι οδηγοί χρησιμοποιούν
το υποσύστημα SCSI αν και δεν είναι πραγματικές SCSI συσκευές. Για το
λόγο αυτό, σιγουρευτείτε ότι δεν αφαιρέσατε την υποστήριξη SCSI αν
περιλαμβάνονται τέτοιοι οδηγοί στο αρχείο ρύθμισης του πυρήνα σας.
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAIDΥποστηριζόμενοι ελεγκτές RAID. Αν δεν έχετε κανένα από αυτούς,
μπορείτε να τους μετατρέψετε σε σχόλια ή να τους αφαιρέσετε εντελώς.
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controllerΟ ελεγκτής πληκτρολογίου (atkbdc) παρέχει
υπηρεσίες I/O για πληκτρολόγια τύπου AT και συσκευές κατάδειξης
(ποντίκια) τύπου PS/2. Ο ελεγκτής απαιτείται για τη λειτουργία του
οδηγού πληκτρολογίου (atkbd) και του οδηγού
συσκευής κατάδειξης PS/2 (psm).device atkbd # AT keyboardΟ οδηγός atkbd, μαζί με τον ελεγκτή
atkbdc, παρέχει πρόσβαση σε πληκτρολόγιο τύπου AT 84
ή εκτεταμένου AT το οποίο συνδέεται στον ελεγκτή πληκτρολογίου.device psm # PS/2 mouseΧρησιμοποιήστε αυτή τη συσκευή αν το ποντίκι σας συνδέεται στην
θύρα PS/2.device kbdmux # keyboard multiplexerΒασική υποστήριξη πολυπλεξίας πληκτρολογίων. Αν δε σκοπεύετε να
χρησιμοποιήσετε περισσότερα από ένα πληκτρολόγια στο σύστημα σας,
μπορείτε με ασφάλεια να αφαιρέσετε αυτή τη γραμμή.device vga # VGA video card driverΤο πρόγραμμα οδήγησης της κάρτας γραφικών.
device splash # Splash screen and screen saver supportΓραφική οθόνη (splash) κατά την εκκίνηση! Η συσκευή αυτή
χρησιμοποιείται επίσης από τα προγράμματα προφύλαξης οθόνης (κονσόλας).
# syscons is the default console driver, resembling an SCO console
device scΟ οδηγός sc είναι ο προεπιλεγμένος οδηγός
κονσόλας και προσομοιώνει κονσόλα τύπου SCO. Καθώς τα περισσότερα
προγράμματα πλήρους οθόνης αποκτούν πρόσβαση στην κονσόλα μέσω κάποιας
βιβλιοθήκης βάσης δεδομένων τερματικών όπως το
termcap, δεν θα πρέπει να έχει σημασία αν
χρησιμοποιήσετε αυτόν τον οδηγό ή τον vt ο οποίος
είναι συμβατός με κονσόλα VT220. Μετά την είσοδο σας
στο σύστημα, θέστε την μεταβλητή TERM στην τιμή
scoansi αν κάποια προγράμματα πλήρους οθόνης έχουν
πρόβλημα όταν χρησιμοποιείται αυτή η κονσόλα.# Enable this for the pcvt (VT220 compatible) console driver
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursorΠρόκειται για ένα οδηγό κονσόλας συμβατό με VT220, και με προς τα
πίσω συμβατότητα με VT100/102. Λειτουργεί καλά σε κάποιους φορητούς
υπολογιστές που έχουν ασυμβατότητα υλικού με τον sc.
Μετά την είσοδο σας στο σύστημα, θέστε την μεταβλητή TERM
σε vt100 ή vt220. Ο οδηγός μπορεί
επίσης να αποδειχθεί χρήσιμος όταν συνδέεστε σε μεγάλο αριθμό από
διαφορετικά μηχανήματα μέσω δικτύου, όπου δεν υπάρχουν καταχωρήσεις για
τη συσκευή sc στο termcap ή
terminfo — το vt100
θα πρέπει να είναι διαθέσιμο πρακτικά σε κάθε πλατφόρμα.device agpΣυμπεριλάβετε τη συσκευή αυτή αν έχετε AGP κάρτα στο σύστημα σας.
Θα ενεργοποιήσετε με αυτό τον τρόπο την υποστήριξη για AGP και AGP GART
για μητρικές που υποστηρίζουν αυτές τις λειτουργίες.APM# Power management support (see NOTES for more options)
#device apmΥποστήριξη Advanced Power Management (προχωρημένης διαχείρισης
ισχύος). Χρήσιμο για φορητά, αν και η επιλογή αυτή, από προεπιλογή,
είναι ανενεργή στον πυρήνα GENERIC.# Add suspend/resume support for the i8254.
device pmtimerΠρόγραμμα οδήγησης μετρητή χρόνου (Timer) για συμβάντα που
σχετίζονται με διαχείριση ενέργειας όπως το APM και το ACPI.# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) busΥποστήριξη PCMCIA. Την χρειάζεστε αν χρησιμοποιείτε φορητό
υπολογιστή.# Serial (COM) ports
device sio # 8250, 16[45]50 based serial portsΠρόκειται για τις σειριακές θύρες οι οποίες είναι γνωστές στον κόσμο
του &ms-dos;/&windows; ως θύρες COM.Αν έχετε εσωτερικό μόντεμ στη θύρα COM4
και έχετε και σειριακή θύρα COM2, θα πρέπει
να αλλάξετε το IRQ του μόντεμ στο 2 (για περίεργους τεχνικούς λόγους,
IRQ2 = IRQ 9) για να μπορέσετε να το χρησιμοποιήσετε από το &os;. Αν
έχετε κάρτα πολλαπλών σειριακών εξόδων, ελέγξτε τη σελίδα manual του
&man.sio.4; για περισσότερες πληροφορίες σχετικά με τις σωστές τιμές
που πρέπει να προσθέσετε στο /boot/device.hints.
Κάποιες κάρτες γραφικών (ειδικά αυτές που βασίζονται σε ολοκληρωμένα
S3) χρησιμοποιούν διευθύνσεις IO μορφής 0x*2e8,
και καθώς πολλές φτηνές σειριακές κάρτες δεν αποκωδικοποιούν πλήρως
τη 16 bit περιοχή διευθύνσεων, συγκρούονται με τις κάρτες αυτές,
καθιστώντας έτσι πρακτικά άχρηστη τη θύρα
COM4.Κάθε σειριακή πόρτα χρειάζεται να έχει μια μοναδική IRQ (εκτός
αν χρησιμοποιείτε κάρτα πολλαπλών σειριακών που υποστηρίζει
κοινή χρήση interrupts), και έτσι δεν μπορούν να χρησιμοποιηθούν τα
προεπιλεγμένα interrupts για την COM3 και την
COM4.# Parallel port
device ppcΠρόκειται για την παράλληλη θύρα στο δίαυλο ISA.device ppbus # Parallel port bus (required)Παρέχει υποστήριξη για το δίαυλο της παράλληλης θύρας.device lpt # PrinterΠαρέχει υποστήριξη για εκτυπωτές παράλληλης θύρας.Χρειάζεστε και τα τρία παραπάνω για να ενεργοποιήσετε την
υποστήριξη εκτυπωτή παράλληλης θύρας.device plip # TCP/IP over parallelΠρόκειται για το πρόγραμμα οδήγησης δικτύου μέσω παράλληλης θύρας.
device ppi # Parallel port interface deviceΠρόγραμμα I/O γενικής χρήσης (geek port) + IEEE1284
I/O.#device vpo # Requires scbus and dazip driveΧρησιμοποιείται για μονάδα δισκέτας Iomega Zip. Απαιτεί υποστήριξη
από τους οδηγούς scbus και da.
Η καλύτερη απόδοση επιτυγχάνεται με θύρα σε κατάσταση λειτουργίας
EPP 1.9.#device pucΕνεργοποιήστε αυτή τη συσκευή αν έχετε μια χαζή
σειριακή ή παράλληλη PCI κάρτα η οποία υποστηρίζεται από το πρόγραμμα
οδήγησης &man.puc.4; (glue driver).# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (Tulip)
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device txp # 3Com 3cR990 (Typhoon)
device vx # 3Com 3c590, 3c595 (Vortex)Διάφορα προγράμματα οδήγησης για PCI κάρτες δικτύου. Μετατρέψτε σε
σχόλιο ή αφαιρέστε τελείως όσες δεν υπάρχουν στο σύστημα σας.# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus supportΗ υποστήριξη διαύλου MII απαιτείται για κάποιες κάρτες δικτύου
Ethernet PCI 10/100, ειδικά για αυτές που χρησιμοποιούν πομποδέκτη
συμβατό με MII ή έχουν διεπαφή ελέγχου που λειτουργεί παρόμοια με τον
MII. Προσθέτοντας device miibus στο αρχείο ρύθμισης
του πυρήνα, θα έχετε υποστήριξη για το γενικό API του miibus και για
όλους τους οδηγούς PHY, συμπεριλαμβανομένου και ενός γενικού για PHYs
που δεν υποστηρίζονται από κάποιο συγκεκριμένο οδηγό.device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nge # NatSemi DP83820 gigabit ethernet
device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 EPIC)
device vge # VIA VT612x gigabit ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang, Cyclone)Προγράμματα οδήγησης που χρησιμοποιούν τον κώδικα του διαύλου
ελέγχου MII.# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device lnc # NE2100, NE32-VL Lance Ethernet cards
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# ISA devices that use the old ISA shims
#device leΠρογράμματα οδήγησης καρτών Ethernet τύπου ISA. Δείτε το αρχείο
/usr/src/sys/i386/conf/NOTES
για λεπτομέρειες σχετικά με το ποιες κάρτες υποστηρίζονται από ποιον
οδηγό.# Wireless NIC cards
device wlan # 802.11 supportΓενική υποστήριξη του 802.11. Η γραμμή αυτή απαιτείται για ασύρματη
δικτύωση.device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP supportΥποστήριξη κρυπτογράφησης για συσκευές 802.11. Οι γραμμές αυτές
χρειάζονται αν σκοπεύετε να χρησιμοποιήσετε κρυπτογράφηση και πρωτόκολλα
ασφαλείας 802.11i.device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate tx rate control for ath
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.Υποστήριξη για διάφορες ασύρματες κάρτες.# Pseudo devices
device loop # Network loopbackΠρόκειται για τη γενική συσκευή εσωτερικού δικτύου (loopback) του
TCP/IP. Η σύνδεση μέσω telnet ή FTP στο localhost
(γνωστό επίσης και ως 127.0.0.1)
πραγματοποιείται μέσω αυτής της συσκευής. Η ύπαρξη αυτής της συσκευής
είναι υποχρεωτική.device random # Entropy deviceΚρυπτογραφικά ασφαλής γεννήτρια τυχαίων αριθμών.device ether # Ethernet supportΗ γραμμή ether απαιτείται μόνο αν έχετε κάρτα
δικτύου Ethernet. Περιέχει γενικό κώδικα για το πρωτόκολλο Ethernet.
device sl # Kernel SLIPΗ γραμμή sl παρέχει υποστήριξη SLIP. Η υποστήριξη
αυτή έχει σχεδόν ολοκληρωτικά ξεπεραστεί από το PPP, το οποίο είναι
ευκολότερο στη ρύθμιση, υποστηρίζει καλύτερα τις συνδέσεις μέσω μόντεμ,
και παρέχει καλύτερες δυνατότητες.device ppp # Kernel PPPΗ γραμμή αυτή είναι για υποστήριξη PPP μέσω του πυρήνα για
επιλογικές (dial-up) συνδέσεις. Υπάρχει επίσης μια έκδοση PPP η οποία
υλοποιείται ως εφαρμογή χρήστη (userland), χρησιμοποιεί το
tun και προσφέρει περισσότερη ευελιξία και
λειτουργίες όπως κλήση κατά απαίτηση (demand dialing).device tun # Packet tunnel.Η συσκευή αυτή χρησιμοποιείται από το πρόγραμμα PPP χρήστη
(userland). Δείτε το τμήμα PPP
αυτού του βιβλίου για περισσότερες πληροφορίες.
device pty # Pseudo-ttys (telnet etc)Πρόκειται για συσκευή ψευδό-τερματικού ή προσομοίωσης
θύρας login. Χρησιμοποιείται για εισερχόμενες συνδέσεις
telnet και rlogin, από το
xterm, και από κάποιες άλλες εφαρμογές όπως
το Emacs.device md # Memory disksΨευτό-συσκευές δίσκου με χρήση μνήμης (ramdrives).device gif # IPv6 and IPv4 tunnelingΗ συσκευή αυτή υλοποιεί IPv6 σε IPv4 tunneling, IPv4 σε IPv6
tunneling, IPv4 σε IPv4 tunneling, και IPv6 σε IPv6 tunneling. Η συσκευή
gifαυτό-κλωνοποιείται, και δημιουργεί
τα αντίστοιχα αρχεία συσκευών όπως απαιτούνται.device faith # IPv6-to-IPv4 relaying (translation)Αυτή η ψεύδο-συσκευή συλλαμβάνει πακέτα που στέλνονται προς αυτήν
και τα ανακατευθύνει προς το δαίμονα μετάφρασης του IPv4/IPv6.# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filterΠρόκειται για το φίλτρο πακέτων Berkeley. Αυτή η ψεύδο-συσκευή
επιτρέπει σε κάρτες δικτύου να λειτουργούν σε κατάσταση promiscuous
(πλήρους ακρόασης), συλλαμβάνοντας με αυτό τον τρόπο κάθε πακέτο ενός
δικτύου (π.χ. Ethernet). Τα πακέτα αυτά μπορεί να αποθηκεύονται στο
δίσκο ή να εξετάζονται με τη βοήθεια του προγράμματος &man.tcpdump.1;.
Η συσκευή &man.bpf.4; χρησιμοποιείται επίσης από το
&man.dhclient.8; για την ανάκτηση της διεύθυνσης IP της προεπιλεγμένης
πύλης κ.ο.κ. Αν χρησιμοποιείτε DHCP, αφήστε αυτή την επιλογή
ενεργοποιημένη.# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # Human Interface Devices
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device ural # Ralink Technology RT2500USB wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB EthernetΥποστήριξη για διάφορες συσκευές USB.# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)Υποστήριξη για διάφορες συσκευές Firewire.Για περισσότερες πληροφορίες και επιπλέον συσκευές που
υποστηρίζονται από το &os;, δείτε το αρχείο
/usr/src/sys/i386/conf/NOTES
.Λειτουργία με Μεγάλη Ποσότητα Μνήμης (PAE)
Physical Address Extensions
(PAE)large memoryΜηχανήματα με μεγάλη ποσότητα μνήμης, χρειάζονται πρόσβαση σε
μνήμη που υπερβαίνει το όριο των 4 gigabytes των Εικονικών
Διευθύνσεων Χρήστη+Πυρήνα (User+Kernel Virtual Address,
KVA). Εξαιτίας αυτού του περιορισμού, η Intel
πρόσθεσε υποστήριξη για 36bit φυσικών διευθύνσεων, από τον
επεξεργαστή &pentium; Pro και μετά.Η δυνατότητα Επέκτασης Φυσικών Διευθύνσεων, (Physical Address
Extension, PAE) των &intel; &pentium; Pro και
μεταγενέστερων CPU, επιτρέπει χρήση μνήμης ως 64 gigabytes. To &os;
παρέχει υποστήριξη για τη δυνατότητα αυτή μέσω της ρύθμισης πυρήνα
, η οποία διατίθεται για όλες τις τρέχουσες
σταθερές εκδόσεις του &os;. Λόγω περιορισμών στην αρχιτεκτονική του
συστήματος μνήμης της Intel, δεν γίνεται διάκριση για τη μνήμη που
βρίσκεται πάνω ή κάτω από τα 4 gigabytes. Η μνήμη που εκχωρείται
πάνω από τα 4 gigabytes, απλώς προστίθεται στο μέγεθος της
διαθέσιμης μνήμης.Για να ενεργοποιήσετε την υποστήριξη PAE
στον πυρήνα, απλώς προσθέστε την ακόλουθη γραμμή στο αρχείο
των ρυθμίσεων σας:options PAEΗ υποστήριξη PAE στο &os; είναι διαθέσιμη
μόνο για επεξεργαστές αρχιτεκτονικής &intel; IA-32. Θα πρέπει
επίσης να σημειώσουμε ότι η υποστήριξη PAE στο
&os; δεν έχει δοκιμαστεί εκτεταμένα, και θα πρέπει να θεωρείται
ποιότητας beta σε σχέση με τα άλλα σταθερά χαρακτηριστικά του
&os;.Η υποστήριξη PAE στο &os; υπόκειται σε
κάποιους περιορισμούς:Μια διαδικασία δεν έχει πρόσβαση σε περισσότερα από 4
gigabytes χώρου VM.Οδηγοί συσκευών που δεν χρησιμοποιούν τη διεπαφή
&man.bus.dma.9; ίσως προκαλέσουν καταστροφή δεδομένων σε ένα
PAE πυρήνα και για το λόγο αυτό δεν
συνίσταται η χρήση τους. Στο &os; παρέχεται ένα αρχείο
ρυθμίσεων PAE στο οποίο έχουν εξαιρεθεί
όλα τα προγράμματα οδήγησης που είναι γνωστό ότι δεν δουλεύουν
σε πυρήνα τύπου PAE.Κάποιες μεταβλητές συστήματος (system tunables) εξακριβώνουν
τη χρήση της μνήμης, βλέποντας το ποσό της διαθέσιμης φυσικής
μνήμης. Αυτές οι μεταβλητές μπορεί να χρησιμοποιήσουν
αδικαιολόγητα μεγάλη ποσότητα μνήμης, λόγω της φύσης του
συστήματος PAE. Ένα τέτοιο παράδειγμα είναι η
ρύθμιση sysctl η οποία ελέγχει
το μέγιστο αριθμό vnodes που επιτρέπονται στον πυρήνα. Είναι
σκόπιμο να ρυθμίσετε αυτή και άλλες παρόμοιες παραμέτρους σε
λογικές τιμές.Ίσως χρειαστεί να ρυθμίσετε τις εικονικές διευθύνσεις του
πυρήνα (KVA) ή να μειώσετε την ποσότητα
κάποιου συγκεκριμένου πόρου που έχει μεγάλη χρήση (δείτε
παραπάνω) για να αποφύγετε την εξάντληση του
KVA. Μπορείτε να αυξήσετε το μέγεθος του
KVA μέσω της επιλογής
.Για λόγους σταθερότητας και απόδοσης, σας συμβουλεύουμε να
διαβάσετε τη σελίδα manual &man.tuning.7;. Επίσης η σελίδα
&man.pae.4; περιέχει ενημερωμένες πληροφορίες σχετικά με την
υποστήριξη PAE στο &os;.Αν Κάτι Πάει ΛάθοςΥπάρχουν τέσσερις κατηγορίες προβλημάτων που μπορούν να
παρουσιαστούν όταν δημιουργείτε ένα προσαρμοσμένο πυρήνα:Αποτυχία της εντολής config:Αν η εντολή &man.config.8; αποτυγχάνει όταν της δίνετε την
περιγραφή του πυρήνα σας, έχετε κατά πάσα πιθανότητα, κάνει
κάποιο απλό λάθος. Ευτυχώς, η &man.config.8; θα σας δείξει τον
αριθμό γραμμής στον οποίο συνάντησε το πρόβλημα, και έτσι θα
μπορέσετε εύκολα να το εντοπίσετε. Για παράδειγμα, αν δείτε:
config: line 17: syntax errorΒεβαιωθείτε ότι η λέξη-κλειδί στη γραμμή αυτή είναι σωστή,
συγκρίνοντας τη με την αντίστοιχη στο αρχείο
GENERIC ή σε άλλο αρχείο αναφοράς.Αποτυχία της εντολής make:Αν αποτυγχάνει η εντολή make, συνήθως αυτό
σημαίνει κάποιο λάθος στο αρχείο ρυθμίσεων το οποίο δεν είναι
αρκετά σοβαρό για να το καταλάβει η &man.config.8;. Κοιτάξτε ξανά
το αρχείο ρυθμίσεων σας και αν ακόμα δεν μπορείτε να εντοπίσετε το
πρόβλημα, στείλτε το μαζί με το αρχείο με mail στην
&a.questions; και θα εντοπιστεί πολύ γρήγορα.Ο πυρήνας δεν εκκινεί:Αν ο νέος σας πυρήνας δεν εκκινεί ή αποτυγχάνει να αναγνωρίσει
τις συσκευές σας, μην πανικοβάλλεστε! Ευτυχώς, το &os; έχει ένα
εξαιρετικό μηχανισμό για να επανέλθετε από μη-συμβατούς πυρήνες.
Απλώς επιλέξτε τον πυρήνα από τον οποίο θέλετε να ξεκινήσετε μέσω
του συστήματος εκκίνησης (boot loader) του &os;. Έχετε πρόσβαση
σε αυτό, την ώρα που εμφανίζεται το μενού επιλογών εκκίνησης.
Επιλέξτε Escape to a loader prompt, αριθμός έξι.
Στην προτροπή που εμφανίζεται, γράψτε την εντολή
boot kernel.old
ή το όνομα αρχείου ενός άλλου πυρήνα που ξεκινάει
κανονικά. Όταν φτιάχνετε ένα νέο πυρήνα, είναι πάντα καλή ιδέα
να έχετε πρόχειρο ένα πυρήνα που ξέρετε ότι δουλεύει.Αφού εκκινήσετε με ένα καλό πυρήνα, μπορείτε να ελέγξετε το
αρχείο ρυθμίσεων σας από την αρχή, και να προσπαθήσετε ξανά.
Μια χρήσιμη πηγή πληροφοριών είναι το αρχείο
/var/log/messages το οποίο μεταξύ άλλων
καταγράφει όλα τα μηνύματα του πυρήνα από κάθε επιτυχημένη
εκκίνηση. Επίσης η εντολή &man.dmesg.8; θα σας δείξει όλα τα
μηνύματα του πυρήνα της τρέχουσας εκκίνησης.Αν έχετε πρόβλημα στη δημιουργία πυρήνα, βεβαιωθείτε ότι
έχετε κρατήσει ένα πυρήνα GENERIC, ή
κάποιο άλλο που γνωρίζετε ότι λειτουργεί, χρησιμοποιώντας ένα
διαφορετικό όνομα ώστε να μη διαγραφεί στην επόμενη
μεταγλώττιση. Δεν μπορείτε να βασιστείτε στον πυρήνα
kernel.old, γιατί κάθε φορά που
εγκαθιστάτε νέο πυρήνα, το kernel.old
αντικαθίσταται με τον τελευταίο εγκατεστημένο πυρήνα, ο οποίος
μπορεί να μην λειτουργεί. Επίσης, όσο το δυνατόν πιο σύντομα,
μετακινήστε τον πυρήνα που λειτουργεί στην σωστή θέση,
/boot/kernel, διαφορετικά
εντολές όπως η &man.ps.1; ίσως να μη λειτουργούν σωστά. Για να
το κάνετε αυτό, απλώς μετονομάστε τον κατάλογο που περιέχει τον
καλό πυρήνα, π.χ:&prompt.root; mv /boot/kernel /boot/kernel.bad
&prompt.root; mv /boot/kernel.good /boot/kernelΟ νέος πυρήνας λειτουργεί, αλλά η &man.ps.1; δεν λειτουργεί
πλέον:Αν εγκαταστήσετε πυρήνα διαφορετικής έκδοσης από αυτόν με τον
οποίο έχουν φτιαχτεί τα εργαλεία συστήματος, για παράδειγμα εάν
βάλετε ένα πυρήνα της σειράς -CURRENT σε ένα σύστημα -RELEASE,
πολλές από τις εντολές που σχετίζονται με την κατάσταση του
συστήματος όπως ή &man.ps.1; και η &man.vmstat.8; δεν θα
λειτουργούν πλέον. Θα πρέπει να
μεταγλωττίσετε και να εγκαταστήσετε όλο
το βασικό σύστημα (world) χρησιμοποιώντας ίδια έκδοση του
πηγαίου κώδικα με αυτή του πυρήνα σας. Αυτός είναι και ένας λόγος
για τον οποίο δεν είναι συνήθως καλή ιδέα να χρησιμοποιείτε
διαφορετική έκδοση πυρήνα από το υπόλοιπο του λειτουργικού
συστήματος.