Κυκλοφόρησε ο πυρήνας 3.16 - Μεταγλώττιση και εγκατάσταση στο Debian GNU/Linux


Ο Πυρήνας είναι ο πυρήνας οποιουδήποτε λειτουργικού συστήματος. Η κύρια λειτουργία του πυρήνα είναι να ενεργεί ως διαμεσολαβητής μεταξύ Εφαρμογής – CPU, Εφαρμογής – Μνήμης και Εφαρμογής – Συσκευών (I/O). Λειτουργεί ως Διαχείριση Μνήμης, Διαχείριση Συσκευών και παρακολουθεί κλήσεις συστήματος εκτός από την εκτέλεση άλλων εργασιών.

Για το Linux, ο πυρήνας είναι η καρδιά του. Ο πυρήνας Linux κυκλοφορεί υπό την άδεια GNU General Public License. Ο Linus Torvalds ανέπτυξε τον πυρήνα Linux το έτος 1991 και ήρθε με την αρχική έκδοση πυρήνα 0.01. Στις 3 Αυγούστου 2014 (φέτος) κυκλοφόρησε ο Kernel 3.16. Σε αυτά τα 22 χρόνια, ο πυρήνας του Linux έχει γνωρίσει μεγάλη ανάπτυξη. Τώρα υπάρχουν χιλιάδες εταιρείες, εκατομμύρια ανεξάρτητοι προγραμματιστές που συνεισφέρουν στον πυρήνα του Linux.

Μια κατά προσέγγιση εκτίμηση των μεγάλων επωνυμιών και της συμβολής τους στον τρέχοντα πυρήνα Linux που αναμένεται να έχει 17 εκατομμύρια γραμμές κώδικα σύμφωνα με το Linux Foundation, Linux Kernel Development Report.

  1. RedHat – 10,2%
  2. Intel – 8,8%
  3. Texas Instruments – 4,1%
  4. Linaro – 4,1%
  5. SUSE – 3,5%
  6. IBM – 3,1%
  7. Samsung – 2,6%
  8. Google – 2,4%
  9. Vision Engraving Systems – 2,3%
  10. Wolfson Microelectronics – 1,6%
  11. Oracle – 1,3%
  12. Broadcom – 1,3%
  13. Nvidia – 1,3%
  14. Ελεύθερη κλίμακα – 1,2%
  15. Τεχνολογία Ingics – 1,2%
  16. Cisco – 0,9%
  17. Linux Foundation – 0,9%
  18. AMD – 0,9%
  19. Ακαδημαϊκοί – 0,9%
  20. NetAPP – 0,8%
  21. Fujitsu – 0,7%
  22. παράλληλες – 0,7%
  23. ARM – 0,7%

Το εβδομήντα τοις εκατό της ανάπτυξης του πυρήνα γίνεται από προγραμματιστές, οι οποίοι εργάζονται σε εταιρείες και πληρώνονται για αυτό, ακούγεται ενδιαφέρον;

Το Linux Kernel 3.16 κυκλοφορεί για μεμονωμένους καθώς και για εταιρείες στο περιβάλλον παραγωγής, οι οποίοι θα ενημερώνουν τον πυρήνα τους για διάφορους λόγους, μερικοί από τους οποίους περιλαμβάνουν.

  1. Ενημερωμένες εκδόσεις κώδικα ασφαλείας
  2. Ενίσχυση σταθερότητας
  3. Ενημερωμένα προγράμματα οδήγησης – Καλύτερη υποστήριξη συσκευών
  4. Βελτίωση ταχύτητας επεξεργασίας
  5. Τελευταίες λειτουργίες κ.λπ

Αυτό το άρθρο στοχεύει στην ενημέρωση του πυρήνα του Debian, του τρόπου Debian, που σημαίνει λιγότερη χειρωνακτική εργασία, λιγότερους κινδύνους αλλά με τελειότητα. Θα ενημερώσουμε επίσης τον πυρήνα του Ubuntu στο επόμενο μέρος αυτού του άρθρου.

Βήμα 1: Λήψη πυρήνα 3.16

Πριν προχωρήσουμε, πρέπει να γνωρίζουμε για τον τρέχοντα πυρήνα μας, που είναι εγκατεστημένος.

avi@tecmint:~$ uname -mrns 

Linux tecmint 3.14-1-amd64 x86_64

Σχετικά με τις επιλογές:

  1. -s : Εκτύπωση λειτουργικού συστήματος (‘Linux’, Εδώ).
  2. -n : Εκτύπωση ονόματος κεντρικού υπολογιστή συστήματος ('tecmint', Εδώ).
  3. -r : Εκτύπωση έκδοσης πυρήνα (‘tecmint 3.14-1-amd64’, Εδώ).
  4. -m : Εκτύπωση σετ οδηγιών υλικού ('x86_64', Εδώ).

