Kompajliranje i instalacija novog kernela

Uputstva, saveti i trikovi

Moderator: Urednik


Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 16 Aug 2015, 23:34


Obrisao sam post vezan za instalaciju datoteka zaglavlja kernela (kernel-headers). Ovo je vezano za glibc, a ne za kernel. Nije preporučeno ažurirati kernel-headers kada ažurirate verziju kernela. Kernel-headers verzija bi trebalo da se poklapa sa verzijom krenela koji je korišćen kada je kompajliran glibc (tj. onim koji dolazi uz Slack). Ova verzija je neophodna kako bi bilo moguće rekompajliranje određenih sistemskih komponenti.

Više podataka ćete naći ovde: Building a Linux Kernel from Source @ http://docs.slackware.com/" onclick="window.open(this.href);return false;.



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 11 Sep 2015, 13:18


Pošto je ovo uklonjeno iz currenta, a nekome bi još moglo da posluži:

Config datoteke za huge i generic kernele za 3.18 seriju
linux-3.18.11.tar.gz
(223.12 KiB) Downloaded 397 times
Pretpostavljam da znate, ali hajde:
x86_64 - 64-bitna verzija
smp - 32-bitna verzija sa podrškom za SMP - ovo bi trebalo da vam je podrazumevani izbor za sisteme sa više procesora, procesorom sa dva jezgra ili procesorom sa podrškom za hyperthreading.

Verzija bez posebne oznake je 32-bitna verzija bez podrške za SMP. Ovo je verzija za sisteme sa jednojezgarnim procesorom bez podrške za hyperthreading.



Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 181
Joined: 17 Jul 2015, 17:09
Location: Levo od Albukerkija

Post Napisano: 18 Feb 2016, 19:02


Aloha!

Zanima me u čemu je razlika između kompajliranja novog kernela (kao što je opisano) i nadogradnje pomoću 'installpkg'?
Znam da je drugi način lakši/brži, ali me interesuje ima li nekih prednosti kada se to odradi po uputstvu s početka teme.
Hvala! :beer:



Administrator
Administrator
offline
User avatar

Posts: 3451
Joined: 01 Apr 2012, 13:50
Location: Mlečni put

Post Napisano: 18 Feb 2016, 21:06


Aloha,

razlika je ponajviše u tome što u kompajliranju kernela možeš da biraš šta će biti sadržano u kernelu, možeš da izbaciš drajvere za uređaje koje nemaš u kompu, da uradiš razne optimizacije za tvoj računar specifično (za cpu, ram, file system, izbaciš sve debuging opcije... baš svašta nešto) i naravno smanjiš veličinu samog kernela :)

Kod nadogradnje koja stiže putem redovnog update-a sistema, sve je već kompajlirano za veliki broj računara i razne konfiguracije, dakle ne samo za tvoj računar.

Lično, ja sam prestao da pravim podešavanja za moj komp, radim nadogradnju kad stigne redovno. Nemam ni vremena da čitam sve opcije a ima ih podosta :) Tada treba i pratiti razvoj kernela, šta se dobija novijim izdanjem, ima li smisla i potrebe raditi nadogradnju kernela.

Ako imaš vremena, možeš da skockaš sebi kernel i taj .config fajl koji dobiješ, možeš da koristiš praktično u bilo kojoj distribuciji koju poželiš da imaš na kompu :)
Use the source, Luke
SSZ irc kanal
Spread the Word, “CHOOSE SLACK! and Don’t look back.”



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 18 Feb 2016, 21:10


Znaš li šta je kompajliranje? Znaš li razliku između izvornog koda i binarnih datoteka? Ako ne, onda je to jako teško objasniti. :)

Ali... Kompajliranje je prevođenje iz jednog oblika (izvorni kod) u drugi (binarni). Slackware paket je arhiva posebno pripremljenih već "prevedenih" (kompajliranih) datoteka. Dakle, taj kernel je neko (Patrick Volkerding) već morao da prevede.

Izvorni kod je dostupan i svako može da ga prevede, ali to je dugotrajan proces. Zato već gotov paket skraćuje vreme. Ali ko želi i dalje može da prevede kernel ukoliko želi da promeni neke od opcija kernela. Te opcije možeš da pogledaš i bez kompajliranja:

Code: Select all

cd /usr/src/linux
su
make menuconfig
Postoji mali milion opcija, od kojih je distributor (u ovom slučaju Slackware tim) izbrao neki opšti izbor opcija koje bi trebale da rade na većini danas dostupnih računarskih konfiguracija.

