Išleistas branduolys 3.16 – kompiliuoti ir įdiegti Debian GNU/Linux


Branduolis yra bet kurios operacinės sistemos pagrindas. Pagrindinė branduolio funkcija yra veikti kaip tarpininkas tarp programos – procesoriaus, programos – atminties ir programos – įrenginių (I/O). Jis veikia kaip atminties tvarkyklė, įrenginių tvarkyklė ir dalyvauja sistemos skambučiuose, ne tik atlieka kitas užduotis.

„Linux“ branduolys yra jo širdis. „Linux“ branduolys yra išleistas pagal GNU bendrąją viešąją licenciją. Linusas Torvaldsas sukūrė Linux branduolį 1991 m. ir atėjo su pradine branduolio leidimo versija 0.01. 2014 m. rugpjūčio 3 d. (šiemet) buvo išleista Branduolė 3.16. Per šiuos 22 metus „Linux“ branduolys buvo daug tobulinamas. Dabar prie Linux branduolio prisideda tūkstančiai įmonių, milijonai nepriklausomų kūrėjų.

Apytikslis didelių prekių ženklų įvertinimas ir jų indėlis į dabartinį „Linux“ branduolį, kuriame turėtų būti 17 milijonų kodo eilučių pagal Linux Foundation, Linux branduolio plėtros ataskaitą.

  1. „RedHat“ – 10,2 proc.
  2. „Intel“ – 8,8 proc.
  3. „Texas Instruments“ – 4,1 proc.
  4. „Linaro“ – 4,1 proc.
  5. SUSE – 3,5 proc.
  6. IBM – 3,1 proc.
  7. „Samsung“ – 2,6 proc.
  8. „Google“ – 2,4 proc.
  9. Vizijos graviravimo sistemos – 2,3 proc.
  10. „Wolfson Microelectronics“ – 1,6 proc.
  11. „Oracle“ – 1,3 proc.
  12. „Broadcom“ – 1,3 proc.
  13. „Nvidia“ – 1,3 proc.
  14. Nemokama skalė – 1,2 proc.
  15. „Ingics Technology“ – 1,2 proc.
  16. „Cisco“ – 0,9 %
  17. „Linux Foundation“ – 0,9 proc.
  18. AMD – 0,9 proc.
  19. Akademikai – 0,9 proc.
  20. NetAPP – 0,8 %
  21. „Fujitsu“ – 0,7 proc.
  22. paralelės – 0,7 proc.
  23. ARM – 0,7 proc.

Septyniasdešimt procentų branduolio kūrimo atlieka kūrėjai, dirbantys įmonėse ir už tai mokama, skamba įdomiai?

„Linux Kernel 3.16“ yra išleistas individualiems ir gamybinėje aplinkoje esančioms įmonėms, kurios atnaujins savo branduolį dėl daugelio priežasčių, tarp kurių yra keletas.

  1. Saugumo pataisos
  2. Stabilumo didinimas
  3. Atnaujintos tvarkyklės – geresnis įrenginio palaikymas
  4. Apdorojimo greičio gerinimas
  5. Naujausios funkcijos ir kt

Šiuo straipsniu siekiama atnaujinti Debian'o branduolį Debian'o būdu, o tai reiškia mažiau rankinio darbo, mažiau rizikos, tačiau tobulai. Vėlesnėje šio straipsnio dalyje taip pat atnaujinsime Ubuntu branduolį.

1 veiksmas: branduolio 3.16 atsisiuntimas

Prieš tęsdami, turime žinoti apie esamą branduolį, kuris yra įdiegtas.

avi@tecmint:~$ uname -mrns 

Linux tecmint 3.14-1-amd64 x86_64

Apie parinktis:

  1. -s : spausdinimo operacinė sistema („Linux“, čia).
  2. -n : Spausdinimo sistemos pagrindinio kompiuterio pavadinimas ("tecmint", čia).
  3. -r : spausdinimo branduolio versija („tecmint 3.14-1-amd64“, čia).
  4. -m : spausdinimo aparatinės įrangos instrukcijų rinkinys („x86_64“, čia).