Κατεβάστε τον πιο πρόσφατο σταθερό πυρήνα από τον παρακάτω σύνδεσμο. Μην μπερδεύεστε με τον σύνδεσμο λήψης ενημερώσεων κώδικα εκεί. Κατεβάστε αυτό που δηλώνει ξεκάθαρα – «ΤΕΛΕΥΤΑΙΟΣ ΣΤΑΘΡΟΣ ΠΥΡΗΤΗΣ ».

  1. https://www.kernel.org/

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το wget για να κάνετε λήψη του πυρήνα που είναι πιο βολικό.

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz

Βήμα 2: Επαληθεύστε την υπογραφή του πυρήνα 3.16

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

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.sign

Η επαλήθευση της υπογραφής πρέπει να γίνει σε ασυμπίεστο αρχείο. Αυτό απαιτεί μία υπογραφή έναντι διαφόρων μορφών συμπίεσης, π.χ., .gz, .bz2, .xz.

Στη συνέχεια, αποσυμπιέστε το Linux Kernel Image.

avi@tecmint:~/Downloads$ unxz linux-3.16.tar.xz

Επαληθεύστε το έναντι της υπογραφής.

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

Σημείωση: Εάν η παραπάνω εντολή εμφανίσει gpg: Δεν είναι δυνατός ο έλεγχος της υπογραφής: το δημόσιο κλειδί δεν βρέθηκε σφάλμα. Αυτό σημαίνει ότι πρέπει να κατεβάσουμε το Δημόσιο κλειδί με μη αυτόματο τρόπο από τον διακομιστή PGP.

avi@tecmint:~/Downloads$ gpg --recv-keys  00411886

Μετά τη λήψη του κλειδιού, επαληθεύστε ξανά το κλειδί.

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

Έχετε παρατηρήσει δύο πράγματα σχετικά με την επαλήθευση κλειδιού gpg.

  1. gpg: Καλή υπογραφή από το "Linus Torvalds <[email >".
  2. Δακτυλικό αποτύπωμα κύριου κλειδιού: ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886 .

Δεν υπάρχει τίποτα ανησυχητικό για το δακτυλικό αποτύπωμα κλειδιού, είμαστε σίγουροι τώρα ότι το αρχείο είναι εντάξει και υπογεγραμμένο. Πάμε μπροστά!

Βήμα 3: Εγκατάσταση απαιτούμενων πακέτων

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

Εγκαταστήστε το libcurse5-dev, το fakeroot και το kernel-package.

avi@tecmint:~/Downloads$ sudo apt-get install libncurses5-dev
avi@tecmint:~/Downloads$ sudo apt-get install fakeroot
avi@tecmint:~/Downloads$ sudo apt-get install kernel-package

Βήμα 4: Δημιουργία πυρήνα 3.16

Μετά την επιτυχή εγκατάσταση των παραπάνω πακέτων, είμαστε έτοιμοι να δημιουργήσουμε τον πυρήνα. Μεταβείτε στην εξαγόμενη εικόνα πυρήνα Linux (εξαγάγαμε παραπάνω, κατά την επαλήθευση της υπογραφής).

avi@tecmint:~/Downloads$ cd linux-3.16/

Τώρα είναι σημαντικό να αντιγράψετε την τρέχουσα διαμόρφωση του πυρήνα για να παρουσιάσετε τον κατάλογο εργασίας ως χρήστη root.

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

Αντιγράφει το /boot/config-'uname -r' για να παρουσιάσει τον κατάλογο εργασίας "/home/avi/Downloads/linux-3.16 " και τον αποθηκεύει ως ".config'.

Εδώ το "uname -r" θα αντικατασταθεί αυτόματα και θα υποβληθεί σε επεξεργασία με την τρέχουσα εγκατεστημένη έκδοση του πυρήνα.

Δεδομένου ότι ένα αρχείο κουκκίδων δεν μπορεί να εμφανιστεί με τον κανονικό τρόπο, πρέπει να χρησιμοποιήσετε την επιλογή "-a" με ls για να το δείτε στον τρέχοντα κατάλογο εργασίας σας".

ls -al

