Αυτή η ενότητα καλύπτει αλλαγές και σημαντικές πληροφορίες σχετικά με τον πυρήνα 2.6.18 στο Fedora Core 6. Ο πυρήνας 2.6.18 περιλαμβάνει:
Υποστήριξη lightweight user space priority inheritance (http://lwn.net/Articles/178253/)
Εργαλείο αποσφαλμάτωσης που υποστηρίζει ελεγκτή κλειδώματος (http://lwn.net/Articles/185666/)
Νέα πολιτική εξοικονόμησης ενέργειας για multicore συστήματα, SMPnice (http://lwn.net/Articles/186438/)
Ένα αρκετά βελτιωμένο SATA layer (http://lwn.net/Articles/183734/)
Swapless page migration (http://lwn.net/Articles/160201/)
Per-zone VM counters
Per-task delay accounting
Ένας νέος έλεγχος πρόσβασης per-packet για το SELinux ονομαζόμενος secmark (http://james-morris.livejournal.com/11010.html)
Randomized i386 vDSO
Νέοι οδηγοί και επιπρόσθετη υποστήριξη συσκευών για πολλούς ήδη υπάρχοντες οδηγούς
Πολλές διορθώσεις σφαλμάτων και άλλες μικρές βελτιώσεις
Αυτή η διανομή βασίζεται στη σειρά 2.6 του πυρήνα του Linux. Το Fedora Core μπορεί να περιέχει επιπλέον patch για βελτιώσεις, διορθώσεις σφαλμάτων ή επιπλέον χαρακτηριστικά. Για αυτόν το λόγο, ο πυρήνας του Fedora Core μπορεί να μην είναι γραμμή-προς-γραμμή ίδιος με τον αποκαλούμενο πυρήνα vanilla από τον ιστοχώρο kernel.org:
Για να πάρετε μια λίστα από αυτά τα patch, κατεβάστε το πηγαίο πακέτο RPM και εκτελέστε την παρακάτω εντολή σε αυτό:
rpm -qpl kernel-<έκδοση>.src.rpmΓια να πάρετε ένα αρχείο καταγραφής των αλλαγών στο πακέτο, εκτελέστε την παρακάτω εντολή:
rpm -q --changelog kernel-<έκδοση>Αν χρειάζεστε ένα αρχείο καταγραφής αλλαγών πιο φιλικό προς το χρήστη, ανατρέξτε στο http://wiki.kernelnewbies.org/LinuxChanges. Μια σύντομη αλλά πλήρης καταγραφή αλλαγών (diff) του πυρήνα είναι διαθέσιμη από το http://kernel.org/git. Ο πυρήνας του Fedora είναι βασισμένος στο δέντρο του Linus.
Οι προσαρμογές που έγιναν για την έκδοση που υπάρχει στο Fedora είναι διαθέσιμες στο http://cvs.fedora.redhat.com.
Το Fedora Core 6 περιέχει τις ακόλουθες μορφές ανάπτυξης του πυρήνα:
Αρχικός πυρήνας για χρήση στα περισσότερα συστήματα. Ρυθμισμένες πηγές είναι διαθέσιμες στο πακέτο kernel-devel-.<έκδοση>.<αρχιτεκτονική>.rpm
kernel-PAE, για χρήση σε 32-bit x86 συστήματα με > 4GB RAM, ή με επεξεργαστές (CPUs) που έχουν 'NX (No eXecute)' χαρακτηριστικά. Αυτός ο πυρήνας υποστηρίζει uniprocessor αλλά και multi-processor συστήματα.
Ιδεατός πυρήνας για χρήση με το πακέτο Xen emulator. Ρυθμισμένες πηγές είναι διαθέσιμες στο πακέτο kernel-xen-devel-.<έκδοση>.<αρχιτεκτονική>.rpm
Kdump πυρήνας για χρήση με δυνατότητες kexec/kdump. Ρυθμισμένες πηγές είναι διαθέσιμες στο πακέτο ename>kernel-kdump-devel-<έκδοση>.<αρχιτεκτονική>.rpm
Μπορείτε να έχετε εγκατεστημένες τις κεφαλίδες πυρήνα για όλες τις μορφές πυρήνα ταυτόχρονα. Τα αρχεία εγκαθιστώνται στο δέντρο /usr/src/kernels/. Χρησιμοποιήστε την παρακάτω εντολή:<έκδοση>-[xen|kdump]-<αρχιτεκτονική>/
su -c 'yum install kernel-{PAE,xen,kdump}-devel'Επιλέξτε μία ή παραπάνω από αυτές τις μορφές, διαχωρισμένες με κόμματα και χωρίς κενά, όπως απαιτείται. Εισάγετε τον κωδικό του root όταν αυτός ζητηθεί.
![]() | Ο προεπιλεγμένος πυρήνας παρέχει SMP |
|---|---|
Δεν υπάρχει ξεχωριστός πυρήνας SMP διαθέσιμος για την αρχιτεκτονική x86_64 στο Fedora Core 6. Υποστήριξη για multiprocessor είναι διαθέσιμη από τον ιδεατό πυρήνα. |
![]() | Υποστήριξη πυρήνα για PowerPC |
|---|---|
Δεν υπάρχει υποστήριξη του Xen ή του kdump για την αρχιτεκτονική PowerPC στο Fedora Core 6.Για την 32-bit PowerPC αρχιτεκτονική υπάρχει ακόμη ξεχωριστός SMP πυρήνας. |
Ανατρέξτε στο http://kernel.org/pub/linux/docs/lkml/reporting-bugs.html για πληροφορίες για την αναφορά σφαλμάτων στον πυρήνα του Linux. Μπορείτε επίσης να χρησιμοποιήσετε το http://bugzilla.redhat.com για αναφορά σφαλμάτων που είναι ειδικά για το Fedora.
Πολλά από τα βοηθήματα, παραδείγματα και βιβλία κειμένου σχετικά με την ανάπτυξη των πυρήνων του Linux υποθέτουν πως ο πηγαίος κώδικας του πυρήνα είναι εγκατεστημένος κάτω από τον κατάλογο /usr/src/linux/. Αν δημιουργήσετε ένα συμβολικό σύνδεσμο, όπως φαίνεται παρακάτω, θα μπορείτε να χρησιμοποιήσετε αυτό το υλικό εκμάθησης με τα πακέτα του Fedora Core. Εγκαταστήστε τον κατάλληλο πηγαίο κώδικα, όπως αναφέρθηκε παραπάνω, και κατόπιν εκτελέστε την παρακάτω εντολή:
su -c 'ln -s /usr/src/kernels/<έκδοση>.<έκδοση>-<αρχιτεκτονική>/usr/src/linux'
Εισάγετε το συνθηματικό του root όταν αυτό ζητηθεί.
Το Fedora Core 6 δεν περιέχει το πακέτο kernel-source το οποίο περιλαμβανόταν σε παλιότερες εκδόσεις, αφού μόνο το πακέτο kernel-devel απαιτείται πλέον για να χτιστούν εξωτερικά αρθρώματα. Ρυθμισμένες εκ των προτέρων πηγές είναι διαθέσιμες, όπως περιγράφεται στην ενότητα για τις μορφές πυρήνα.
![]() | Οι οδηγίες αφορούν τον τρέχον πυρήνα |
|---|---|
Για την απλοποίηση των παρακάτω κατευθύνσεων, έχει γίνει η παραδοχή ότι θέλετε να ρυθμίσετε τον πηγαίο κώδικα πυρήνα έτσι ώστε να ταιριάζει με τον τρέχον πυρήνα του συστήματός σας. Στα παρακάτω βήματα, η έκφραση |
Οι χρήστες που χρειάζονται πρόσβαση στον πηγαίο, αυθεντικό πυρήνα του Fedora Core μπορούν να τον βρουν στο πακέτο .src.rpm. Για να δημιουργήσετε ένα αναλυτικό πηγαίο δέντρο από αυτό το αρχείο, ακολουθήστε τα παρακάτω βήματα:
![]() | Μη χτίζετε πακέτα σαν υπερχρήστης (root) |
|---|---|
Η εγκατάσταση και το χτίσιμο πακέτων ως υπερχρήστης είναι γενικώς επικίνδυνη και δεν χρειάζεται ούτε καν στην περίπτωση που χτίζετε τον πυρήνα. Αυτές οι οδηγίες σας επιτρέπουν να εγκαταστήσετε τον πυρήνα ως απλός χρήστης. Πολλοί ιστοχώροι που περιέχουν γενικές πληροφορίες αναφέρονται στο |
Προετοιμάστε ένα περιβάλλον ανάπτυξης πακέτων RPM στον αρχικό σας κατάλογο. Εκτελέστε τις ακόλουθες εντολές:
su -c 'yum install rpmdevtools yum-utils' rpmdev-setuptree
Εισάγετε το συνθηματικό του root όταν αυτό ζητηθεί.
Κάνετε λήψη του αρχείου kernel- . Ενεργοποιήστε όλα τα κατάλληλα αποθετήρια όπως τα Core, Updates, ή Testing, με την παράμετρο <έκδοση>.src.rpm-e:
yumdownloader -e core-source -e updates-source --source kernel
Εισάγετε το συνθηματικό του root όταν αυτό ζητηθεί.
Εγκαταστείστε το αρχείο kernel- χρησιμοποιώντας την εντολή:<έκδοση>.src.rpm
rpm -Uvh kernel-<έκδοση>.src.rpm Η εντολή αυτή γράφει τα περιεχόμενα του RPM στο ${HOME}/rpmbuild/SOURCES και στο ${HOME}/rpmbuild/SPECS, όπου ${HOME} είναι ο αρχικός σας κατάλογος.
![]() | Απαιτούμενος χώρος |
|---|---|
Η διαδικασία χτισίματος του πυρήνα μπορεί να απαιτεί αρκετά gigabytes επιπλέον χώρου στο σύστημα αρχείου σας που περιέχει τον αρχικό σας κατάλογο. |
Προετοιμάστε τις πηγές του πυρήνα χρησιμοποιώντας τις παρακάτω εντολές:
cd ~/rpmbuild/SPECS rpmbuild -bp --target $(uname -m) kernel-2.6.spec
Το δέντρο του πηγαίου κώδικα του πυρήνα βρίσκεται στον κατάλογο ~/rpmbuild/BUILD/kernel-.<έκδοση>/linux-<έκδοση>.<αρχιτεκτονική>
Οι ρυθμίσεις για τους ειδικούς πυρήνες που συμπεριλαμβάνονται στο Fedora Core 6 βρίσκονται στον κατάλογο ~/rpmbuild/BUILD/kernel- . Για παράδειγμα, το αρχείο για τη ρύθμιση του πυρήνα για i686 ονομάζεται <έκδοση>/linux-<έκδοση>.<αρχιτεκτονική>/configs~/rpmbuild/BUILD/kernel-. Εκτελέστε την παρακάτω εντολή για να βάλετε το επιθυμητό αρχείο ρύθμισης στο σωστό σημείο:<έκδοση>/linux-<έκδοση>.<αρχιτεκτονική>/configs/kernel-<έκδοση>-i686.config
cp configs/ <desired-config-file> .config Κάθε πυρήνας παίρνει ένα όνομα που βασίζεται στην έκδοσή του. Το όνομα του πυρήνα είναι εκείνο που επιστρέφει η εντολή uname -r. Το όνομα του πυρήνα ορίζεται από τις τέσσερις πρώτες γραμμές του Makefile του πυρήνα. Το Makefile παράγει ένα όνομα για τον πυρήνα το οποίο είναι διαφορετικό από εκείνο του πυρήνα που εκτελείται. Για να είναι αποδεκτό το όνομα από τον πυρήνα που εκτελείται, ένα άρθρωμα πρέπει να γίνει compile για έναν πυρήνα με το σωστό όνομα. Για να γίνει αυτό πρέπει να επεξεργαστείτε το Makefile του πυρήνα.
Για παράδειγμα, αν η εντολή uname -r επιστρέφει 2.6.17-1.2345_FC6, αλλάξτε τον ορισμό του EXTRAVERSION από αυτό:
EXTRAVERSION = -prep
σε αυτό:
EXTRAVERSION = -1.2345_FC6
Δηλαδή, αντικαταστήσετε τα πάντα από την τελευταία παύλα και μετά.
Εκτελέστε την παρακάτω εντολή:
make oldconfig
Μπορείτε τώρα να συνεχίσετε όπως συνήθως.
![]() | Χτίσιμο εκτελέσιμων RPM πυρήνα |
|---|---|
Συνήθως οι πυρήνες για το Fedora χτίζονται χρησιμοποιώντας το |
Ένα ανεπτυγμένο δέντρο πηγαίου κώδικα δεν είναι απαραίτητο για το χτίσιμο ενός αρθρώματος του πυρήνα, όπως για παράδειγμα ο δικός σας οδηγός μίας συσκευής έναντι του ήδη χρησιμοποιούμενου από τον πυρήνα. Μόνο το πακέτο kernel-devel χρειάζεται για το χτίσιμο ενός εξωτερικού αρθρώματος. Εάν δεν το έχετε επιλέξει κατά τη διάρκεια της εγκατάστασης, χρησιμοποιήστε την εφαρμογή Pirut για να το εγκαταστήσετε, πηγαίνοντας στοΕφαρμογές → Προσθαφαίρεση λογισμικού ή χρησιμοποιήστε την εντολή yum για την εγκατάσταση. Εκτελέστε την παρακάτω εντολή για να εγκαταστήσετε το πακέτο kernel-devel χρησιμοποιώντας το yum.
su -c 'yum install kernel-devel'
Για να δημιουργήσετε για παράδειγμα το άρθρωμα foo.ko, φτιάξτε το ακόλουθο Makefile μέσα στον κατάλογο που περιέχει το αρχείο foo.c:
obj-m := foo.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
Δώστε την εντολή make για να δημιουργηθεί το άρθρωμα foo.ko.