Κεφάλαιο 11ο: Kernel Compile (The debian way)
\\BEGIN
Ο πυρήνας μπορεί να βρεθεί στην διεύθυνση www.kernel.org. Για τις απαιτήσεις της καταχώρησης υποθέτουμε πως έχουμε επιλέξει τον πυρήνα 2.6.27.8 (που είναι και ο τελευταίος ευσταθής την ώρα που γράφεται η καταχώρηση). Θα πρέπει να εργαζόμαστε ως root οπότε η δέουσα προσοχή είναι απαραίτητη.
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.8.tar.bz2
Το επόμενο βήμα είναι η αποσυμπίεση του πυρήνα και η τοποθέτησή του στον κατάλογο που θα εργαστούμε.
cp linux-2.6.27.8.tar.bz2 /usr/src/ tar xvjf linux-2.6.27.8.tar.bz2 ln -s linux-2.6.27.8 linux cd linux/
Τα repositories του debian παρέχουν και αυτά κάποιους πυρήνες
mr@instron:/usr/src$ apt-cache search linux-source linux-patch-debian-2.6.26 - Debian patches to version 2.6.26 of the Linux kernel linux-source-2.6.26 - Linux kernel source for version 2.6.26 with Debian patches linux-tree-2.6.26 - Linux kernel source tree for building Debian kernel images
μπορούνε να εγκαταστήσουμε το linux-source-2.6.26. Το μειονέκτημα που έχει αυτή η προσέγγιση είναι ότι συνήθως δεν έχουμε τον τελευταίο πυρήνα αλλά μία προηγούμενη έκδοσή του.
Τώρα είμαστε έτοιμοι να ξεκινήσουμε. Αρχικά δίνουμε:
make clean && make mrproper
η εντολή αυτή διαγράφει τα objects που μπορεί να έχουν δημιουργηθεί και διαγράφει επίσης όλα τα αρχεία παραμετροποίησης (configuration files). Έπειτα από αυτό το βήμα αρχίζουμε την παραμετροποίηση. Είναι μία καλή πρακτική να χρησιμοποιούμε τις παλιές παραμέτρους του πυρήνα ώστε να έχουμε ένα αρχικό σημείο αναφοράς. Για να χρησιμοποιήσουμε το παλιό αρχείο παραμετροποίησης δίνουμε την εντολή
cp /boot/config-'uname -r' ./.config
η οποία λέει να πάρει το αρχείο παραμετροποίησης του τρέχοντα πυρήνα από τον κατάλογο /boot και να το αντιγράψει στον κατάλογο που εργαζόμαστε τώρα με το όνομα .config . Στη συνέχεια χτίζουμε το μενού για την παραμετροποίηση:
make xconfig
περιμένουμε (αν έχουμε παλιό υπολογιστή) και αρχίζουμε να επιλέγουμε τις επιλογές. Γενικότερα αυτό το σημείο θέλει κάποιο ψάξιμο αλλά παρέχετε κάποια μικρή βοήθεια μέσα στο παράθυρο της εφαρμογής. Μόλις κάνουμε τις αλλαγές που επιθυμούμε επιλέγουμε την αποθήκευση του αρχείου και είμαστε έτοιμοι να μεταγλωττίσουμε τον πυρήνα. Δίνουμε:
make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-ΕΔΩ-ΟΤΙ-ΘΕΛΟΥΜΕ kernel_image kernel_headers
στο -ΕΔΩ-ΟΤΙ-ΘΕΛΟΥΜΕ, το ότι θέλουμε σημαίνει alphanumeric χαρακτήρες, παύλες (-) και θα πρέπει πάντα να αρχίζει η επιλογής μας με -. Έπειτα περιμένουμε (είτε έχουμε γρήγορο είτε πιο παλιό μηχάνημα) ...
Μόλις τελειώσει η μεταγλώττιση θα έχουν δημιουργηθεί δύο πακέτα .deb στον κατάλογο /usr/src/. Το πρώτο είναι ο νέος πυρήνας και στο άλλο είναι τα headers του πυρήνα που είναι απαραίτητα εάν θέλουμε να μεταγλωττίσουμε κάποιο module αργότερα. Τα πακέτα μπορούμε να τα εγκαταστήσουμε στο σύστημά μας με τον πατροπαράδοτο τρόπο:
dpkg -i linux-image-2.6.27.8-ΕΔΩ-ΟΤΙ-ΘΕΛΟΥΜΕ_2.6.27.8-ΕΔΩ-ΟΤΙ-ΘΕΛΟΥΜΕ-10.00.Custom_i386.deb dpkg -i linux-headers-2.6.27.8-ΕΔΩ-ΟΤΙ-ΘΕΛΟΥΜΕ_2.6.27.8-ΕΔΩ-ΟΤΙ-ΘΕΛΟΥΜΕ-10.00.Custom_i386.deb
Με τον τρόπο αυτό διασφαλίζουμε και την σωστή ενημέρωση του grub ώστε ο πυρήνας να εμφανιστεί ως επιλογή στο μενού όταν φορτώνει ο υπολογιστής. Εάν για κάποιο λόγο θέλουμε να διαγράψουμε τους πυρήνες μπορούν να το κάνουμε από μέσω του dpkg, του apt-get ή του aptitude (για το τελευταίο δεν είμαι σίγουρος, τα 2 πρώτα δουλεύουν κανονικά). Καλό θα ήταν να δώσουμε purge και όχι απλό remove.
\\END
Καλή μεταγλώττιση ;)
ΥΓ - επειδή η μετάφραση κάποιων εννοιών στα ελληνικά μου είναι δύσκολη (δεν τα έχω δει στα ελληνικά ποτέ :Ρ) μερικές έννοιες έχουν μείνει αμετάφραστες και άλλες που έχουν μεταφραστεί ίσως είναι λάθος οπότε όποιος μπορεί να βοηθήσει σε αυτή την κατεύθυνση ας το κάνει (k thnx).
Active forum topics
- Wake up from suspend mode failed
- Οργάνωση στις μεταφράσεις των ελληνικών στο Debian.
- απορια σχετικα με nvidia440
- πρόβλημα εγκατάστασης nvidia driver GTS250.
- kernel 2.6.38 για squeeze
- Gnome3
- 2 μήνες σπασμένο το upgrade σε unstable [SOLVED]
- Οι χρήστες του Internet Explorer είναι χαζοί;
- Debian Lenny + Nvidia drivers
- εγκατασταση usb cosmote
New forum topics
Νέοι χρήστες
- kountp
- Adonthegreat
- giorgos_m
- prodromos
- airmaik
Οι πιο πρόσφατες καταχωρίσεις blog.
- Fosscomm 2012
- armhf officially into Debian!
- back from UDS/Linaro Connect...
- FTF is over, Linaro Interview
- straight from FTF 2011, San Antonio...
- Όσο μεγαλώνεις μαθαίνεις...
- Emdebian 2011 Sprint report, Genesi Europe store goes online...
- Θεσσαλονίκη - open source ERP workshop
- Χρήσιμο URL για Flash Cards και Linux filesystems
- Cambridge, UK, ARM HQ for Emdebian 2011 Sprint