Υπάρχουν τρεις τρόποι για να δημιουργήσετε έναν πυρήνα Linux.

  1. make oldconfig : Είναι ένας διαδραστικός τρόπος με τον οποίο ο πυρήνας κάνει ερωτήσεις μία προς μία τι πρέπει να υποστηρίζει και τι όχι. Είναι μια Πολύ χρονοβόρα Διαδικασία.
  2. make menuconfig : Είναι ένα σύστημα που βασίζεται στο μενού γραμμής εντολών όπου ο χρήστης μπορεί να ενεργοποιήσει και να απενεργοποιήσει μια επιλογή. Απαιτεί βιβλιοθήκη ncurses, επομένως το επιλέγουμε παραπάνω.
  3. make qconfig/xconfig/gconfig : Είναι το σύστημα που βασίζεται στο γραφικό μενού όπου ο χρήστης μπορεί να ενεργοποιήσει και να απενεργοποιήσει μια επιλογή. Απαιτεί QT Library.

Προφανώς θα χρησιμοποιήσουμε το "make menuconfig".

Φοβάστε την κατασκευή πυρήνα; Δεν πρέπει να είσαι. Είναι διασκεδαστικό, υπάρχουν πολλά πράγματα που θα μάθετε. Θα πρέπει να έχετε κατά νου αυτά τα ακόλουθα πράγματα.

  1. Οι ανάγκες σας στο υλικό και τα κατάλληλα προγράμματα οδήγησης.
  2. Επιλέξτε νέες δυνατότητες ενώ δημιουργείτε μόνοι σας τον πυρήνα – υψηλή υποστήριξη μνήμης.
  3. Βελτιστοποίηση πυρήνα – επιλέξτε μόνο τα προγράμματα οδήγησης που χρειάζεστε. Θα επιταχύνει τη διαδικασία εκκίνησης. Εάν δεν είστε σίγουροι για κανένα πρόγραμμα οδήγησης, καλύτερα να το συμπεριλάβετε.

Τώρα, εκτελέστε την εντολή "make menuconfig".

make menuconfig

Σημαντικό: Πρέπει να επιλέξετε "SELECT – ENABLE LOADABLE MODULE SUPPORT", αν ξεχάσετε να το κάνετε αυτό, θα έχετε δύσκολες στιγμές .

Σημείωση: Στα ανοιχτά παράθυρα διαμόρφωσης μπορείτε να διαμορφώσετε διάφορες επιλογές για την κάρτα δικτύου σας, bluetooth, Touchpad, κάρτα γραφικών, υποστήριξη συστήματος αρχείων, όπως NTFS και πολλές άλλες επιλογές.

Δεν υπάρχει κανένα σεμινάριο για να σας καθοδηγήσει τι πρέπει να επιλέξετε και τι όχι. Αυτό το καταλαβαίνεις μόνο ερευνώντας, μελετώντας πράγματα μέσω ιστού, μαθαίνοντας από τα σεμινάρια του tecmint και με κάθε άλλο δυνατό τρόπο.

Μπορεί να δείτε ότι υπάρχει μια επιλογή hacking πυρήνα. Hacking; Ναι! Εδώ σημαίνει εξερεύνηση. Μπορείτε να προσθέσετε διάφορες επιλογές στο πλαίσιο του kernel hacking και να χρησιμοποιήσετε πολλές δυνατότητες.

Στη συνέχεια, επιλέξτε Γενικές επιλογές προγράμματος οδήγησης.

Υποστήριξη συσκευών δικτύου.

Υποστήριξη συσκευής εισόδου.

Φορτώστε το αρχείο διαμόρφωσης (.config), που αποθηκεύσαμε από το /boot/config-`uname –r`.config.

Κάντε κλικ στο OK, αποθηκεύστε και βγείτε. Τώρα καθαρίστε το δέντρο προέλευσης και επαναφέρετε τις παραμέτρους του πακέτου πυρήνα.

make-kpkg clean

Βήμα 5: Μεταγλώττιση πυρήνα 3.16

Πριν ξεκινήσουμε τη μεταγλώττιση του πυρήνα, πρέπει να κάνουμε εξαγωγή CONCURRENCY_LEVEL. Το γενικό ΕΠΙΠΕΔΟ ΣΥΓΚΡΟΤΗΜΑΤΟΣ έχει έναν κανόνα να προσθέτει το Αριθμητικό 1 στους πυρήνες του πυρήνα. Εάν έχετε 2 πυρήνες, εξάγετε CONCURRENCY_LEVEL=3. Εάν έχετε 4 πυρήνες, εξάγετε CONCURRENCY_LEVEL=5.

Για να ελέγξετε τους πυρήνες του επεξεργαστή, μπορείτε να χρησιμοποιήσετε την εντολή cat όπως φαίνεται παρακάτω.

