Έχουμε γράψει εκτενέστατα άρθρα για το πως μπορείτε να βελτιστοποιήσετε τον Linux πυρήνα σας. Στον σημερινό οδηγό θα δούμε πως μπορούμε να «ντοπάρουμε» ακόμα περισσότερο τον Linux πυρήνα… νόμιμα…

Το Σύστημα…

Δεν θα επεκταθώ αρκετά σε κάθε βήμα απλά θα σημειώσω εκείνα τα οποία είναι ελαφρώς διαφορετικά σε συνδυασμό όμως με τα βήματα που γράφω στο προηγούμενο άρθρο. Οπότε καλό θα είναι να έχετε στον browser σας αυτό το άρθρο ανοιχτό μαζί με το «10 Απλά βήματα για να μεταγλωττίσετε τον δικό σας πυρήνα» σε δεύτερη καρτέλα.
Το σύστημα στο οποίο δούλεψα είναι Ubuntu 11.10 64bit και η περιγραφή της διαδικασίας θα γίνει σε αυτό μιας και το προηγούμενο άρθρο βασιζόταν πάλι σε Ubuntu, οπότε μπορείτε να το παρακολουθήσετε άνετα. Προφανώς και η διαδικασία γίνεται και σε άλλες διανομές με παρόμοιο τρόπο απλά διαφέρει λίγο στον τρόπο «πακεταρίσματος».

Αυτή την φορά δεν θα χρησιμοποιήσουμε τον πυρήνα που μας παρέχει το Ubuntu αλλά θα κατεβάσουμε ένα ήδη ντοπαρισμένο πυρήνα για να κάνουμε πιο εύκολη την δουλειά μας. Επίσης πέρα από τα πακέτα που εγκαθιστούμε στο Δεύτερο βήμα πρέπει να εγκαταστήσουμε και το πρόγραμμα GiT. Υπάρχει σε όλες τις διανομές οπότε εγκαταστήστε την απο το Κέντρο Λογισμικού της διανομής σας.

Ο πυρήνας που θα χρησιμοποιήσουμε έχει «ντοπαριστεί» και μας έρχεται απο την κοινότητα ZEN-Kernel. Στην αρχική σελίδα μπορεί να φαίνονται «νεκροί» όμως στην πραγματικότητα έχουν μεταφέρει όλη την δουλειά τους σε αποθετήριο Git και απλά έχουν κόψει το πολύ μπλά-μπλά…

Παράλληλα όμως επειδή δεν το χορταίνουμε θα κάνουμε και δικές μας τροποποιήσεις στον πυρήνα για να έχουμε όσο το δυνατόν καλύτερα αποτελέσματα χωρίς όμως να θέτουμε σε κίνδυνο την σταθερότητα του συστήματός μας.

Σηκώνουμε τα μανίκια (μη λερώσουμε και μας κυνηγάει η γυναίκα ) και πάμε να κάνουμε αλχημείες !

Βήμα 1

Ελέγχουμε το το μοντέλο του επεξεργαστή μας….. (γιατί δεν έχετε ανοιχτή αυτή τη σελίδα : «10 Απλά βήματα για να μεταγλωττίσετε τον δικό σας πυρήνα» σε άλλη καρτέλα ? δεν θα το ξαναπώ…. :P )

Βήμα 2

Ανοίγουμε ένα τερματικό και κάνουμε εγκατάσταση τα προαπαιτούμενα εργαλεία.

sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev libqt3-mt-dev git

Βήμα 3

Κάνουμε εγκατάσταση τις εξαρτήσεις του πυρήνα μας, άσχετα αν θα βάλουμε πυρήνα από άλλη πηγή.

sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)

Βήμα 4

Δημιουργούμε τον φάκελο source στον οποίο και θα δουλέψουμε.

mkdir ~/source
cd ~/source

Βήμα 5

Εδώ λοιπόν είναι το σημείο που κατεβάζουμε τον πυρήνα ZEN. Ελπίζω να έχετε καλή σύνδεση γιατί μπορεί να πάρει αρκετή ώρα.

git clone --depth 1 git://zen-kernel.org/kernel/zen-stable.git

Αφού κατέβει, αντιγράφουμε το αρχείο ρυθμίσεων απο τον πυρήνα που ήδη τρέχουμε αυτή τη στιγμή και τον μεταφέρουμε στον ZEN.

cd zen*
cp -vi /boot/config-`uname -r` .config

BONUS : ΜΗΝ τρέξετε την παρακάτω εντολή αν δεν διαβάσετε το Kernel Optimization: Αυτόματη δημιουργία βελτιστοποιημένου πυρήνα !!! Δεν είναι υποχρεωτικό αλλά «τονώνει» ακόμα περισσότερο τον πυρήνα μας!

make localmodconfig

Βήμα 6

Έτοιμοι λοιπόν να πειράξουμε ακόμα περισσότερο τον πυρήνα μας

make xconfig

ΠΡΟΣΟΧΗ τι πειράζουμε εδώ.
Επιλογές που μπορούμε να πειράξουμε (δείτε και το βίντεο στο τέλος):

  • General Setup –> CPU Scheduler –> BFS και Optimise for Size
  • Enable the block layer –> IO Scheduler –> BFQ (αφαιρέστε τον CFQ )
  • Processor Type and features –> Processor Family –> (Εδώ επιλέγετε με βάση το μοντέλο του επεξεργαστή σας)
  • Processor Type and features –> Preemtion Model –> Preemtible Kernel (Low latency kernel)
  • Processor Type and features –> Timer Frequancy –> 1000 Hz
  • Power managment and ACPI options –> CPU Freq scaling –> Default CPU Governor –> Διαλέξτε ανάλογα (Desktop : Performance ενώ για Laptop και Netbook: Conservative)

Αφού τελειώσουμε πατάμε save και κλείνουμε το παράθυρο. Θα δώσουμε κάποιες προαιρετικές παραμέτρους στον πυρήνα μας τις οποίες τις γράφω μόνο για τους «τρελούς» ανάμεσά μας που θέλουν να βελτιστοποιήσουν ακόμα και την μεταγλώττιση!… (έλεος! που πάμε σαν κοινωνία!)

export CONCURRENCY_LEVEL=9
export CFLAGS="-march=native -Os -pipe"
export CXXFLAGS="${CFLAGS}"

Βήμα 7

Σε λίγο τελειώνουμε… μένει μόνο το πακετάρισμα του πυρήνα.

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-turbo kernel-image kernel-headers

Βήμα 8

Ωραία… έχει τελειώσει η μεταγλώττιση και μένει μόνο η εγκατάσταση.

cd ~/source
sudo dpkg -i linux-image("TAB").deb
linux-headers("TAB").deb

Βήμα 9

Ενημερώνουμε και τον GRUB για τις αλλαγές.

sudo update-initramfs -c -k 3.1.4-zen-turbo+
sudo update-grub

Βήμα 10

Έτοιμοι ! Κάνουμε επανεκκίνηση και έπειτα ξανακάνουμε ότι λέει στο πρώτο βήμα για να επιβεβαιώσουμε οτι όλα είναι σωστά. Αν δεν μας αρέσει το αποτέλεσμα μην αντιστοιχείται όπως είπα ο πυρήνας τις διανομής σας δεν έχει χαθεί, είναι εκεί για να τον επιλέξετε και έπειτα να απεγκαταστήσετε αυτόν που «ντοπάρατε»…

Αν προτιμάτε όλα αυτά να τα δείτε στην πράξη τότε απολαύστε το βίντεο εδώ πέρα :