Next Previous Contents

4. Κάνοντας compile στον πυρήνα

4.1 Καθάρισμα και εξαρτώμενα αρχεία

Όταν τελειώσει η δουλειά του script ρυθμίσεων, σας λέει επίσης να make dep ( = δημιουργείστε τις εξαρτήσεις) και (πιθανά) clean ( = καθαρίστε). Επομένως, δώστε make dep. Αυτό θα επιβεβαιώσει πως όλα τα εξαρτώμενα αρχεία, όπως πχ τα include, βρίσκονται στη θέση τους. Αυτή η δουλειά δεν παίρνει πολύ χρόνο, εκτός αν ο Η/Υ σας είναι αρκετά αργός. Γιά παλιότερες εκδόσεις του πυρήνα, όταν τελειώσετε πρέπει να δώσετε και make clean. Αυτό σβήνει όλα τα object αρχεία και μερικά άλλα πράγματα, που οι παλιότερες εκδόσεις αφήνουν πίσω τους. Σε οποιαδήποτε περίπτωση, μην ξεχνάτε αυτό το βήμα πριν προσπαθήσετε να κάνετε compile έναν πυρήνα.

4.2 Διάρκεια του compile

Μετά το depend και το clean, τώρα μπορείτε να δώσετε make bzImage, ή make bzdisk. (Αυτό είναι το μέρος της εργασίας που παίρνει τον περισσότερο χρόνο.) Το make bzImage κάνει compile τον πυρήνα, και αφήνει ένα αρχείο στο directory arch/i386/boot, με το όνομα (μεταξύ άλλων) bzImage. Αυτός είναι ο νέος πυρήνας, σε συμπιεσμένη μορφή. Το make bzdisk κάνει τα ίδια πράγματα, αλλά επίσης γράφει το καινούργιο bzImage σε μιά δισκέτα, την οποία υποθέτω πως έχετε τοποθετήσει στη μονάδα "A:". Το bzdisk είναι αρκετά ευκολοχείριστο, γιά δοκιμές νέων πυρήνων. Αν τα κάνει θάλασσα (ή απλά δεν δουλέψει σωστά), απλά βγάλτε τη δισκέτα και επανεκκινήστε με τον παλιό πυρήνα σας. Μπορεί επίσης ν' αποτελέσει έναν εύκολο τρόπο να bootάρετε, αν από λάθος σβήσετε τον παλιό σας πυρήνα (ή κάνετε κάτι εξ ίσου φοβερό). Μπορείτε επίσης να το χρησιμοποιήσετε γιά νέες εγκαταστάσεις, όταν απλά μεταφέρετε τα περιεχόμενα ενός σκληρού σ' έναν άλλον. ("Ολ' αυτά και περισσότερα ακόμη! Πόσα θα πληρώνατε ΤΩΡΑ γι' αυτά;")

Όλοι οι (ακόμη και με ορισμένη παραδοχή) πρόσφατοι πυρήνες είναι συμπιεσμένοι, εκ ού και το bz μπροστά στα ονόματα. Ενας συμπιεσμένος πυρήνας αυτόματα αποσυμπιέζεται, όταν εκτελείται.

Σε παλιότερους πυρήνες, δεν υπάρχει επιλογή να φτιάξετε bzImage. Το όνομα ήταν απλά zImage. Προς το παρόν, η επιλογή γιά ασυμπίεστο πυρήνα εξακολουθεί να υπάρχει, ωστόσο, με το μέγεθος που έχουν οι νέοι πυρήνες, είναι σχεδόν υποχρεωτικό να τον φτιάξετε συμπιεσμένο.

4.3 Άλλα αρχεία τύπου "make"

Το make mrproper κάνει πιο εκτεταμένο clean, το οποίο μερικές φορές είναι απαραίτητο. Μπορεί να θέλετε να το κάνετε μετά από κάθε μπάλωμα (patch). Το make mrproper θα σβήσει και το αρχείο των ρυθμίσεών σας, άρα ίσως πρέπει να κάνετε ένα backup αντίγραφό του (.config), αν δείτε πως κάτι τέτοιο σας είναι χρήσιμο.

Το make oldconfig θα προσπαθήσει να ρυθμίσει τον πυρήνα από ένα παλιό αρχείο ρυθμίσεων. Θα διατρέξει τη διαδικασία make config. Αν δεν έχετε ξανακάνει compile κάποιον πυρήνα, ή δεν έχετε κάποιο παλιό αρχείο ρυθμίσεων, τότε πιθανότατα δεν πρέπει να κάνετε κάτι τέτοιο, καθώς πιθανότατα θα θελήσετε ν' αλλάξετε την default ρύθμιση.

