V článku se píše "takže uvedu jen odkaz na video, kde Rudolf Marek ukazuje, na co si dát pozor", ale odkaz nevidím.
# make oldconfig bych zařadil před # make menuconfig. V případě, že už jsem spustil menuconfig, upraví se mi .config vzhledem na upravené volby v konkrétním jádru.
A taky existují distribuce (např. gentoo, ale i jiné), kde si bez kompilace vlastního jádra nic nenabootujete. Pokud je článek o Ubuntu a jeho derivátech, napsal bych to hned na začátek, ať čtenáře nematete.
Pod Gentoo je také možnost použít generické jádro, genkernel. To se také mimojiné používá při instalaci gentoo když bootuje live systém z cd.
Nicméně by to opravdu bylo hrubé nepochopení filosofie Gentoo - kompilovat každý program na max uzpůsobený potřebám konkrétního pc a pak to zkazit použitím genkernelu :)
"For users who don't want to manually compile their kernels, genkernel is a tool to automate this process. It can help you create a kernel image akin to those available on Gentoo Installation CDs, which are designed to auto-detect the hardware configuration of your system." -> udělá to základní jádro a vše ostatní jako moduly, při bootu pak natahá moduly co jsou potřeba, imho jistá podoba generického jádra.
Ano, máte pravdu, genkernell jsou automatizační skripty na build jádra, genkernel --menuconfig zkompiluje jádro dle configu, genkernell all zkompiluje generické jádro (se vším co je k dispozici) které si při startu detekuje hw a dle toho načítá moduly. Odtud asi plyne nedorozumění. Nemá smysl dále špinit diskusi, jen jsem chtěl říct že i na gentoo je možné relativně snadno nasazovat generická jádra.
Cece, pises pekny blaboly, genkernel je script - nic vic a nic min. Ten script udela presne to, jak ho nakonfigurujes, v gentoo normalne skompiluje kernel v presne takovy konfiguraci, jakou mu predhodis + ho nasledne postne do /boot, pripadne prihodi do konfiguraku gruba ... . => nemusis to delat ruco.
Gentoo navrch dodava nekolik "predpripravenych" konfiguraku kernelu, ktere by mely beznemu userovi pro dany ucel dostacovat, ale muzes si je naprosto libovolne upravit (script ten konfigurak by default pouzije pouze v pripade, ze u jadra zadny dosud nemas).
Live CD/DVD gentoo pak ma kernel kompilovanej s maximem vsemoznych modulu - prave proto, aby nastartovalo a umoznilo obratem pouzivat libovolny HW, ale to nema s genkernelem uz vubec nic spolecnyho, nauc se anglicky.
Kromě Gentoo je snadná (dle mého snadnější) kompilace vlastního kernelu i v Archlinuxu, což dokládá množství Archerů s vlastním optimalizovaným kernelem. Pochopitelně se u této distribuce pozitivně projevuje i balíčkovací systém ABS, díky němuž je kompilace nejen kernelu snadnou záležitostí. Vedlejším efektem je pak nabídka různých uživatelských kernelů v repozitáři AUR, které lze dle popisy vybrat a používat bez nutnosti vlastní kompilace, pokud důvod pro kompilaci vlastního kernelu je shodný.
"Vlastní jádro na desktopovém počítači ztratilo smysl před dlouhou dobou. Výkon i kapacita paměti je dnes taková, že není potřeba odstraňovat nepotřebné moduly, a když se do toho pustíte, jen stěží poznáte, že se něco změnilo."
No nevím... moje zkušennosti říkají něco trochu jiného.
Např na Debianu (distribuci, kterou nejvíce nasazuji a používám) se většinou automaticky instaluje jádro přeložené pro instrukce i686, a to i přesto, že existují buildy i pro jiné - na daném stroji vhodnější - instrukční sady (konkrétně u mě např. core2). Což samo o sobě je hned jedna velká výkonová brzda. Ono je přece jen trochu poznat, když procesor provádí nějakou operaci 10000x/s pomocí tří instrukcí, nebo jen s jednou. Ano procesor to sice zvládne, ale zbytečně se vyžírá jeho čas, který lze potom využít jinde.
Není však ještě vyhráno ani tehdy, když si nainstaluji příslušný build pro daný procesor. Kernel je (alespoň na Debianu) kompilovaný s podporou co největšího množství hw a jeho variací, včetně takových, které nemám možnost v životě potkat. Navíc jsou zapnuty podpory i pro různé hw. konfigurace, např. notebooky, jejichž vypnutí, nejsou-li potřeba, dokáže už docela viditelně urychlit systém. Odstraněním zbytečných modulů a podpor, lze také dosáhnout rychlejšího startu systému - to také není k zahození. Poměrně slušného zrychlení lze dosáhnout i zadrátováním modulů do jádra - Ono zavedení modulu do jádra, až jej potřebuji, je sice hezká idea, ale načítání a následná inicializace taky zabere nějaký ten čas. A navíc některé moduly ke své činnosti vyžadují jiné ( = závisí na nich). Dokonce jsem potkal i hw, který prostě takhle nefungoval. Podle mého názoru je lepší, když si to jádro odbude hned na začátku a pak se s tím už prostě nezdržuje. koneckonců, notebooky a PC-čka zas toho hw tolik nemají, aby většina se dá bez problému "na hulváta" narvat do jádra... :-)
Jinými slovy čím menší a kompaktnější je jádro, tím je systém výkonnější.
A nakonec to nejlepší. Časem jsem přišel na to, že tu je ještě jedna - docela slušná výkonová brzda, totiž API. Konkrétně libC6, která poskytuje základní nízkoúrovňové funkce aplikacím. S trochou nadsázky se dá říci, že je na ni postavené vše nad jádrem. Např, před jejím překladem jsem na HTopu pozoroval jak bývá vytěžováno jedno jádro procesoru téměř na 100%, druhé jelo většinou tak na 4 - 6, max 10%. Zkusil jsem ji zkompilovat na svůj svůj procesor - voalá a už makají obě téměř stejně. Druhou věcí je, že její překlad opravdu trvá, a trvá, a trvá....
A věř mi, že jsem to sakra poznal... Nejen, že rychleji startuje systém, ale třeba i samotný KDE (a je mnohem svižnější), a hodně to bylo poznat i v hrách na Wine ;)
Ano, ale o tom píšu také - zmiňuji se o tom, že existují buildy jader optimalizované a nastavené pro konkrétní architekturu. Tam vidím ty brzdy v distribučních jádrech zase trochu jinde.
Ono jde spíš o to, že autor článku píše hned v úvodu, že kompilace a nastavení vlastního kernelu výkon poznatelně nezvýší. Já tvrdím, že to není tak úplně pravda a vycházím při tom hlavně ze zkušeností na desktopech. Jde spíš o to, jestli má cenu, pro konkrétního uživatele (majitele) daného systému, se s tím rejpat...
Blbost, kernel kompilarorem temer ladit nelze ;-)) Ono C se ani moc neladi, nehlede na to, ze dnes ma kazdy 64bit kernel a tam uz se pocita s modernima vecma, jako SSE2 misto mat. koprocesoru etc.
gcc spise ladi c++ a aplikace, takze kompilovat kernel je blbost a to dokonce i na serveru, do bych k tomu musel mit sakra duvod, kdyz dnes uz spise jen dodavam moduly, ktere prikompiluji do stavajici kernelu.
Jediny duvod je specialni server, kde dam klice a nedovolim zavezt nepodepsane moduly, tedy bezpecnost, zase Oracle neuznava support na svoe produkty, pokud tam neni distribucni kernel,a le tak ono to jde udelat i tak, ze to nepoznaji ;-))
No a vykon ohledne odlehceni ;-)) smesne, dnes mame vse v modulech a nenatahuji ty moduly, ktere nechci, dokonce muzu nektere moduly explicitne zakazat, de fakto krom sbernic a jinych veci dnes jiz scripty, co to resi vytahuji nejdrive vse z PNP, APIC a kde ceho, nejedel trva detekce FDD radice, pokud ji zakazete v modulech, ci v parametru bootu, udestrite nejvice casu ;-)))
Vzdyt dnes uz se i SATA modul taha z modulu a nejsme windows, windows natahne vse, co ma v adresari, linux jen to, co sam detekuje, nebo ma v modules.conf a jeho variaci.
Blbosti pises ty, pokud mam v generickym kernelu hafo kravin, ktery nanic nepotrebuju, tak jeho rekompilaci si pomuzu i na serveru - razantne zmensim pravdepodobnost, ze se neco podela, pokud to z kernelu vyhodim.
Nehlede na to, ze kernel je vzdy kombinaci toho co je zakompilovany primo a toho co je modularni a i modul = nejaky bordel v kernelu, ktery jeho nacteni umoznuje. Na serveru kde v 99% nic nikdy nepripojuju je idealni mit naopak naprosto nemodularni jadro - i z duvodu bezpecnosti.
podivej se na citat od Stevena Rostedta zde:
https://www.abclinuxu.cz/clanky/jaderne-noviny-14.-6.-2012-jak-jadro-rychle-zkouma-retezce
Porovnani gentoo vs binarni distro na ruznem HW - od AMD na skt A po nejnovenjsi Icka - predevsim na slabsich strojich je kompilace vs binarka casto rozdil mezi funguje to - nefunguje to (napr prehravani videa). na vykonosti systemu jako takoveho, se kompilace specificka pro CPU projevuje tak kolem 10%, ale v nekterych specifickych aplikacich to hodi i 50%+.
Co se jadra tyce, jeho redukce pak velmi vyrazne ovlivnuje prave rychlost startu.
Boha jeho, proč kvůli jednomu modulu kompilovat celé jádro?
Na TLDP je ukázkový makefile pro stavění modulů zvenčí: http://tldp.org/LDP/lkmpg/2.6/html/x181.html
Je třeba vzít relevantní část jaderného stromu, z patche hádám adresář drivers/net/wireless/ath/ath9k, dolnit Makefile o data z jaderného stromu a přeložit jenom ten modul s adekvátním patchem.
uplně miluju tyhle linuxový trotli člověk má dotaz oni je odkážou na how to kerý neexistuje a když to sami zjistěj odkážou na google todle už by se mělo zarazit budeš asi ten případ chytrej kec naco se instaluje fakeroot ale že by tě ta věta aby si to napsal zabila... když chceš dělat chytrýho dělej to jinde tady ať se vyjadřujou lidi co chtěj pomoc nebo někomu pomoc