Izdana kernel 3.16 - kompajlirajte i instalirajte na Debian GNU/Linux


Kernel je jezgra svakog operativnog sustava. Primarna funkcija kernela je da djeluje kao posrednik između aplikacije – CPU, aplikacije – memorije i aplikacije – uređaja (I/O). Funkcionira kao upravitelj memorije, upravitelj uređaja i prati pozive sustava osim obavljanja drugih zadataka.

Za Linux, kernel je njegovo srce. Linux Kernel je objavljen pod GNU Općom javnom licencom. Linus Torvalds razvio je Linux Kernel 1991. godine i došao je s Initial Kernel Release Version 0.01. Dana 3. kolovoza 2014. (ove godine) Kernel 3.16 je objavljen. U ove 22 godine Linux kernel je doživio dosta razvoja. Sada postoje tisuće tvrtki, milijuni neovisnih programera koji doprinose Linux kernelu.

Gruba procjena velikih marki i njihov doprinos sadašnjem Linux kernelu za koji se očekuje da će imati 17 milijuna linija koda prema 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. Sustavi za vizualno graviranje – 2,3%
  10. Wolfson Microelectronics – 1,6%
  11. Oracle – 1,3%
  12. Broadcom – 1,3%
  13. Nvidia – 1,3%
  14. Freescale – 1,2%
  15. Ingics tehnologija – 1,2%
  16. Cisco – 0,9%
  17. Linux Foundation – 0,9%
  18. AMD – 0,9%
  19. Akademici – 0,9%
  20. NetAPP – 0,8%
  21. Fujitsu – 0,7%
  22. paralele – 0,7%
  23. ARM – 0,7%

Sedamdeset posto razvoja kernela rade programeri, koji rade u poduzećima i za to su plaćeni, zvuči zanimljivo?

Linux Kernel 3.16 objavljen je za pojedince kao i tvrtke u proizvodnom okruženju, koje će ažurirati svoj kernel iz više razloga, od kojih neki uključuju.

  1. Sigurnosne zakrpe
  2. Poboljšanje stabilnosti
  3. Ažurirani upravljački programi – bolja podrška za uređaje
  4. Poboljšanje brzine obrade
  5. Najnovije funkcije, itd

Ovaj članak ima za cilj ažuriranje Debian kernela, na Debianov način, što znači manje ručnog rada, manje rizika, ali uz savršenstvo. Također ćemo ažurirati Ubuntu kernel u kasnijem dijelu ovog članka.

Korak 1: Preuzimanje kernela 3.16

Prije nego što nastavimo, moramo znati o našem trenutnom kernelu, koji je instaliran.

avi@tecmint:~$ uname -mrns 

Linux tecmint 3.14-1-amd64 x86_64

O opcijama:

  1. -s : Operativni sustav ispisa ('Linux', ovdje).
  2. -n : Ispis naziva hosta sustava ('tecmint', ovdje).
  3. -r : Ispis verzije kernela ('tecmint 3.14-1-amd64', ovdje).
  4. -m : Ispis sklopa hardverskih uputa ('x86_64', ovdje).

Preuzmite najnoviji stabilni kernel s donje veze. Neka vas ne zbuni tamošnja veza za preuzimanje zakrpa. Preuzmite onu koja jasno kaže – “NAJNOVIJI STABILNI KERNEL”.

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

Alternativno, možete koristiti wget za preuzimanje kernela što je praktičnije.

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

Korak 2: Provjerite potpis kernela 3.16

Nakon završetka preuzimanja i prije nego što nastavimo, preporučuje se da provjerite potpis kernela.

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

Provjeru potpisa potrebno je izvršiti za nekomprimiranu datoteku. Ovo zahtijeva jedan potpis za različite formate kompresije, tj. .gz, .bz2, .xz.

Zatim dekomprimirajte sliku jezgre Linuxa.

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

Ovjerite ga potpisom.

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

Napomena: Ako gornja naredba izbaci pogrešku gpg: Can't check signature: public key not found. To znači da javni ključ moramo preuzeti ručno s PGP poslužitelja.

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

Nakon preuzimanja ključa ponovno potvrdite ključ.

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