Atsisiųskite naujausią stabilų branduolį iš toliau pateiktos nuorodos. Nesijaudinkite dėl pataisų atsisiuntimo nuorodos. Atsisiųskite tą, kuriame aiškiai parašyta – „NAUJIAUSIAS STABILUS branduolys“.

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

Arba galite naudoti wget, kad atsisiųstumėte branduolį, kuris yra patogesnis.

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

2 veiksmas: patikrinkite branduolio 3.16 parašą

Kai atsisiuntimas bus baigtas ir prieš judėdami į priekį, primygtinai rekomenduojama patikrinti branduolio parašą.

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

Parašo patikrinimas turi būti atliktas naudojant nesuspaustą failą. Tam reikia vieno parašo prieš įvairius glaudinimo formatus, pvz., .gz, .bz2, .xz.

Tada išskleiskite Linux branduolio vaizdą.

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

Patvirtinkite tai prieš parašą.

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

Pastaba: jei aukščiau pateikta komanda išveda gpg: Nepavyksta patikrinti parašo: viešasis raktas nerastas klaida. Tai reiškia, kad turime rankiniu būdu atsisiųsti viešąjį raktą iš PGP serverio.

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

Atsisiuntę raktą dar kartą patikrinkite raktą.

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

Ar pastebėjote du dalykus, susijusius su gpg rakto patvirtinimu?

  1. gpg: geras parašas iš „Linus Torvalds <[email >“.
  2. Pagrindinio rakto piršto atspaudas: ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886 .

Nėra ko jaudintis dėl rakto pirštų atspaudų, dabar esame tikri, kad archyvas yra gerai ir pasirašytas. Judame pirmyn!

3 veiksmas: reikalingų paketų įdiegimas

Prieš pradėdami kurti branduolį, turime įdiegti tam tikrus paketus, kad palengvintume branduolio kūrimo ir diegimo procesą ir tai atliktume nerizikingai Debian'u.

Įdiekite libcurse5-dev, fakeroot ir branduolio paketą.

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 veiksmas: branduolio kūrimas 3.16

Sėkmingai įdiegę aukščiau nurodytus paketus, esame pasirengę kurti branduolį. Perkelkite į ištrauktą „Linux“ branduolio vaizdą (išskleidėme aukščiau, tikrindami parašą).

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

Dabar svarbu nukopijuoti esamą branduolio konfigūraciją, kad darbinis katalogas būtų rodomas kaip root naudotojas.

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

Jis kopijuoja /boot/config-'uname -r', kad pateiktų darbo katalogą „/home/avi/Downloads/linux-3.16“ ir išsaugomas kaip „.config'.

Čia „uname -r“ bus automatiškai pakeistas ir apdorotas šiuo metu įdiegta branduolio versija.

Kadangi taškinio failo negalima matyti įprastu būdu, turite naudoti parinktį „-a“ su ls, kad peržiūrėtumėte jį dabartiniame darbo kataloge.

ls -al

Yra trys Linux branduolio kūrimo būdai.

  1. make oldconfig : tai interaktyvus būdas, kai branduolys po vieną užduoda klausimą, ką jis turėtų palaikyti, o ko ne. Tai labai daug laiko reikalaujantis procesas.
  2. make menuconfig : tai komandų eilutės meniu pagrįsta sistema, kurioje vartotojas gali įjungti ir išjungti parinktį. Tam reikalinga ncurses biblioteka, todėl mes tai nustatome aukščiau.
  3. padaryti qconfig/xconfig/gconfig: tai grafiniu meniu pagrįsta sistema, kurioje vartotojas gali įjungti ir išjungti parinktį. Tam reikia QT bibliotekos.

Akivaizdu, kad naudosime „make menuconfig“.

Bijote sukurti branduolį? Jūs neturėtumėte būti. Tai smagu, yra daug dalykų, kuriuos sužinosite. Turėtumėte nepamiršti šių dalykų.

  1. Jūsų techninės įrangos poreikiai ir atitinkamos tvarkyklės.
  2. Rinkitės naujas funkcijas, kol patys kuriate branduolį – didelės atminties palaikymas.
  3. Optimizuokite branduolį – pasirinkite tik tas tvarkykles, kurių jums reikia. Tai pagreitins jūsų įkrovos procesą. Jei nesate tikri dėl kurio nors vairuotojo, geriau įtraukite jį.

Dabar paleiskite komandą „make menuconfig“.

make menuconfig

Svarbu: turite pasirinkti „PASIRINKTI – ĮJUNGTI Įkeliamo modulio palaikymą“, jei pamiršite tai padaryti, ištiks sunkūs laikai .

Pastaba: atidarytuose konfigūracijos languose galite konfigūruoti įvairias tinklo plokštės, „Bluetooth“, jutiklinės dalies, grafikos plokštės, failų sistemos palaikymo, pvz., NTFS, ir daugelio kitų parinkčių.

Nėra mokymo programos, kuri padėtų jums pasirinkti, ką turėtumėte pasirinkti, o ko ne. Tai sužinosite tik tyrinėdami, studijuodami žiniatinklyje, mokydamiesi iš tecmint vadovėlių ir visais kitais įmanomais būdais.

Galite pamatyti, kad yra galimybė įsilaužti į branduolį. Įsilaužimas? Taip! Čia tai reiškia tyrinėjimą. Galite pridėti įvairių parinkčių pagal branduolio įsilaužimą ir naudoti daugybę funkcijų.

Tada pasirinkite Bendrosios tvarkyklės parinktys.

Tinklo įrenginių palaikymas.

Įvesties įrenginio palaikymas.

Įkelkite konfigūracijos failą (.config), kurį išsaugojome iš /boot/config-`uname –r`.config.

Spustelėkite Gerai, išsaugokite ir išeikite. Dabar išvalykite šaltinio medį ir iš naujo nustatykite branduolio paketo parametrus.

make-kpkg clean

5 veiksmas: branduolio 3.16 kompiliavimas

Prieš pradėdami kompiliuoti branduolį, turime eksportuoti CONCURRENCY_LEVEL. LYGIAUS LYGIS nykščio turi taisyklę pridėti skaičių 1 prie branduolio branduolių. Jei turite 2 branduolius, eksportuokite CONCURRENCY_LEVEL=3. Jei turite 4 branduolius, eksportuokite CONCURRENCY_LEVEL=5.

Norėdami patikrinti procesoriaus branduolius, galite naudoti cat komandą, kaip parodyta toliau.

cat /proc/cpuinfo
Pavyzdžio išvestis
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

Matote aukščiau pateiktą išvestį, aš turiu 2 branduolius, todėl eksportuosime 3 branduolius, kaip parodyta žemiau.

export CONCURRENCY_LEVEL=3

Nustačius teisingą CONCURRENCY_LEVEL, branduolio kompiliavimo laikas paspartės.

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

Čia „tecminkernel“ yra branduolio versijos pavadinimas. Tai gali būti bet kas, pradedant nuo jūsų vardo, jūsų pagrindinio kompiuterio vardo, jūsų augintinio vardo ar bet ko kito.

Branduolio kompiliavimas užtrunka daug laiko, priklausomai nuo kompiliuojamų modulių ir mašinos apdorojimo galios. Iki kompiliavimo pažvelkite į kai kuriuos branduolio kompiliavimo DUK.

Dažnai užduodami klausimai

Q1. Mano branduolys yra kompiliuojamas ilgą laiką. Ar tai normalu.
Q2. Jei nutraukiu branduolį, kol jis buvo kompiliuojamas, ar man reikia viską pradėti iš naujo?
Q3. Sukompiliuotus failus galima naudoti skirtingose sistemose branduoliui atnaujinti?
4 klausimas. Ar priglobsite savo sudarytą failą?
Q5. Ar mano saugykloje yra tokių paketų kaip fakeroot ir ncurses5-dev?
6 klausimas. Ar galėsiu paleisti paskutinį branduolį, kai įdiegsiu naujausią branduolį.
7 klausimas. Susiduriu su branduolio atnaujinimo problema. Ar padėsite man? Ar tai apmokestinama?
Q8. Mano įmonė susiduria su problema atnaujindama branduolį. Ar jūsų komanda mums padės? Ar tai apmokestinama?

Tai DUK pabaiga, leiskite man pereiti prie kompiliavimo proceso. Po sėkmingo branduolio kompiliavimo jis sukuria du failus (Debian paketą), vieną katalogą „viršuje“ dabartinio darbo katalogo.

Mūsų dabartinis darbo katalogas yra.

/home/avi/Downloads/linux-3.16/

Debian paketai kuriami adresu.

/home/avi/Downloads

Norėdami tai patikrinti, paleiskite šias komandas.

cd ..
ls -l linux-*.deb

Tada paleiskite taip sukurtą „Linux“ vaizdo failą.

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

Paleiskite taip sukurtą Linux antraštės failą.

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

Viskas padaryta! Mes sėkmingai sukūrėme, sukompiliavome ir įdiegėme naujausią Linux branduolį 3.16 Debian'e su visomis kitomis priklausomybėmis. Be to, „Debian“ paketui pavyko automatiškai atnaujinti įkrovos įkroviklį (GRUB/LILO). Atėjo laikas iš naujo paleisti ir išbandyti naujausią branduolį.

Būtinai atkreipkite dėmesį į bet kokį klaidos pranešimą, kurį galite gauti paleidžiant. Svarbu suprasti šią klaidą, kad jas išspręstumėte, jei tokių yra.

reboot

Kai tik Debianas vėl paleidžiamas, spustelėkite „Išplėstinė parinktis“, kad pamatytumėte galimų ir įdiegtų branduolių sąrašą.

Peržiūrėkite įdiegtų branduolių sąrašą.

Norėdami paleisti, pasirinkite naujausią sukompiliuotą branduolį (ty 3.16).

Patikrinkite branduolio versiją.

uname -mrns

Naujausias, įdiegtas dabar, yra nustatytas paleisti automatiškai ir jums nereikia jo kiekvieną kartą pasirinkti iš išplėstinių įkrovos parinkčių.

6 veiksmas: įdiekite iš anksto sukompiliuotą branduolį 3.16

Tiems, kurie nenori kompiliuoti savo branduolio Debian'e (x86_64) ir nori naudoti iš anksto sukompiliuotą branduolį, kurį sukūrėme šioje pamokoje, jie gali jį atsisiųsti iš toliau pateiktos nuorodos. Šis branduolys gali neveikti kai kuriai jūsų turimai aparatūrai.

  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

Tada įdiekite iš anksto sukompiliuotą branduolį naudodami šią komandą.

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

Nenaudojamą branduolį galima pašalinti iš sistemos naudojant komandą.

apt-get remove linux-image-(unused_version_number)

Atsargiai: turėtumėte pašalinti seną branduolį, kruopščiai išbandę naujausią branduolį. Neskubėkite priimti sprendimo. Turėtumėte tęsti tik tada, kai žinote, ką darote.

Jei padarėte kažką ne taip pašalindami norimą branduolį arba pašalinote branduolį, kurio neturėjote, jūsų sistema atsidurs tokioje stadijoje, su kuria negalėsite dirbti.

Pašalinę nenaudojamą branduolį galite gauti tokį pranešimą kaip.

  1. Nuoroda /vmlinuz yra sugadinta nuoroda.
  2. Pašalinama simbolinė nuoroda vmlinuz.
  3. Gali tekti iš naujo paleisti įkrovos įkroviklį[grub].
  4. Nuoroda /initrd.img yra sugadinta nuoroda.
  5. Pašalinama simbolinė nuoroda initrd.img .
  6. Gali tekti iš naujo paleisti įkrovos įkroviklį[grub].

Tai normalu ir jums nereikia jaudintis. Tiesiog atnaujinkite savo GRUB naudodami šią komandą.

/usr/sbin/update-grub

Gali tekti atnaujinti failą /etc/kernel-img.conf ir išjungti „do_symlinks“, kad išjungtumėte šiuos pranešimus. Jei galite iš naujo paleisti ir vėl prisijungti, nėra jokių problemų.

Tai kol kas viskas. Būsiu čia dar su kitu įdomiu straipsniu. Iki tol sekite naujienas ir prisijunkite prie Tecmint. Nepamirškite pateikti mums vertingų atsiliepimų toliau pateiktame komentarų skyriuje. Taip pat papasakokite apie savo patirtį, kai susiduriate su branduolio kompiliavimu ir diegimu.

Taip pat skaitykite :

  1. Įdiekite branduolį 3.16 Ubuntu
  2. Sukompiliuokite ir įdiekite branduolį 3.12 sistemoje Debian Linux