8.6. Χτίσιμο ενός καινούριου πυρήνα

Γιατί θα ήθελε κάποιος να φτιάξει έναν καινούριο πυρήνα; Συνήθως δεν είναι απαραίτητο καθώς ο προκαθορισμένος πυρήνας που έρχεται με το Debian μπορεί να χειριστεί τις περισσότερες διαμορφώσεις συστημάτων. Επιπλέον το Debian προσφέρει έναν αριθμό εναλλακτικών πυρήνων. Ίσως να θέλετε λοιπόν να ελέγξετε πρώτα αν υπάρχει κάποιο εναλλακτικό πακέτο εικόνας ενός πυρήνα που να ταιριάζει καλλίτερα στο υλικό του συστήματός σας. Παρόλα αυτά ίως να είναι χρήσιμο να φτιάξετε έναν καινούριο πυρήνα για να:

8.6.1. Διαχείρισης της Εικόνας του Πυρήνα

Μην φοβηθείτε να προσπαθήσετε να χτίσετε τον πυρήνα. Είναι διασκεδαστικό και προσοδοφόρο!

Για να παράγετε έναν πυρήνα σύμφωνα με τον τρόπο του Debian, χρειάζεστε μερικά πακέτα: fakeroot, kernel-package, linux-source-2.6 και μερικά άλλα που πιθανόν είναι ήδη εγκατεστημένα (δείτε το /usr/share/doc/kernel-package/README.gz για μια πλήρη λίστα).

Αυτή η μέθοδος θα φτιάξει ένα αρχείο .deb από τον κώδικα του πυρήνα και , αν έχετε μη-συνηθισμένα modules, θα φτιάξει ένα συγχρονισμένο .deb αρχείο και γι΄αυτά. Είναι ένας καλλίτερος τρόπος για να διαχειρίζεστε εικόνες του πυρήνα. Στον κατάλογο /boot θα τοποθετηθούν ο πυρήνας. το αρχείο System.map και ένα αρχείο καταγραφής του αρχείου config της δημιουργίας τους.

Σημειώστε ότι δεν είσαστε υποχρεωμένοι να παράγετε τον πυρήνα σας σύμφωνα με την «μέθοδο του Debian», αλλά πιστεύουμε ότι η χρήση του συστήματος πακέτων για τη διαχείριση του πυρήνα σας είναι στην ουσία ασφαλέστερη και ευκολότερη. Στην πραγματικότητα μπορείτε να πάρετε τον κώδικα του πυρήνα από τον ίδιο τον Linus και όχι από το πακέτο linux-source-2.6 και παρ' όλα αυτά να χρησιμοποιήσετε και πάλι την μέθοδο παραγωγής του πυρήνα με το πακέτο kernel-package.

Σημειώστε ότι θα βρείτε πλήρη τεκμηρίωση για την χρήση του kernel-package στον κατάλογο /usr/share/doc/kernel-package. Αυτή η ενότητα είναι απλά μια σύντομη παρουσίαση.

Στο εξής θεωρούμε ότι έχετε ελεύθερη πρόσβαση και έλεγχο στο μηχάνημά σας και θα αποσυμπιέσετε τον κώδικα του πυρήνα κάπου στον προσωπικό σας κατάλογο[18]. Υποθέτουμε ακόμα ότι η έκδοση του πυρήνα σας είναι 3.16. Βεβαιωθείτε ότι είσαστε στον κατάλογο όπου θέλετε να αποσυμπιέσετε τον κώδικα του πυρήνα, και κάντε το με την εντολή tar xf /usr/src/linux-source-3.16.tar.xz και πηγαίνετε στον κατάλογο linux-source-3.16 που θα έχει δημιουργηθεί.

