Χρειάζεται να έχετε εγκαταστήσει όλο τον πηγαίο κώδικα του FreeBSD για να μεταγλωττίσετε τον πυρήνα.
Αρχικά, θα κάνουμε μια γρήγορη παρουσίαση του καταλόγου στον οποίο
γίνεται η μεταγλώττιση του πυρήνα. Όλοι οι κατάλογοι που θα αναφέρουμε
βρίσκονται κάτω από τον κατάλογο /usr/src/sys
ο
οποίος είναι επίσης προσβάσιμος μέσω της διαδρομής
/sys
. Υπάρχει εδώ ένας αριθμός υποκαταλόγων ο
οποίος αντιπροσωπεύει διαφορετικά τμήματα του πυρήνα, αλλά οι πλέον
σημαντικοί για το σκοπό μας είναι οι
arch/conf
, όπου θα
επεξεργαστείτε τις ρυθμίσεις για τον προσαρμοσμένο πυρήνα σας, και ο
compile
, που είναι ο χώρος εργασίας στον οποίο θα
γίνει η μεταγλώττιση του. Ο arch
αντιπροσωπεύει ένα από τα i386
,
amd64
,
ia64
, powerpc
,
sparc64
, ή pc98
(ένας εναλλακτικός τύπος PC, διαδεδομένος στην Ιαπωνία). Οτιδήποτε
βρίσκεται μέσα στον συγκεκριμένο κατάλογο μιας αρχιτεκτονικής,
σχετίζεται μόνο με την αρχιτεκτονική αυτή. Το υπόλοιπο του κώδικα,
είναι ανεξάρτητο από την αρχιτεκτονική και κοινό σε κάθε πλατφόρμα όπου
θα μπορούσε να μεταγλωττιστεί το FreeBSD. Παρατηρήστε τη λογική οργάνωση
της δομής των καταλόγων, όπου κάθε υποστηριζόμενη συσκευή, σύστημα
αρχείων και επιλογή βρίσκεται στο δικό της κατάλογο.
Στα παραδείγματα αυτού του κεφαλαίου υποθέτουμε ότι χρησιμοποιείτε την αρχιτεκτονική i386. Αν χρησιμοποιείτε διαφορετική αρχιτεκτονική, θα χρειαστεί να αλλάξετε τα ονόματα των καταλόγων και διαδρομών ώστε να συμβαδίζουν με αυτή.
Αν δεν υπάρχει ο κατάλογος
/usr/src/
στο σύστημα σας
(ή αν είναι άδειος), τότε δεν έχετε
εγκαταστήσει τον πηγαίο κώδικα. Ο ευκολότερος τρόπος για
να εγκαταστήσετε τον πλήρη πηγαίο κώδικα, είναι να μέσω του
csup(1) όπως περιγράφεται στο Τμήμα 25.6, «Συγχρονίζοντας τον Πηγαίο σας Κώδικα».
Θα πρέπει επίσης να δημιουργήσετε ένα συμβολικό δεσμό προς
τον κατάλογο /usr/src/sys/
:
#
ln -s /usr/src/sys /sys
Έπειτα, μετακινηθείτε στον κατάλογο
arch/conf
και αντιγράψτε το αρχείο ρυθμίσεων GENERIC
στο
όνομα το οποίο θέλετε να δώσετε στο νέο σας πυρήνα. Για παράδειγμα:
#
cd /usr/src/sys/i386/conf
#
cp GENERIC MYKERNEL
Κατά παράδοση, το όνομα αυτό γράφεται εξ' ολοκλήρου με κεφαλαία
γράμματα και αν έχετε πολλά μηχανήματα FreeBSD με διαφορετικό υλικό,
είναι καλή ιδέα να του δώσετε το όνομα του μηχανήματος. Για το
παράδειγμα μας, θα το αποκαλούμε
MYKERNEL
.
Δεν είναι γενικά καλή ιδέα να αποθηκεύσετε το αρχείο ρυθμίσεων σας
απευθείας στον κατάλογο /usr/src
. Αν
αντιμετωπίσετε προβλήματα, ίσως μπείτε στον πειρασμό να διαγράψετε
απλώς τον κατάλογο /usr/src
και να ξεκινήσετε
από την αρχή. Συνήθως λίγα δευτερόλεπτα μετά από αυτό θα
συνειδητοποιήσετε ότι έχετε επίσης διαγράψει το αρχείο ρυθμίσεων
του πυρήνα σας. Επίσης, μην επεξεργάζεστε απευθείας το αρχείο
GENERIC
, καθώς μπορεί οι αλλαγές σας να χαθούν
την επόμενη φορά που θα
ανανεώσετε τον πηγαίο σας κώδικα.
Καλό θα είναι να αποθηκεύσετε το αρχείο ρυθμίσεων σε άλλο κατάλογο
και να δημιουργήσετε ένα συμβολικό δεσμό προς το αρχείο, στον κατάλογο
i386
.
Για παράδειγμα:
#
cd /usr/src/sys/i386/conf
#
mkdir /root/kernels
#
cp GENERIC /root/kernels/MYKERNEL
#
ln -s /root/kernels/MYKERNEL
Τώρα, τροποποιήστε το αρχείο
MYKERNEL
με τον
επεξεργαστή κειμένου που προτιμάτε. Αν ξεκινάτε μόλις τώρα, πιθανόν ο
μόνος διαθέσιμος επεξεργαστής κειμένου να είναι το
vi, ο οποίος είναι αρκετά πολύπλοκος για να
τον εξηγήσουμε εδώ, αλλά καλύπτεται αρκετά καλά από πλήθος βιβλίων στην
βιβλιογραφία. Ωστόσο, το FreeBSD
διαθέτει επίσης ένα ευκολότερο επεξεργαστή κειμένου, τον
ee ο οποίος είναι η κατάλληλη επιλογή αν
είστε αρχάριος. Αλλάξτε κατά βούληση τα σχόλια στην αρχή του αρχείου
ρυθμίσεων ώστε να αντανακλούν τις αλλαγές που έχετε κάνει και οι οποίες
το διαχωρίζουν από το GENERIC
.
Αν έχετε δημιουργήσει πυρήνα στο SunOS™ ή σε κάποιο άλλο
λειτουργικό σύστημα τύπου BSD, το μεγαλύτερο μέρος αυτού του αρχείου
θα σας φανεί γνωστό. Από την άλλη, αν έρχεστε από κάποιο άλλο
λειτουργικό, όπως το DOS το αρχείο ρυθμίσεων
GENERIC
ίσως να σας είναι δύσκολο στην κατανόηση,
για το λόγο αυτό ακολουθήστε αργά και προσεκτικά τις περιγραφές του
τμήματος
Αρχείο Ρυθμίσεων.
Αν συγχρονίσετε τον πηγαίο κώδικα
με τις τελευταίες αλλαγές του FreeBSD project, να διαβάσετε το αρχείο
/usr/src/UPDATING
πριν προχωρήσετε σε οποιοδήποτε
βήμα αναβάθμισης. Το αρχείο αυτό περιγράφει πιθανά σημαντικά
προβλήματα ή περιοχές που χρειάζονται ιδιαίτερη προσοχή όσο αφορά τον
ανανεωμένο πηγαίο κώδικα. Το αρχείο
/usr/src/UPDATING
ταιριάζει πάντα με την έκδοση
του πηγαίου κώδικα του FreeBSD που έχετε, και είναι για αυτό το λόγο
πιο ενημερωμένο σε σχέση με ότι διαβάσετε στο παρόν βιβλίο.
Θα πρέπει τώρα να μεταγλωττίσετε τον πηγαίο κώδικα του πυρήνα.
Χρειάζεται να έχετε εγκαταστήσει όλο τον πηγαίο κώδικα του FreeBSD για να μεταγλωττίσετε τον πυρήνα.
Μετακινηθείτε στον κατάλογο /usr/src
:
#
cd /usr/src
Μεταγλωττίστε τον πυρήνα:
#
make buildkernel KERNCONF=MYKERNEL
Εγκαταστήστε το νέο πυρήνα:
#
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 του make.conf(5).
Ο νέος πυρήνας θα αντιγραφεί στον κατάλογο
/boot/kernel
με το όνομα
/boot/kernel/kernel
ενώ ο παλιός πυρήνας θα
μετακινηθεί στο /boot/kernel.old/kernel
. Τερματίστε
τώρα το σύστημα σας και επανεκκινήστε για να χρησιμοποιήσετε το νέο
πυρήνα. Αν κάτι πάει στραβά, υπάρχουν κάποιες πληροφορίες για
Αντιμετώπιση Προβλημάτων που
ίσως σας φανούν χρήσιμες, στο τέλος αυτού του κεφαλαίου. Βεβαιωθείτε ότι
διαβάσατε το τμήμα που εξηγεί πως να επαναφέρετε το σύστημα σας σε
περίπτωση που ο νέος πυρήνας
δεν εκκινεί.
Άλλα αρχεία που σχετίζονται με τη διαδικασία εκκίνησης, όπως ο
loader(8) και οι ρυθμίσεις του, βρίσκονται στον κατάλογο
/boot
. Εξειδικευμένα modules ή modules τρίτων
κατασκευαστών μπορούν να τοποθετηθούν στον κατάλογο
/boot/kernel
, αν και οι χρήστες
θα πρέπει να γνωρίζουν ότι είναι σημαντικό τα modules να είναι σε
συγχρονισμό με τον πυρήνα. Modules τα οποία δεν προορίζονται για
εκτέλεση με τον τρέχοντα πυρήνα, μπορούν να προκαλέσουν αστάθεια
ή εσφαλμένη λειτουργία του συστήματος σας.
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την
τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην
<doc@FreeBSD.org>.