Μεταγλωττιση και εγκατασταση την νεοτερη εκδοση πυρηνα (Ubuntu)

vagrale13 | Σάβ, 04/09/2011 - 23:18 | 5'

Εδω θα δουμε τον τροπο για το πως να κανουμε μεταγλωττιση και εγκατασταση την νεοτερη εκδοση πυρηνα, δηλαδη οτι πιο νεο υπαρχει. Φυσικα, αυτο δεν σημαινει οτι θα ειναι πιο σταθερος απο την εκδοση του πυρηνα που υπαρχει στα αποθετηρια, γιατι δεν ειναι αρκετα δοκιμασμενος!

Πρωτα απ'ολα, πριν συνεχισουμε παρακατω,
θα πρεπει να γνωριζουμε οτι υπαρχει κινδυνος καταστροφης του συστηματος μας.
Οποτε συνεχιζουμε με δικο μας ρισκο!



* Τι θα χρειαστουμε?

1) Να εχουμε συνδεση στο διδυκτυο (internet), κατα προτιμηση με καλωδιο (ethernet)
2) Ελευθερο χωρο στον προσωπικο μας φακελο (home) περιπου 5Gb
3) Καμποση ωρα ελευθερη, για ολη την διαδικασια, περιπου 2-4 ωρες, αναλογως με τις δυνατοτητες του Η/Υ μας.



* Αν ειμαστε συμφωνοι με τα παραπανω, συνεχιζουμε

Πρωτα κανουμε εγκατασταση τα πακετα θα χρειαστουμε

sudo apt-get install git-core kernel-package fakeroot build-essential ncurses-dev

Μετα ειμαστε ετοιμοι να συνεχιζουμε,
οποτε εκτελουμε

cd && git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

περιμενουμε καμποσα λεπτα να κατεβασει των κωδικα, και μετα εκτελουμε

cd linux-2.6

Μετα θα χρειαστει να αντιγραψουμε το αρχειο ρυθμισεων πυρηνα, απο το υπαρχον του συστημα μας, οποτε εκτελουμε

cp /boot/config-`uname -r` .config

Μετα εκτελουμε

make oldconfig

Οπου θα μας κανει διαφορες ερωτησεις, αν δεν γνωριζουμε τι πρεπει να απαντησουμε, το καλυτερο και πιο ασφαλες, ειναι απλα να παταμε Enter
ή αν θελουμε, μπορει να γινει αυτοματα, και να εκτελεσουμε

yes '' | make oldconfig

αν θελουμε να κανουμε καποια αλλαγη, εκτελουμε

make menuconfig

και κανουμε τις αλλαγες που θελουμε!
μετα θα χρειαστει να κανουμε επεξεργασια του script, οποτε εκτελουμε

sed -rie 's/echo "\+"/#echo "\+"/' scripts/setlocalversion

μετα καθαρισουμε το φακελο του κωδικα εκτελωντας

make-kpkg clean

και για τη δημιουργεια των πακετων .deb εκτελουμε (εδω θα παρει αρκετη ωρα)

CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd --append-to-version=-10 kernel_image kernel_headers

με την παραπανω εντολη θα δημιουργηθουμε πακετα με την ονομασια
π.χ. 2.6.39-rc2-10-10.00.Custom.deb
οποτε αν θελουμε αλλαζουμε τον αριθμο 10 στην παραμετρο --append-to-version=-10
με το αντιστοιχο που θελουμε.
Αν θελουμε να αλλαξουμε στην ονομασια το 10.00.Custom
προσθετουμε στην εντολη την παραμετρο --revision=ΟΤΙ_ΘΕΛΟΥΜΕ

Οταν τελιεωσουμε, πρεπει να κανουμε εγκατασταση τα πακετα .deb που θα εχουν δημιουργηθει,
οποτε εκτελουμε

cd
sudo dpkg -i linux-*.deb


Και τελος, θα πρεπει να κανουμε τον πυρηνα μας, να μπορει να κανει boot, οποτε εκτελουμε

cd /lib/modules

και μετα θα χρειαστουμε το αποτελεσμα απο

ls

οπου θα ειναι καπως ετσι

2.6.32-30-generic   2.6.32-31-generic   2.6.39-rc2-10

οποτε εκτελουμε

sudo update-initramfs -ck ονομα_module_για_το_νεο_πυρηνα

δηλαδη συμφωνα με το παραδειγμα μας, θα πρεπει να εκτελεσουμε

sudo update-initramfs -ck 2.6.39-rc2-10

και τελος εκτελουμε

sudo update-grub

http://img26.imageshack.us/img26/2236/screenshotyxz.png

Μετα, το μονο που εμεινε, ειναι να κανουμε επανεκκινηση, και να χαρουμε, τη νεοτερη εκδοση πυρηνα! :)


* Επισης Μπορουμε:

a) Αν για καποιο λογο, θελουμε να αφαιρεσουμε τον πυρηνα μας, μπαινουμε στο συστημα μας με διαφορετικη εκδοση πυρηνα, και απο τον synaptic, κανουμε απεγκατασταση τα δυο πακετα
π.χ. linux-image-2.6.39-rc2-10 και linux-headers-2.6.39-rc2-10

b) Να βρουμε ετοιμα πακετα .deb νεοτερης εκδοσης πυρηνα εδω http://kernel.ubuntu.com/~kernel-ppa/mainline/

c) Πηγη του κακου : https://wiki.ubuntu.com/KernelTeam/GitKernelBuild

Δώσε αστέρια!