Τώρα μπορείτε να διαμορφώσετε τον πυρήνα σας. Εκτελέστε την εντολή make xconfig αν έχετε ήδη εγκαταστήσει, ρυθμίσει και τρέξει το περιβάλλον Χ11 ή διαφορετικά την make menuconfig (θα πρέπει να έχετε εγκαταστήσει το πακέτο libncurses5-dev). Αφιερώστε χρόνο στο να διαβάσετε την επιτόπου βοήθεια και διαλέξτε με προσοχή. Αν έχετε αμφιβολίες είναι συνήθως καλλίτερο να περιλαμβάνετε τους οδηγούς των συσκευών για τους οποίους (το λογισμικό που χειρίζεται τις περιφερειακές συσκευές όπως κάρτες Ethernet, ελεγκτές SCSI κτλ). για τους οποίους δεν είστε βέβαιοι. Προσέξτε: άλλες επιλογές που δεν σχετίζονται με ένα συγκεκριμένο υλικό θα πρέπει να αφήνονται στις προεπιλεγμένες τιμές τους αν δεν τις καταλαβαίνετε επαρκώς. Μην ξεχάσετε να επιλέξετε «Kernel module loader» στο «Loadable module support» (δεν είναι προεπιλεγμένο). Αν δεν το κάνετε η εγκατάσταση του Debian θα αντιμετωπίσει προβλήματα.

Καθαρίστε το δέντρο με τον πηγαίο κώδικα και επανρυθμίστε τις παραμέτρους του kernel-package. Για να το κάνετε αυτό εκτελέστε make-kpkg clean.

Τώρα χτίστε τον πυρήνα: fakeroot make-kpkg --initrd --revision=1.0.custom kernel_image. Ο αριθμός έκδοσης «1.0»μπορεί να αλλάξει κατά τη βούλησή σας. Είναι απλά ένας αριθμός έκδοσης που μπορείτε να χρησιμοποιείτε για να καταγράφετε τους πυρήνες που φτιάχνετε. Αντίστοιχα, μπορείτε να βάλετε οποιαδήποτε λέξη στη θέση του «custom» (πχ. το όνομα του μηχανήματός σας). Η μεταγλώττιση του πυρήνα μπορεί να διαρκέσει αρκετή ώρα, ανάλογα με την ισχύ του μηχανήματός σας.

Όταν η μεταγλώττιση έχει ολοκληρωθεί, μπορείτε να εγκαταστήσετε τον προσαρμοσμένο από σας πυρήνα όπως ένα οποιοδήποτε πακέτο.Σαν χρήστης root τρέξτε dpkg -i ../linux-image-3.16-subarchitecture_1.0.custom_armhf.deb. Το κομμάτι subarchitecture είναι μια προαιρετική υπο-αρχιτεκτονική που εξαρτάται από τις επιλογές που έχετε κάνει για τον πυρήνα. Η εντολή dpkg -i θα εγκαταστήσει τον πυρήνα μαζί με κάποια άλλα χρήσιμα αρχεία. Για παράδειγμα, εγκαθίσταται κανονικά το αρχείο System.map (χρήσιμο για την αποσφαλμάτωση προβλημάτων του πυρήνα) όπως και το /boot/config-3.16 που περιέχει το σύνολο των ρυθμίσεών σας. Το καινούριο πακέτο σας του πυρήνα σας είναι επίσης αρκετά έξυπνο ώστε να ενημερώσει αυτόματα τον φορτωτή εκκίνησής σας να χρησιμοποιήσει τον καινούριο πυρήνα. Αν έχετε δημιουργήσει ένα πακέτο για τα αρθρώματα θα πρέπει επίσης να εγκαταστήσετε κι αυτό το πακέτο.

Είναι στιγμή να επανεκκινήσετε το σύστημα: διαβάστε προσεκτικά οποιοδήποτε προειδοποιητικό μήνυμα πιθανόν παρουσιάστηκε στο προηγούμενο βήμα και μετά εκτελέστε shutdown -r now.

Για περισσότερες πληροφορίες για τους πυρήνες του Debian και το χτίσιμό τους, δείτε το Debian Linux Kernel Handbook. Για περισσότερες πληροφορίες για το πακέτο kernel-package,διαβάστε την εξαιρετική τεκμηρίωση στο /usr/share/doc/kernel-package.



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