Διαβάστε την ενότητα γιά τα modules, γιά περιγραφή του make modules.

4.4 Εγκατάσταση του πυρήνα

Αφού αποκτήσετε έναν νέο πυρήνα, που φαίνεται να δουλεύει όπως σας αρέσει, είναι ώρα να τον εγκαταστήσετε. Οι περισσότεροι χρήστες χρησιμοποιούν το LILO (Linux Loader) γιά τη δουλειά αυτή. Το make bzlilo θα εγκαταστήσει τον πυρήνα, θα τρέξει το LILO, θα σας ετοιμάσει να bootάρετε, ΑΛΛΑ ΜΟΝΟΝ εάν το lilo έχει ρυθμιστεί στον Η/Υ σας με τον ακόλουθο τρόπο : ο πυρήνας είναι ο /vmlinuz, το lilo βρίσκεται στο /sbin, και το αρχείο ρυθμίσεων του lilo (/etc/lilo.conf) συμφωνεί με όλα αυτά.

Διαφορετικά, πρέπει να χρησιμοποιήσετε το LILO κατευθείαν. Είναι σχετικά εύκολο πρόγραμμα να το εγκαταστήσετε και να δουλέψετε μ' αυτό, αλλά έχει μιά τάση να μπερδεύει τους ανθρώπους με το αρχείο ρυθμίσεών του. Κοιτάξτε αυτό το αρχείο ρυθμίσεων (/etc/lilo/config γιά παλιότερες εκδόσεις του Linux, /etc/lilo.conf στις νέες εκδόσεις), και δείτε πώς είναι γραμμένο. Πρέπει να μοιάζει κάπως έτσι :

    image = /vmlinuz
    label = Linux
    root = /dev/hda1
    ...

Η παράμετρος image = δείχνει τον εγκατεστημένο πυρήνα, και οι περισσότεροι χρήστες γράφουν /vmlinuz. Η label ( = ετικέτα) χρησιμοποιείται από το lilo γιά να καταλάβει με ποιόν πυρήνα ή με ποιό ΛΣ θα bootάρει, και το root είναι το αντίστοιχο του directory / γιά το συγκεκριμένο ΛΣ. Πάρτε ένα backup του παλιού σας πυρήνα και αντιγράψτε στο σωστό μέρος το bzImage που μόλις φτιάξατε. (Πρέπει να δώσετε cp bzImage /vmlinuz, αν χρησιμοποιείτε τον /vmlinuz). Μετά, ξανατρέξτε το lilo. Σε νεώτερες εκδόσεις απλά δίνετε lilo, αλλά σε παλιότερες πρέπει να κάνετε /etc/lilo/install (εγκατάσταση), ή ακόμη και /etc/lilo/lilo -C /etc/lilo/config (ρύθμιση).

Αν θέλετε να μάθετε περισσότερα γιά τις ρυθμίσεις του LILO, ή δεν έχετε το LILO, βρείτε την πιο πρόσφατη έκδοσή του από τον αγαπημένο σας ftp server, και ακολουθείστε τις οδηγίες της.

Γιά να bootάρετε από τον σκληρό δίσκο μ' έναν από τους παλιούς πυρήνες σας (πράγμα που είναι ένας τρόπος να διασωθείτε, αν τα κάνετε θάλασσα με τον νέο πυρήνα), αντιγράψτε στο τέλος του αρχείου τις γραμμές κάτω από (και μαζί με) το image = xxx που βρίσκονται στο αρχείο ρυθμίσεων του LILO, και αλλάξτε το image = xxx σε image = yyy, όπου yyy είναι το πλήρες όνομα path του αρχείου, στο οποίο κάνατε backup τον παλιό σας πυρήνα. Μετά, αλλάξτε την label = zzz σε label = linux-backup και ξανατρέξτε το lilo. Μπορεί να χρειαστεί να βάλετε μιά γραμμή στο αρχείο ρυθμίσεων, που να λέει delay=x, όπου x είναι μιά τιμή σε δέκατα του δευτερολέπτου, που λέει στο LILO πόσο να περιμένει πριν το bootάρισμα, ώστε να μπορείτε να το διακόψετε (πχ πατώντας το πλήκτρο shift), και να δώσετε την label (ετικέτα) του backup αρχείου (σε περίπτωση που συμβούν δυσάρεστα πράγματα).


Next Previous Contents