cat /proc/cpuinfo
Δείγμα εξόδου
Sample Output
processor	: 0 
vendor_id	: GenuineIntel 
cpu family	: 6 
model		: 69 
model name	: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz 
stepping	: 1 
microcode	: 0x17 
cpu MHz		: 799.996 
cache size	: 3072 KB 
physical id	: 0 
siblings	: 4 
core id		: 0 
cpu cores	: 2 
apicid		: 0 
initial apicid	: 0 
fpu		: yes 
fpu_exception	: yes 
cpuid level	: 13 
wp		: yes

Βλέπετε την παραπάνω έξοδο, έχω 2 πυρήνες, οπότε θα εξάγουμε 3 πυρήνες όπως φαίνεται παρακάτω.

export CONCURRENCY_LEVEL=3

Η ρύθμιση του σωστού CONCURRENCY_LEVEL θα επιταχύνει τον χρόνο μεταγλώττισης του πυρήνα.

fakeroot make-kpkg --append-to-version "-tecmintkernel" --revision "1" --initrd kernel_image kernel_headers

Εδώ το "tecminkernel" είναι το όνομα κατασκευής του πυρήνα, μπορεί να είναι οτιδήποτε, από το όνομά σας, το όνομα του κεντρικού υπολογιστή σας, το όνομα του κατοικίδιου ζώου σας ή οτιδήποτε άλλο.

Η μεταγλώττιση πυρήνα απαιτεί πολύ χρόνο ανάλογα με τις μονάδες που μεταγλωττίζονται και την επεξεργαστική ισχύ του μηχανήματος. Μέχρι τη στιγμή της μεταγλώττισης, δείτε μερικές από τις συχνές ερωτήσεις της μεταγλώττισης πυρήνα.

Συχνές Ερωτήσεις

Q1. Ο πυρήνας μου μεταγλωττίζεται εδώ και πολύ καιρό. Είναι φυσιολογικό.
Ε2. Εάν διακόψω τον πυρήνα κατά τη διάρκεια της μεταγλώττισης, χρειάζεται να ξεκινήσω από την αρχή;
Ε3. Τα μεταγλωττισμένα αρχεία μπορούν να χρησιμοποιηθούν σε διαφορετικό σύστημα για την ενημέρωση του πυρήνα;
Ε4. Θα φιλοξενήσετε το μεταγλωττισμένο Αρχείο σας;
Q5. Έχω πακέτα όπως το fakeroot και το ncurses5-dev στο αποθετήριο μου;
Ε6. Θα μπορώ να κάνω εκκίνηση στον τελευταίο πυρήνα, αφού εγκαταστήσω τον πιο πρόσφατο πυρήνα.
Ε7. Αντιμετωπίζω πρόβλημα με την ενημέρωση του πυρήνα. Θα με βοηθήσετε; Χρεώνεται;
Ε8. Η εταιρεία μου αντιμετωπίζει πρόβλημα με την ενημέρωση του πυρήνα. Θα μας βοηθήσει η ομάδα σας; Είναι Χρεώσιμο;

Αυτό είναι το τέλος των Συχνών Ερωτήσεων, επιτρέψτε μου να προχωρήσω στη διαδικασία μεταγλώττισης. Μετά την επιτυχή μεταγλώττιση του πυρήνα, δημιουργεί δύο αρχεία (πακέτο Debian), έναν κατάλογο «πάνω» του τρέχοντος καταλόγου εργασίας μας.

Ο τρέχων κατάλογος εργασίας μας είναι.

/home/avi/Downloads/linux-3.16/

Τα πακέτα Debian δημιουργούνται στο.

/home/avi/Downloads

Για να το επαληθεύσετε, εκτελέστε τις παρακάτω εντολές.

cd ..
ls -l linux-*.deb

Στη συνέχεια, εκτελέστε το αρχείο εικόνας Linux που δημιουργήθηκε έτσι.

dpkg -i linux-image-3.16.0-tecmintkernel_1_amd64.deb

Εκτελέστε το αρχείο κεφαλίδας Linux που δημιουργήθηκε έτσι.

dpkg -i linux-headers-3.16.0-tecmintkernel_1_amd64.deb

Ολα τελείωσαν! Κατασκευάσαμε, μεταγλωττίσαμε και εγκαταστήσαμε με επιτυχία τον τελευταίο πυρήνα Linux 3.16 στο Debian με όλες τις άλλες εξαρτήσεις. Επιπλέον, το πακέτο Debian κατάφερε να ενημερώσει αυτόματα τον bootloader (GRUB/LILO). Ήρθε η ώρα να επανεκκινήσετε και να δοκιμάσετε τον πιο πρόσφατο πυρήνα.

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

reboot