Jeste li primijetili dvije stvari o provjeri gpg ključa.

  1. gpg: Dobar potpis od “Linus Torvalds <[email >”.
  2. Otisak primarnog ključa: ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886.

Nema razloga za brigu oko otiska prsta ključa, sada smo sigurni da je arhiva u redu i potpisana. Idemo naprijed!

Korak 3: Instalacija potrebnih paketa

Prije nego krenemo naprijed i počnemo graditi kernel, moramo instalirati određene pakete kako bismo olakšali proces izgradnje kernela i instalacije i to na Debian način bez rizika.

Instalirajte libcurse5-dev, fakeroot i 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

Korak 4: Izgradnja kernela 3.16

Nakon uspješne instalacije gore navedenih paketa, spremni smo za izgradnju kernela. Prijeđite na ekstrahiranu sliku kernela Linuxa (izdvojili smo gore, dok smo provjeravali potpis).

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

Sada je važno kopirati trenutnu konfiguraciju kernela kako bi radni direktorij bio prikazan kao root korisnik.

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

Kopira /boot/config-'uname -r' da predstavi radni direktorij “/home/avi/Downloads/linux-3.16” i sprema ga kao '.config'.

Ovdje će ‘uname -r’ automatski biti zamijenjen i obrađen s vašom trenutno instaliranom verzijom kernela.

Budući da se točkasta datoteka ne može vidjeti na normalan način, trebate koristiti opciju '-a' s ls da biste je vidjeli, u vašem trenutnom radnom direktoriju'.

ls -al

Postoje tri načina za izgradnju Linux kernela.

  1. make oldconfig : To je interaktivan način na koji kernel postavlja jedno po jedno pitanje što treba podržavati, a što ne. To je vrlo dugotrajan proces.
  2. make menuconfig : To je sustav temeljen na izborniku naredbenog retka gdje korisnik može omogućiti i onemogućiti opciju. Zahtijeva ncurses knjižnicu stoga smo to prihvatili gore.
  3. make qconfig/xconfig/gconfig : To je sustav temeljen na grafičkom izborniku gdje korisnik može omogućiti i onemogućiti opciju. Zahtijeva QT knjižnicu.

Očito ćemo koristiti 'make menuconfig'.

Bojite se izgradnje kernela? Ne bi trebao biti. Zabavno je, puno ćete stvari naučiti. Trebate imati na umu sljedeće stvari.

  1. Vaše potrebe za hardverom i odgovarajući upravljački programi.
  2. Odaberite nove značajke dok sami gradite kernel kao što je podrška za veliku memoriju.
  3. Optimizirajte kernel – odaberite samo one upravljačke programe koji su vam potrebni. To će ubrzati vaš proces dizanja. Ako niste sigurni u bilo kojeg vozača, bolje ga uključite.

Sada pokrenite naredbu ‘make menuconfig’.

make menuconfig

Važno: Morate odabrati “ODABERI – OMOGUĆI PODRŠKU ZA MODULE ZA UČITAVANJE“, ako to zaboravite učiniti, bit će vam teško .

Napomena: U otvorenim konfiguracijskim prozorima možete konfigurirati različite opcije za svoju mrežnu karticu, bluetooth, Touchpad, grafičku karticu, podršku za datotečni sustav kao što je NTFS i mnoge druge opcije.

Ne postoji vodič koji bi vas vodio što biste trebali odabrati, a što ne. To saznajete samo istraživanjem, proučavanjem stvari preko weba, učenjem iz tutoriala tecminta i na svaki drugi mogući način.

Možda ćete vidjeti da postoji opcija hakiranja kernela. Hakiranje? Da! Ovdje to znači istraživanje. Možete dodati razne opcije pod hakiranje kernela i koristiti mnoge značajke.

Zatim odaberite Generičke opcije upravljačkog programa.

Podrška za mrežne uređaje.

Podrška za ulazni uređaj.

Učitajte konfiguracijsku datoteku (.config), koju smo spremili iz /boot/config-`uname –r`.config.

Kliknite OK, spremite i izađite. Sada očistite izvorno stablo i resetirajte parametre paketa kernela.

make-kpkg clean

Korak 5: Kompajliranje kernela 3.16

Prije nego počnemo kompajlirati kernel, moramo izvesti CONCURRENCY_LEVEL. RAZINA KONKURENCIJE palca ima pravilo za dodavanje broja 1 jezgri kernela. Ako imate 2 jezgre, izvezite CONCURRENCY_LEVEL=3. Ako imate 4 jezgre, izvezite CONCURRENCY_LEVEL=5.

Za provjeru jezgri procesora možete koristiti naredbu cat kao što je prikazano u nastavku.

cat /proc/cpuinfo
Uzorak izlaza
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

Vidite gornji rezultat, imam 2 jezgre, pa ćemo izvesti 3 jezgre kao što je prikazano u nastavku.

export CONCURRENCY_LEVEL=3

Postavljanje ispravnog CONCURRENCY_LEVEL će ubrzati vrijeme kompilacije kernela.

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

Ovdje je ‘tecminkernel’ naziv verzije kernela, može biti bilo što u rasponu od vašeg imena, imena vašeg hosta, imena vašeg ljubimca ili bilo čega drugog.

Kompilacija kernela oduzima puno vremena ovisno o modulima koji se kompajliraju i procesorskoj snazi stroja. Dok se ne kompajlira, pogledajte neka od često postavljanih pitanja o kompilaciji kernela.

Često postavljana pitanja

P1. Moj se kernel već dugo kompajlira. Je li to normalno.
Q2. Ako prekinem kernel dok se kompajlirao, trebam li sve ispočetka?
Q3. Prevedene datoteke mogu se koristiti na drugom sustavu za ažuriranje kernela?
Q4. Hoćete li ugostiti svoju kompiliranu datoteku?
P5. Imam li pakete kao što su fakeroot i ncurses5-dev u svom repozitoriju?
P6. Hoću li moći pokrenuti zadnji kernel nakon što instaliram najnoviji kernel.
P7. Imam problem s ažuriranjem kernela. Hoćete li mi pomoći? Da li se naplaćuje?
P8. Moja tvrtka se suočava s problemom ažuriranja kernela. Hoće li nam vaš tim pomoći? Može li se naplatiti?

To je kraj FAQ-a, da krenem s procesom kompilacije. Nakon uspješne kompilacije kernela, on stvara dvije datoteke (Debian paket), jedan direktorij 'iznad' našeg trenutnog radnog direktorija.

Naš trenutni radni imenik je.

/home/avi/Downloads/linux-3.16/

Debian paketi se kreiraju na.

/home/avi/Downloads

Da biste to potvrdili, pokrenite sljedeće naredbe.

cd ..
ls -l linux-*.deb

Zatim pokrenite tako stvorenu slikovnu datoteku Linuxa.

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

Pokrenite tako stvorenu Linux datoteku zaglavlja.

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

Gotovo! Uspješno smo izgradili, kompajlirali i instalirali najnoviji Linux kernel 3.16 na Debianu sa svim ostalim ovisnostima. Štoviše, Debianov paket uspio je automatski ažurirati bootloader (GRUB/LILO). Vrijeme je za ponovno podizanje sustava i testiranje najnovijeg kernela.

Obavezno primijetite sve poruke o pogrešci koje biste mogli dobiti tijekom pokretanja sustava. Važno je razumjeti tu pogrešku da biste ih riješili, ako ih ima.

reboot

Čim se Debian ponovno pokrene, kliknite na 'Napredna opcija' kako biste vidjeli popis dostupnih i instaliranih kernela.

Pogledajte popis instaliranih kernela.

Odaberite najnoviji kompajlirani kernel (tj. 3.16) za pokretanje.

Provjerite verziju kernela.

uname -mrns

Najnoviji, instaliran sada, postavljen je na automatsko pokretanje i ne morate ga svaki put birati među naprednim opcijama pokretanja.

Korak 6: Instalirajte Pre-Compiled Kernel 3.16

Za one koji ne žele sami kompajlirati kernel na Debianu (x86_64) i žele koristiti unaprijed kompajlirani kernel koji gradimo u ovom vodiču, mogu ga preuzeti s donje veze. Ovaj kernel možda neće raditi za neki hardver koji možda imate.

  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

Zatim instalirajte unaprijed kompajlirani kernel pomoću sljedeće naredbe.

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

Neiskorišteni kernel može se ukloniti iz sustava pomoću naredbe.

apt-get remove linux-image-(unused_version_number)

Oprez: Trebali biste ukloniti stari kernel nakon temeljitog testiranja najnovijeg kernela. Ne donosite odluku na brzinu. Trebali biste nastaviti samo ako znate što radite.

Ako ste učinili nešto krivo u uklanjanju kernela koji želite ili ste uklonili kernel koji niste trebali, vaš će sustav biti u fazi na kojoj ne možete raditi.

Nakon deinstalacije neiskorištenog kernela možete dobiti poruku poput.

  1. Veza /vmlinuz je oštećena veza.
  2. Uklanjanje simboličke veze vmlinuz.
  3. Možda ćete morati ponovno pokrenuti svoj boot loader[grub].
  4. Link /initrd.img je oštećen link.
  5. Uklanjanje simboličke veze initrd.img.
  6. Možda ćete morati ponovno pokrenuti svoj boot loader[grub].

To je normalno i ne trebate se brinuti. Samo ažurirajte svoj GRUB pomoću sljedeće naredbe.

/usr/sbin/update-grub

Možda ćete morati ažurirati svoju /etc/kernel-img.conf datoteku i onemogućiti 'do_symlinks', kako biste onemogućili ove poruke. Ako se možete ponovno pokrenuti i ponovo prijaviti, nema problema.

To je sve za sada. Opet ću biti ovdje s još jednim zanimljivim člankom. Do tada ostanite s nama i povezani na Tecmint. Ne zaboravite nam dati svoje vrijedne povratne informacije u odjeljku za komentare u nastavku. Također nam recite svoje iskustvo kada naiđete na kompilaciju i instalaciju kernela.

Pročitajte također:

  1. Instalirajte Kernel 3.16 u Ubuntu
  2. Prevedi i instaliraj kernel 3.12 u Debian Linux