Kernel se takođe može prilagoditi i specifičnom računaru, ali to je naporan proces u kome moraš da odlično poznaješ i svoj hardver i opcije kernela. U većini slučajeva je izbor koji je distributor napravio za tebe vrlo solidan.

Neke distribucije ne prave izbor za tebe. Na primer jedan od koraka pri instalaciji Gentoo Linuksa je prevođenje Linuks kernela. U tom slučaju ljudi često koriste unapred pripremljene šablone sa nekim opštim opcijama. A oni koji su kroz proces prošli dosta puta možda čak imaju i šablon koji je prilagođen njihovom računaru/potreama.

Još jedna situacija kada bi mogao da poželiš da kompajliraš sopstveni kernel je kada nije dostupan paket za noviju (ili čak stariju) verziju kernela. Tada ćeš morati sam da je napraviš.

Prevođenje i kompajliranje mu dođe isto. Prevođenje se ponegde koristi u domaćoj stručnoj literaturi, a i bolje objašnjava šta se tu dešava.

Dakle: Slackware "txz" paket je već "preveden" i spreman za upotrebu. Ali paket ima već neki svoj izbor opcija. Ako ti to ne odgovara (a da bi to bio slučaj, moraš jako dobro da znaš zašto ti ne odgovara :)), onda ćeš morati da promeniš podešavanja i ponovo prevedeš kernel. Ali najčešće se prevođenje odnosi na novije verzije kernela koje nisu još uvek dostupne kao paket. To može biti bilo koje LTS izdanje kernela, ili čak neko od starijih izdanja kernela u slučaju neke posebne potrebe.

Ukratko.

Iako tu ima još ponešto da se priča. Kernel nije jedna datoteka. Kernel takođe sadrži "module". Uslovno rečeno se može reći da su moduli "drajveri", ali to nije u potpunosti tako. Takođe, promenu opcija je često moguće napraviti i bez ikakvog ponovnog prevođenja. Postoje načini kako podesiti dostupne opcije kernela direktno (menanje opcija u /sys sistemu datoteka i menjanje sysctl ocpija). A ako fali neka opcija koja je dostupna kao modul, moguće je samo prevesti taj modul (i njegove zavisnosti).

Ali za one koji ne znaju šta rade je to samo nepotrebna komplikacija. Podrazumevana podešavanja su i više nego dobra za većinu upotreba. Ko ima poseban razlog za ponovno prevođenje već zna zašto ga ima. Ko ne zna, znači da ni nema potrebu za time.

Itd, itd. To bi to bilo ukratko. Ali ne znam koliko i da li ćeš me shvatiti. :) Elem, bar sam pokušao da razjasnim.



Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 181
Joined: 17 Jul 2015, 17:09
Location: Levo od Albukerkija

Post Napisano: 18 Feb 2016, 22:16


Hvala obojici. :beer:
Možda sam mogao postaviti preciznije pitanje, ali ste odgovorima obuhvatili sve što me zanima.
U dva navrata sam probao kompajliranje, uz Bocketovu pomoć , i za mene je to nepotrebna avantura,
jer nisam ni previše zahtevan, ni vešt korisnik da bih tu nešto čačkao svaki čas. :grin:
Tada se učinilo nužnim zbog problema sa zvukom i grafikom, ali su noviji kernel i mesa rešili problem.
Za mene očigledno važi KISS filozofija - Keep It Simple Stupid! :P
Živeli! :beer:



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 18 Feb 2016, 22:34


Nije mi bila namera da potcenjujem. :) Samo kažem da je u većini slučajeva, kada još uvek ne poznaješ nešto dovoljno, ono što već postoji dovoljno dobro. Osim ako te jako zanima i imaš vremena za eskperimentisanje. Onda samo napred. Linuks se najbolje uči kad nešto zezneš i primoran si da središ. :D Ali u te avanture ne treba ići na "glavnom" računaru. Ili bar ne bez backup-a važnih podataka. :)



Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 181
Joined: 17 Jul 2015, 17:09
Location: Levo od Albukerkija

Post Napisano: 19 Feb 2016, 10:21


Opušteno, to je bila samokritika. :D
Sećaš se osećaja koje dete ima kad dobije novu igračku? To se meni često događa kad sam ispred monitora, ali se prilično uzdržavam da ne pokvarim dečju zabavu. :P


Post Reply

Who is online

Users browsing this forum: No registered users and 13 guests