Μόλις το Debian ξεκινήσει ξανά, κάντε κλικ στην «Σύνθετη επιλογή» για να δείτε μια λίστα με τους διαθέσιμους και εγκατεστημένους πυρήνες.

Δείτε μια λίστα με εγκατεστημένους πυρήνες.

Επιλέξτε τον πιο πρόσφατο μεταγλωττισμένο πυρήνα (δηλαδή 3.16) για εκκίνηση.

Ελέγξτε την έκδοση του πυρήνα.

uname -mrns

Το πιο πρόσφατο, που έχει εγκατασταθεί τώρα, έχει ρυθμιστεί για εκκίνηση, αυτόματα και δεν χρειάζεται να το επιλέγετε κάθε φορά από τις σύνθετες επιλογές εκκίνησης.

Βήμα 6: Εγκαταστήστε τον Pre-Compiled Kernel 3.16

Για όσους δεν θέλουν να μεταγλωττίσουν τον δικό τους πυρήνα στο Debian (x86_64) και θέλουν να χρησιμοποιήσουν τον προ-μεταγλωττισμένο πυρήνα που έχουμε δημιουργήσει σε αυτό το σεμινάριο, μπορούν να τον κατεβάσουν από τον παρακάτω σύνδεσμο. Αυτός ο πυρήνας μπορεί να μην λειτουργεί για κάποιο από το υλικό που μπορεί να έχετε.

  1. linux-image-3.16.0-linux-console.net_kernel_1_amd64.deb
  2. linux-headers-3.16.0-linux-console.net_kernel_1_amd64.deb

Στη συνέχεια, εγκαταστήστε τον προ-μεταγλωττισμένο πυρήνα χρησιμοποιώντας την ακόλουθη εντολή.

dpkg -i linux-image-3.16.0-linux-console.net_kernel_amd64.deb
dpkg -i linux-headers-3.16.0-linux-console.net_kernel_amd64.deb

Ο αχρησιμοποίητος πυρήνας μπορεί να αφαιρεθεί από το σύστημα χρησιμοποιώντας την εντολή.

apt-get remove linux-image-(unused_version_number)

Προσοχή: Θα πρέπει να αφαιρέσετε τον παλιό πυρήνα αφού δοκιμάσετε διεξοδικά τον τελευταίο πυρήνα. Μην πάρετε μια απόφαση βιαστικά. Θα πρέπει να προχωρήσετε μόνο εάν ξέρετε τι κάνετε.

Εάν κάνατε κάτι λάθος κατά την αφαίρεση του πυρήνα που θέλετε ή αφαιρέσατε τον πυρήνα που δεν έπρεπε, το σύστημά σας θα βρίσκεται σε ένα στάδιο στο οποίο δεν μπορείτε να εργαστείτε.

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

  1. Ο σύνδεσμος /vmlinuz είναι κατεστραμμένος σύνδεσμος.
  2. Αφαίρεση συμβολικού συνδέσμου vmlinuz.
  3. Ίσως χρειαστεί να εκτελέσετε ξανά το boot loader[grub].
  4. Ο σύνδεσμος /initrd.img είναι κατεστραμμένος σύνδεσμος.
  5. Αφαίρεση συμβολικού συνδέσμου initrd.img .
  6. Ίσως χρειαστεί να εκτελέσετε ξανά το boot loader[grub].

Αυτό είναι φυσιολογικό και δεν χρειάζεται να ανησυχείτε. Απλώς ενημερώστε το GRUB σας χρησιμοποιώντας την ακόλουθη εντολή.

/usr/sbin/update-grub

Ίσως χρειαστεί να ενημερώσετε το αρχείο /etc/kernel-img.conf και να απενεργοποιήσετε το "do_symlinks", για να απενεργοποιήσετε αυτά τα μηνύματα. Εάν μπορείτε να κάνετε επανεκκίνηση και να συνδεθείτε ξανά, δεν υπάρχει πρόβλημα.

Αυτα για τωρα. Θα είμαι ξανά εδώ με ένα άλλο ενδιαφέρον άρθρο. Μέχρι τότε μείνετε συντονισμένοι και συνδεδεμένοι στο Tecmint. Μην ξεχάσετε να μας δώσετε τα πολύτιμα σχόλιά σας στην παρακάτω ενότητα σχολίων. Πείτε μας επίσης την εμπειρία σας όταν αντιμετωπίζετε τη μεταγλώττιση και την εγκατάσταση του πυρήνα.

Διαβάστε επίσης :

  1. Εγκαταστήστε τον πυρήνα 3.16 στο Ubuntu
  2. Μεταγλώττιση και εγκατάσταση του πυρήνα 3.12 στο Debian Linux