Jedro(Angleščina) jedro) je tisto, okoli česar je zgrajeno vse ostalo. Temu se reče Linux. Zdaj se beseda Linux v vsakdanjem življenju imenuje operacijski sistem, zgrajen na njem, čeprav se na dober način imenuje GNU / Linux (jedro Linuxa in programska oprema iz projekta GNU, ki se razvija že več desetletij).
Ubuntu uporablja jedro z velikim številom popravkov, od katerih nekateri dodajajo nestabilne in eksperimentalne funkcije.
Vsaka izdaja Ubuntuja ima svojo različico jedra. Izdaje LTS od 10.04 so lahko nadgradile jedro na različice, vključene v novejše izdaje.
Različica Ubuntu | Različica jedra |
---|---|
4.10 | 2.6.9 |
5.04 | 2.6.11 |
5.10 | 2.6.13 |
6,06LTS | 2.6.15 |
6.10 | 2.6.18 |
7.04 | 2.6.19 |
7.10 | 2.6.20 |
8,04LTS | 2.6.24 |
8.10 | 2.6.27 |
9.04 | 2.6.28 |
9.10 | 2.6.31 |
10,04LTS | 2.6.32 |
10.10 | 2.6.35 |
11.04 | 2.6.38 |
11.10 | 3.0.4 |
12,04LTS | 3.2 |
12.10 | 3.5 |
13.04 | 3.8 |
13.10 | 3.11 |
14,04LTS | 3.13 |
14.10 | 3.16 |
15.04 | 3.19 |
vilice
Oštevilčevanje različic jedra Ubuntu in na spletnem mestu kernel.org se ne ujemata, saj razvijalci Canonical dodajo mikro različico, ki označuje dodane popravke. Na primer, različica 3.2.0-23 bi pomenila, da jedro temelji na veji 3.2, ki ima 23 popravkov.
V repozitoriju Ubuntu so podprte naslednje vrste jeder:
jedro generic-pae omogoča 32-bitnemu sistemu uporabo do 64 GB celotnega RAM-a, pri čemer za potrebe določenega procesa ne dodeli več kot 4 GB, medtem ko preprosto generično jedro deluje z največ 4 GB RAM-a.
64-bitno jedro omogoča naslavljanje do 1TB pomnilnika, ki ga porabijo procesi.
Če morate posodobiti jedro na novejšo glavno različico (običajno je to posledica dejstva, da nove različice dodajo podporo za novo strojno opremo, odpravijo regresije), lahko uporabite uradno podprt arhiv http://kernel.ubuntu.com/ ~kernel-ppa/mainline/ .
Prevajanje jedra
Gradnja jedra iz izvorne kode zahteva nekaj spretnosti in znanja o delovanju OS.
Preden začnete graditi jedro, morate namestiti naslednje pakete:
Build-essential fakeroot ncurses-dev libssl-dev
Vsa nadaljnja dejanja je treba izvesti v imenu superuporabnika:
sudo suPridobivanje izvorne kode
Izvorno kodo za jedro, ki ga uporablja Ubuntu, lahko dobite z namestitvijo paketa linux-source:
apt-get namestite vir linuxPo namestitvi v imenik /usr/src tam bo arhiv z naslovom linux-source-verify_kernels.tar.bz2.
Prav tako lahko prenesete arhiv z izvorno kodo jedra s spletnega mesta kernel.org.
Ko prenašate jedro s spletnega mesta kernel.org, boste morali nanj namestiti popravke
Konfiguracija
Razpakirajte nastali arhiv in za udobje ustvarite simbolično povezavo do nastalega imenika:
cd / usr/ src tar xjf ./ linux-source-3.2.0.tar.bz2 ln -s ./ linux-source-3.2.0 ./ linux cd ./ linuxZa poenostavitev postopka konfiguracije jedra lahko kopirate nastavitve trenutnega jedra.
V tem vodniku po korakih se boste naučili, kako pravilno zgraditi in namestiti jedro veje >2.6 v družino OS Ubuntu.
1. korak: pridobite izvorno kodo jedra
Izvore jedra Ubuntu lahko dobite na dva načina:
Z namestitvijo arhiva iz repozitorija, s samodejnim prekrivanjem najnovejših uradnih popravkov. S tem boste v trenutno mapo prenesli ~150 MB paket. Če želite pridobiti izvorno različico jedra, katerega različica je nameščena v računalniku, zaženite ukaz: apt-get source linux-image-`uname -r`
Lahko pa namesto `uname -r` podate določeno različico izmed tistih, ki so na voljo v repozitoriju.
Seznam različic, ki so na voljo v repozitoriju, si lahko ogledate tako, da vnesete ukaz: “apt-get source linux-image-” in, ne da bi pritisnili Enter, dvakrat pritisnete tipko Tab.
Ne pozabite omogočiti skupne rabe vira v repozitoriju (Sistemske nastavitve → Programi in posodobitve → Programska oprema Ubuntu → Izvorna koda). To lahko storite s konzole tako, da odkomentirate vrstice, ki se začnejo z deb-src v datoteki /etc/apt/sources.list, in nato posodobite z ukazom: “sudo apt-get update”.
Najnovejša različica jedra je na voljo pri git. Velikost prenesenega paketa je ~500-800 Mb. git klon git://kernel.ubuntu.com/ubuntu/ubuntu-
Kje
Git klon git://kernel.ubuntu.com/ubuntu/ubuntu-xenial.git
Druga jedra
Obstajajo tudi jedra, za katera ni zajamčeno, da bodo delovala pod Ubuntujem. Na primer, obstaja znana težava s številnimi priljubljenimi sistemskimi aplikacijami (zlasti gonilniki NVidia, VirtualBox), ki se po namestitvi prevedejo za nameščeno jedro. Če jih želite namestiti v jedro, ki ni standardno za to različico Ubuntuja (na primer, Ubuntu 16.04 ima jedro 4.4.0), lahko zahtevajo ločeno ročno prevajanje ali posebne popravke in aplikacija morda ne podpira najnovejše različice kernel.org sploh.
Arhiv iz osnovne različice brez popravkov, tj. npr. "4.8.0", "4.8.10": sudo apt-get install linux-source
Razpakirajte nastali arhiv z ukazi:
Cd ~/ tar -xjf linux-2.6.x.y.tar.bz2
Ali v primeru linux-source:
Cd /usr/src tar -xjf linux-source-2.6.x.y.tar.bz2
2. korak: Pridobivanje paketov, potrebnih za gradnjo
Ta korak je potreben le, če se jedro v računalniku gradi prvič.
Zaženite naslednje ukaze za namestitev osnovnih paketov:
sudo apt-get posodobitev sudo apt-get build-dep linux sudo apt-get namestitev kernel-package
konfiguracija- tradicionalni način konfiguracije. Program enega za drugim prikaže konfiguracijske parametre in vas pozove, da za vsakega od njih nastavite drugo vrednost. Ni priporočljivo za neizkušene uporabnike.
oldconfig- konfiguracijska datoteka se ustvari samodejno na podlagi trenutne konfiguracije jedra. Priporočljivo za začetnike.
defconfig- konfiguracijska datoteka se ustvari samodejno na podlagi privzetih vrednosti.
menuconfig- psevdografični vmesnik za ročno konfiguracijo, ne zahteva zaporednega vnosa vrednosti parametrov. Priporočljivo za uporabo v terminalu.
xconfig- grafični (X) vmesnik za ročno konfiguracijo, ne zahteva zaporednega vnosa vrednosti parametrov.
gconfig- grafični (GTK+) vmesnik za ročno konfiguracijo, ne zahteva zaporednega vnosa vrednosti parametrov. Priporočljivo za uporabo v okolju GNOME.
localmodconfig- samodejno ustvarjena konfiguracijska datoteka, ki vključuje samo tisto, kar je potrebno za to posebno napravo. Ko pokličete ta ukaz, bo večina jedra modulirana
V primeru, da želite uporabiti konfiguracija, oldconfig, defconfig, localmodconfig oz localyesconfig, ne potrebujete več dodatnih paketov. V primeru preostalih treh možnosti je treba namestiti tudi dodatne pakete.
menuconfig zaženite naslednji ukaz:
sudo apt-get namestite libncurses5-dev
Za namestitev paketov, potrebnih za uporabo gconfig zaženite naslednji ukaz:
sudo apt-get namestite libgtk2.0-dev libglib2.0-dev libglade2-dev
Za namestitev paketov, potrebnih za uporabo xconfig zaženite naslednji ukaz:
Pred Ubuntu 12.04: sudo apt-get install qt3-dev-tools libqt3-mt-dev
sudo apt-get namestite libqt4-dev
Korak 3. Uporaba obližev
Ta korak ni obvezen.
Uradni popravki so bili že uporabljeni za vire, če je bilo jedro pridobljeno z zgoraj opisanim ukazom:
apt-get source linux-image-`uname -r`
Če še nikoli niste uporabljali popravkov za izvorno kodo, zaženite naslednji ukaz:
namestitveni popravek sudo apt-get
Ta ukaz bo namestil program popravkov, ki je potreben za, morda ugibate, uporabo popravkov. Zdaj prenesite datoteko popravka v mapo, kjer ste razpakirali jedro. To je lahko arhivska datoteka (npr. Bzip2 ali Gzip) ali nestisnjena datoteka popravka.
Na tej točki se domneva, da ste datoteko že shranili v mapo, kjer ste predhodno razpakirali jedro in namestili program popravkov.
Če je bila datoteka, ki ste jo prenesli, v formatu Gzip (*.gz), zaženite naslednji ukaz, da izvlečete vsebino arhiva:
Gunzip popravek-2.6.x.y.gz
Če je bila datoteka, ki ste jo prenesli, v formatu Bzip2 (*.bz2), zaženite naslednji ukaz, da izvlečete vsebino arhiva:
Bunzip2 popravek-2.6.x.y.bz2
kjer je 2.6.x.y različica popravka jedra. Ustrezni ukazi bodo datoteko popravka razpakirali v izvorno mapo jedra. Pred namestitvijo popravka se morate prepričati, da bo deloval brez napak. Če želite to narediti, zaženite ukaz:
Popravek -p1 -i popravek-2.6.x.y --dry-run
kjer je 2.6.x.y različica popravka jedra. Ta ukaz bo simuliral uporabo popravka brez spreminjanja samih datotek.
Če med njegovim izvajanjem ne pride do napak, se lahko spremembe varno izvajajo v samih datotekah. Če želite to narediti, zaženite ukaz:
Popravek -p1 -i popravek-2.6.x.y
kjer je 2.6.x.y različica popravka jedra. Če ni bilo napak, je bil popravek uspešno uporabljen za izvorno kodo.
Pozor! Preden uporabite popravek, naredite naslednje: 1. Prenesite s http://www.kernel.org popravek iste različice kot vaši viri. 2. Zaženite naslednji ukaz: patch -p1 -R kjer je 2.6.x.y različica popravka in vaših virov Z zagonom ukaza se pomaknite do mape, v katero ste razpakirali jedro Cd ~/linux-2.6.x.y kjer je 2.6.x.y različica jedra, ki ste ga prenesli. Na tej točki bi se morali že odločiti za način konfiguracije jedra (če ne, jih preverite v razdelku Pridobivanje potrebnih paketov za gradnjo. Glede na to zaženite naslednji ukaz, da zaženete način konfiguracije po vaši izbiri: konfiguracija- tradicionalni način konfiguracije. Program enega za drugim prikaže konfiguracijske parametre in vas pozove, da za vsakega od njih nastavite drugo vrednost. Pokliče ga ukaz make config oldconfig- konfiguracijska datoteka se ustvari samodejno na podlagi trenutne konfiguracije jedra. Priporočljivo za začetnike. Pokliče ga ukaz make oldconfig defconfig- konfiguracijska datoteka se ustvari samodejno na podlagi privzetih vrednosti za to posebno arhitekturo. Pokliče ga ukaz make defconfig menuconfig- psevdografični vmesnik za ročno konfiguracijo, ne zahteva zaporednega vnosa vrednosti parametrov. Priporočljivo za uporabo v terminalu. Pokličite: make menuconfig gconfig in xconfig- grafični konfiguratorji za ročno konfiguracijo. Pokliči: make gconfig Naredite xconfig oz localmodconfig in localyesconfig- avtomatski konfiguratorji. Konfiguracija je ustvarjena na podlagi trenutno klicanih modulov in delujočega jedra. Razlika med tema dvema konfiguratorjema je v številu modulov. V prvem primeru bo vsaj 50% jedra, v drugem pa ne več kot 2 modula. Pokliči: make localmodconfig Naredite localyesconfig oz Po klicu se zažene ustrezen konfiguracijski program. Izvedite potrebne nastavitve glede na vaše potrebe, shranite konfiguracijsko datoteko in nadaljujte z naslednjim korakom. Priprave so torej končane. Zdaj lahko začnete postopek gradnje jedra. Če želite to narediti, zaženite ukaz: Fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers #-j<количество ядер процессора>+1
Gradnja jedra lahko traja od 20 minut do nekaj ur, odvisno od konfiguracije jedra in tehničnih parametrov računalnika. Gradnja na večjedrnem procesorju je lahko nekajkrat hitrejša Ko je gradnja jedra končana, se bosta v domači mapi prikazala dva paketa deb. Treba jih je namestiti. Če želite to narediti, zaženite ukaze: Cd ~/ sudo dpkg -i linux-image-2.6.x.y-custom_2.6.x.y-custom-10.00.Custom_arc.deb sudo dpkg -i linux-headers-2.6.x.y-custom_2.6.x.y-custom-10.00. Custom_arc.deb kjer je 2.6.x.y različica vgrajenega jedra, arc je arhitektura procesorja (i386 - 32-bit, amd64 - 64-bit). in poiščite prav ta dva paketa. Ubuntu za pravilno delovanje potrebuje začetno sliko diska RAM. Če ga želite ustvariti, zaženite ukaz: sudo update-initramfs -c -k 2.6.x.y-custom kjer je 2.6.x.y različica jedra za gradnjo. Če želite, da je nova različica jedra na voljo za izbiro, ko se računalnik zažene, zaženite naslednji ukaz: sudo update-grub Datoteka menu.lst (za različico GRUB 1) ali grub.cfg (za različico GRUB 2) bo posodobljena, da bo odražala nameščene operacijske sisteme in slike jedra. Prevajanje in namestitev jedra uspešno zaključena! Zdaj znova zaženite računalnik in poskusite zagnati sistem z novim jedrom. Če želite zagotoviti, da je sistem zagnan z novim jedrom, zaženite ukaz Uname -r Prikazala bo uporabljeno različico jedra. Če ste naredili pravilno, lahko izbrišete izvorne arhive in celoten imenik linux-2.6.x.y v domači mapi. S tem boste sprostili približno 5 GB na trdem disku (velikost sproščenega prostora je odvisna od možnosti gradnje). S tem je postopek sestavljanja in namestitve zaključen, čestitamo! Že dolgo sem si želel napisati članek o tem, kako zgraditi jedro Linuxa. In zdaj je prišel ta trenutek. Pravzaprav, zakaj bi gradili jedro, če distribucija ponuja popolnoma uporabno jedro? Na primer, če želite uporabiti najnovejše gonilnike in rešitve, ki so na voljo v novem jedru, ko je iz distribucije na voljo samo stara veja. Tudi, na primer, da ga prilagodite svoji strojni opremi in malo pospešite delo. 3.11 sem naredil zase, ker vsebuje komplet popravkov, ki izboljšajo delo z grafičnimi karticami ATI, in sem lastnik ene od njih. O sestavljanju jedra je bilo napisanih veliko člankov, zato se ne bom spuščal v podrobnosti, ampak bom napisal samo, kako sam sestavim jedro. Najprej morate dobiti arhiv z izvornimi kodami želene različice jedra Linuxa. Na spletnem mestu https://www.kernel.org/ lahko prenesete želeno različico. Postopek gradnje in namestitve bom opisal na primeru različice 3.11.0. Priporočljivo je, da jedro zgradite v imeniku, ki je posebej ustvarjen za ta namen, pod neprivilegiranim uporabnikom. Sestavljam v mapo ~src/linux/linux-različica Pred prevajanjem se morate prepričati, da so nameščene vse odvisnosti, potrebne za gradnjo, in da je v imeniku za prevajanje približno 3 GB prostega prostora. Tukaj je seznam paketov za uspešno prevajanje (za Debian/Ubuntu): gcc, narediti- Potrebno orodje za montažo in povezovanje. Po možnosti ena od najnovejših razpoložljivih različic gcc. libncurses5-dev- potrebno za delovanje menuconfig ccache- omogoča hitrejše ponovno sestavljanje Če želite uporabljati grafični konfigurator jedra, morate namestiti tudi pakete za razvoj QT, npr. libqt4-dev,
g++, pkg-config. Lzop, lz4c- če vas zanimajo alternativni mehanizmi stiskanja jedra in initramfs. Predpostavlja se, da je trenutni imenik imenik nepakiranega jedra. Ko je okolje za gradnjo pripravljeno, je treba ustvariti konfiguracijo jedra. Trenutno konfiguracijo si lahko ogledate takole: Cat /boot/config-`uname -r` Zcat /proc/config.gz Načeloma lahko uporabite trenutno konfiguracijo tako, da jo uredite v enem od konfiguracijskih programov. Kopirajte ga v imenik, kjer je razpakiran arhiv z jedrom, in ga preimenujte v .config cp /boot/config-`uname -r` .config Všeč mi je xconfig, zdi se mi najbolj priročen. Naredite xconfig Predhodno kopirano se naloži samodejno .config, ki nam služi kot osnova za konfiguracijo. Nasvetov za nastavitev jedra je veliko, priporočam le izbiro različice procesorja, onemogočanje gonilnikov strojne opreme, ki jih ni, lahko izberete tudi dodatne module, kot je zram in algoritem stiskanja, jaz sem izbral lz4 kot najhitrejšega. Ko shranite konfiguracijo, lahko začnete s prevajanjem. Če ste preleni za ročno konfiguriranje jedra, je možno samodejno konfiguriranje z uporabo informacij o naloženih modulih: make localmodconfig Zdaj je drugi glavni korak prevajanje jedra in modulov. Izvedeno v enem ukazu: Naredi -j4 CC="ccache gcc" module bzImage Kje -j4 ustreza številu procesorskih jeder v vaši konfiguraciji. Prevajanje ne bo trajalo dolgo, če je strojna oprema dovolj zmogljiva in se ne uporablja konfiguracija distribucijskega jedra. Na mojem prenosnem računalniku s procesorjem AMD Phenom P820 in šestimi gigabajti RAM-a prevajanje traja približno pol ure. Zadnji korak je namestitev jedra in modulov. Sudo sed -i.bak "s/MODULES=most/MODULES=dep/" /etc/initramfs-tools/initramfs.conf To je potrebno za zmanjšanje velikosti datoteke initrd z vključitvijo samo modulov, potrebnih za nalaganje. Namestitev lahko izvedete tudi z enim ukazom: sudo make modules_install namestite Ali pa vse namestite ročno. Najprej moduli sudo make modules_install Nato jedro Različica=`awk "NR<=3 {printf "%s.",$NF}" < Makefile | sed "s/\.$//"`
tako dobimo različico jedra iz datoteke Makefile sudo cp arch/`uname -m`/boot/bzImage /boot/vmlinuz-$version sudo cp .config /boot/config-$version sudo cp System.map /boot/System.map-$version sudo update-initramfs - c -k $različica sudo update-grub Nazadnje prilagam skript za avtomatizacijo postopka. Med konfiguracijo konfiguracije lahko postavi nekaj vprašanj, če želite privzeto odgovoriti, morate samo pritisniti Enter. Srečno kompilacijo. Začetniki, ki se šele začenjajo seznanjati z Linuxom, si najprej zastavijo razumno vprašanje: kako in kje prenesti Linux? Zdi se, da je to zapleteno, vendar se vprašanje vseeno poraja in mi ga pogosto postavljajo. Za začetek morate najverjetneje prenesti distribucijo Linuxa. Ker splošno besedo Linux lahko razumemo kot jedro Linuxa, pa tudi vsako distribucijo Linuxa. V nadaljevanju članka si bom dovolil, da včasih uporabim obe besedi kot enakovredni. Vprašanje izbire distribucije presega obseg te opombe. Distribucije Linuxa najdete v imeniku distribucij Linuxa. Recimo, da ste izbrali distribucijo zase in jo želite prenesti. Vsako distribucijo Linuxa je običajno mogoče brezplačno prenesti v različnih formatih. Ponavadi so to datoteke ISO. Datoteka ISO je slika CD-ja ali DVD-ja. Najpogosteje se CD ali DVD različice razlikujejo le po tem, da imajo DVD različice več različne programske opreme, ki jo lahko namestite neposredno z diska, bodisi med postopkom namestitve Linuxa ali kadarkoli po namestitvi. Linux je mogoče prenesti tudi za različne platforme. Običajno razvijalci distribucij ponujajo 32-bitne in 64-bitne različice Linuxa. Katerega boste izbrali, je odvisno predvsem od bitne globine vašega procesorja. Praviloma so vsi sodobni procesorji 64-bitni. 32-bitne različice Linuxa se običajno imenujejo i386, 64-bitne različice pa x86_64 (za procesorje Intel) in amd64 (za procesorje Amd). Morda boste naleteli tudi na imena, kot so arm, mips, ppc in druga. To so različice Linuxa, izdelane posebej za procesorje Arm, Mips, PowerPC. Domači računalniki in prenosniki običajno uporabljajo procesorje Intel ali Amd, zato vas bodo najverjetneje zanimali i386, x86_64, amd64. Torej ste se odločili za distribucijo Linuxa. Preprosto morate iti na spletno mesto razvijalca distribucijskega kompleta in tam poiskati razdelek za prenos, imenujemo ga lahko nekaj podobnega kot Prenosi, Pridobite, Pridobite ISO, Prenesite, Naložite. Eden najhitrejših načinov za prenos Linuxa je uporaba torrent datotek. Deluje na naslednji način. Prenesete torrent datoteko zase in uporabite torrent odjemalec, da začnete prenašati sam Linux. Torrent odjemalce za Linux najdete v imeniku programske opreme pod "Torrent Clients". Ista različica distribucije Linuxa lahko gostuje na različnih strežnikih (zrcalih). Bližje kot vam je strežnik geografsko in večja kot je njegova pasovna širina, hitreje boste prenesli Linux. Priljubljeno rusko ogledalo, kamor lahko prenesete Linux, je ogledalo iz Yandexa: https://mirror.yandex.ru ali FTP različica ftp://mirror.yandex.ru Tukaj je nekaj krajev, kjer lahko brezplačno prenesete priljubljene distribucije Linuxa: Vsako različico izvorne kode za jedro Linuxa lahko vedno prenesete s kernel.org. Če vam nobena od možnosti ne ustreza, potem lahko v vašem mestu najdete navdušence, ki se bodo strinjali, da vam dajo disk Linux. Poleg tega je zdaj veliko različnih skupnosti Linuxa. Dober dan, bralci in gostje. V nadaljevanju zadnje objave o tem, danes vam želim povedati, kako zgraditi in konfigurirati lastno jedro. To vemo že iz prejšnje objave Jedro Linuxa ima minimalne funkcije in strojno podporo, vendar lahko po potrebi razširimo zmogljivosti jedra z moduli jedra. Kaj bi lahko bilo potrebno gradnjo ali obnovo lastnega jedra? Na primer, da omogočite / onemogočite nove funkcije ali stara posodobitev jedra na novejšega s podporo za nove funkcije ali samo za poskuse, kot v našem primeru. Lahko na več načinov pridobiti vire: Rad bi poudaril, da ime izvornega arhiva ali paket, izgleda nekako takole: linux-source-2.6.26 oz kernel-source-2.6.18. Iz izpisa drugega primera je razvidno, da nam apt pri namestitvi izvornih kod iz repozitorija ponudi namestitev drugih povezanih paketov, brez katerih jedra ni mogoče zgraditi. torej. Po pridobivanje virov enega od zgornjih načinov (kopiranje arhiva (v prvem primeru) in namestitev paketa (v drugem primeru)), dobimo v imeniku /usr/src/- arhiv z istim imenom linux-source-2.6.26.tar.bz2. Nato moramo razpakirati arhiv melon z ukazom: tar -xjf linux Kernel-server:~# cd /usr/src/ kernel-server:/usr/src# ln -s linux-2.6.36.1 linux kernel-server:/usr/src# ls -l lin* lrwxrwxrwx 1 root src 14. dec. 3 16:31 linux -> linux-2.6.36.1 -rw-r--r-- 1 root src 70236745 3. dec 15:57 linux-2.6.36.1.tar.bz2 Preden poskušate zgraditi in konfigurirati, morate pregledati datoteko Spremembe ki se nahaja v imeniku Dokumentacija. Med drugim vsebuje seznam paketov, potrebnih za gradnjo jedra, s številkami različic. Prepričajte se, da so ti paketi nameščeni (če ste izvorne kode namestili z upraviteljem paketov, so najverjetneje potrebni paketi že nameščeni). Nepakirano drevo podimenikov vsebuje datoteko Makefile. makefile vsebuje različne cilje gradnje za konfiguriranje možnosti jedra, gradnjo jedra in njegovih modulov, namestitev modulov in gradnjo paketov RPM ali deb. Najnovejše različice izvorne kode jedra vam omogočajo, da uporabite pomoč za izdelavo, da dobite kratko pomoč za vsak cilj. Pri starejših sistemih si je bilo treba ogledati dokumentacijo ali pogledati makefile. Spodaj je del rezultatov pomoči za izdelavo: Kernel-server:/usr/src/linux-2.6.36.1# make help Cilji čiščenja: čisto - Odstranite večino ustvarjenih datotek, vendar ohranite konfiguracijo in zadostno podporo gradnje za izdelavo zunanjih modulov mrproper - Odstranite vse ustvarjene datoteke + konfiguracijo + različne varnostne kopije distclean - mrproper + odstranite datoteke varnostne kopije in popravkov urejevalnika Cilji konfiguracije: config - Posodobite trenutno konfiguracijo z uporabo vrstično usmerjenega programa nconfig - Posodobite trenutno konfiguracijo z uporabo programa, ki temelji na meniju ncurses menuconfig - Posodobite trenutno konfiguracijo z uporabo programa, ki temelji na meniju xconfig - Posodobite trenutno konfiguracijo z uporabo front-end gconfig, ki temelji na QT - Posodobite trenutno konfiguracijo z uporabo front-end oldconfig, ki temelji na GTK - Posodobite trenutno konfiguracijo z uporabo priloženega .configa kot osnove ....... Poleg tega, če je iz nekega razloga treba uporabiti popravek za jedro, ga je treba vnaprej prenesti in vnesti v imenik /usr/src. Če vam ni treba popraviti jedra, lahko varno nadaljujete s konfiguracijo. Jedro je popravljeno na naslednji način: Strežnik jedra: /usr/src/linux-2.6.36# gzip -cd ../patch-2.6.xx.gz | popravek -p1 #ali Print-server:/usr/src/linux-2.6.36# bzip2 -dc ../patch-2.6.xx.bz2 | obliž-p1 Trenutna konfiguracija jedra je shranjena v datoteki .config. Ta datoteka je oblikovana z uporabo enega od ciljev konfiguracije (cilj je, preprosto povedano, ukaz, izveden v obliki narediti tarčo): Cilj konfiguracije uporablja vmesnik ukazne vrstice za odgovore na številna vprašanja o ustvarjanju ali posodabljanju datoteke .config. Po mojem mnenju je v primerjavi z namenom uporabe menija - zelo neprijeten kos. cloneconfig Kopirajte trenutne nastavitve jedra v datoteko .config. Ta cilj je bil opuščen in ga je v novejših jedrih nadomestil . (priročno za dodajanje novih funkcij v trenutno jedro) Cilj menuconfig uporablja menijski program, zgrajen na vrhu ncurses, za ustvarjanje ali posodobitev datoteke .config. Odgovoriti morate le na vprašanja za elemente, ki jih želite spremeniti. Ta pristop je nadomestil staro konfiguracijo. Zažene se v oknu terminala na daljavo ali lokalno. Tarča nconfig uporablja menijski program, zgrajen na vrhu ncurses, za ustvarjanje ali posodobitev datoteke .config. Ta različica temelji na vendar ima bolj moderen videz. Dodano po izdaji jedra Linuxa 2.6.35. Odgovoriti morate le na vprašanja za elemente, ki jih želite spremeniti. Zažene se v oknu terminala na daljavo ali lokalno. Cilj xconfig uporablja sistem grafičnega menija, ki temelji na vmesniku QT, ki ga uporablja namizje KDE. Cilj gconfig uporablja sistem grafičnega menija, ki temelji na vmesnem delu GTK, ki ga uporablja namizje GNOME. oldconfig Cilj oldconfig vam omogoča, da ustvarite konfiguracijo z uporabo obstoječe datoteke .config, ki ste jo ustvarili prej ali iz drugega sistema. Konfiguracijsko datoteko za vaš sistem lahko na primer kopirate iz /lib/modules/$(uname -r)/build/.config v /usr/src/linux. Ko to storite, lahko po potrebi uporabite enega od ciljev konfiguracijskega menija za spremembe. Poleg tega bo pri izvajanju tega ukaza, če je bilo v novo jedro dodanih veliko novih funkcij, postavljenih veliko vprašanj o nastavitvi novih parametrov. (priročno za dodajanje novih funkcij v trenutno jedro) Spet lahko seznam vseh ciljev ukazov vidite s tipkanjem pomagati. Torej, začnimo s konfiguracijo. Najbolj priročno za konzolo, IMHO - . Po zagonu ukaza sem dobil grozno sporočilo: Kernel-server:/usr/src/linux-2.6.36.1# make menuconfig *** Ni mogoče najti knjižnic ncurses ali *** zahtevanih datotek glave. *** "make menuconfig" zahteva knjižnice ncurses. *** *** Namestite ncurses (ncurses-devel) in poskusite znova. *** znamka: *** Napaka 1 znamka: *** Napaka 2 Nekaj manjka, je pomislil Stirlitz (C) ... Verjetno paket z imenom ncurses in ker so to knjižnice, se najverjetneje paket začne z lib. Prišel sem v skladišče: Kernel-server:/usr/src/linux-2.6.36.1# apt-cache search ncurses | grep ^lib libcunit1-ncurses-dev - Knjižnica za testiranje enot za C (ncurses) -- razvojne datoteke libcunit1-ncurses - Knjižnica za testiranje enot za C (ncurses) libncurses-gst - Vezave Ncurses za GNU Smalltalk libkaya-ncurses-dev - Vezava Ncurses za kaya libkaya-ncursesw-dev - vezava Ncurses za kaya libcurses-perl - vmesnik Curses za Perl libcurses-widgets-perl - vmesnik pripomočka Curses za Perl libruby-extras - sveženj dodatnih knjižnic za Ruby libruby1.8-extras - sveženj dodatnih knjižnic za Ruby 1.8. - ruby Razširitev za ncurses C knjižnico libncurses-ruby - ruby Razširitev za ncurses C knjižnico lib64ncurses5-dev - razvijalske knjižnice za ncurses (64-bit) lib64ncurses5 - deljene knjižnice za terminalsko rokovanje (64-bit) libncurses5-dbg - razhroščevanje ging/profiliranje knjižnic za ncurses libncurses5-dev - razvijalske knjižnice in dokumenti za ncurses libncursesw5-dbg - odpravljanje napak/profiliranje knjižnic za ncurses libncursesw5-dev - razvijalske knjižnice za ncursesw libcurses-ocaml-dev - OCaml vezave za knjižnico ncurses libcurses-ocaml - Povezave OCaml za knjižnico ncurses libggi-target-terminfo - splošni grafični vmesnik TermInfo cilj prikaza libncurses5 - knjižnice v skupni rabi za nadzor terminala libncursesw5 - knjižnice za nadzor terminala (podpora za dvobajtne znake) Ta vrstica: libncurses5-dev - razvijalske knjižnice in dokumenti za ncurses
se mi je zdelo potrebno. Namestimo: Kernel-server:/usr/src/linux-2.6.36.1# apt-get install libncurses5-dev Branje seznamov paketov ... Končano Gradnja drevesa odvisnosti Branje informacij o stanju ... Končano NOVI paketi za namestitev: libncurses5-dev 0 posodobljeno , nameščen je 1 nov paket, 0 paketov je označenih za odstranitev in 5 paketov ni posodobljenih. Prenesti morate 1546 kB arhivov. Po tej operaciji se bo količina zasedenega prostora na disku povečala za 6599 kB. Prejeto:1 http://ftp.debian.org lenny/main libncurses5-dev 5.7+20081213-1 Prejeto 1546kB v 4s (344kB/s) Izbor predhodno neizbranega paketa libncurses5-dev. (Branje baze podatkov ... Trenutno nameščenih 18098 datotek in imenikov.) Razpakiranje paketa libncurses5-dev (iz datoteke .../libncurses5-dev_5.7+20081213-1_i386.deb) ... Obdelava sprožilcev man-db ... Paket libncurses5-dev (5.7+20081213-1) se konfigurira ... Končano, poskusimo : Hura! Vidimo želeni konfiguracijski meni jedra. Sledi prikaz različnih možnosti, ki vam omogočajo vključitev komponent v jedro ali ustvarjanje modulov. Ko je možnost označena, lahko s preslednico krmarite po možnostih za to komponento. Za aktiviranje možnosti pritisnite l onemogočiti -- nČe želite ustvariti modul, kliknite m. Izhod iz menija: Esc Esc. Spodaj bom podal opis glavnih razdelkov konfiguracije spremembe (sčasoma se bo dopolnjeval): Podal sem zelo kratek opis razdelkov konfiguracije jedra. Natančneje glede izbire nastavitev bom verjetno naredil ločeno objavo, ker je trenutna zrasla v ogromno velikost. Najboljši opis nastavitev make menuconfig sem našel tukaj Gentoo Handbook. Od sebe bom rekel, da bi bilo logično izvesti make oldconfig (s tem kopirati current.config nameščenega OS), nato pa zagnati make menuconfig in onemogočiti vse nepotrebne funkcije (recimo, da sem onemogočil podporo za WiFi, datoteko jfs sistemi, ki jih ne potrebujem itd.). In na splošno sem zagovornik mnenja, da se je treba v zelo skrajnih primerih ukvarjati z optimizacijo jedra, ko je zmogljivost OS odvisna od zmogljivosti strojne opreme. V skladu s tem lahko z zmanjšanjem velikosti jedra (onemogočanje nepotrebnih modulov, vključno z njimi v jedru + onemogočanje nepotrebnih funkcij) povečate zmogljivost za 1-2%. In na sodobnih strežnikih mislim, da to (rekonfiguracija jedra) ni posebej pomembno. Zdaj, ko smo jedro konfigurirali, smo ga pripravljeni sestaviti. Če ne veste, kakšno je stanje gradbenega drevesa, zaženite make clean, preden začnete konfigurirati novo jedro. Za temeljitejše čiščenje zaženite make mrproper (s tem boste odstranili datoteko .config kot tudi nekatere druge datoteke, uporabljene v procesu gradnje, make mrproper). Kot del preskusne konfiguracije je priporočljivo, da daste novemu jedru posebno ime, ki vam bo omogočilo preprosto prepoznavanje. Če želite to narediti, morate nastaviti vrednost lokalne različice in aktivirati možnost Samodejno pripni informacije o različici v niz različice v ustrezni vrstici razdelka Splošne nastavitve. Načeloma za izdelavo jedra niso potrebna nobena korenska dovoljenja, čeprav namestitev novega jedra ta pooblastila so potrebna. Če želite začeti graditi jedro 2.6, morate zagnati make. Če želite začeti graditi jedro 2.4, morate zagnati 3 ukaze: Ko je jedro zgrajeno, ga je treba namestiti. Pred namestitvijo morate zagnati make modules_install, da namestite module jedra v nov podimenik /lib/modules. Po namestitvi modulov morate zagnati make install, da namestite novo jedro in začetni disk RAM (začetni disk RAM) v imeniku /boot ter posodobite konfiguracijo zagonskega nalagalnika. Rad bi vas opozoril na dejstvo, da je potreben začetni RAM disk (začetni RAM disk ali initrd) samodejno ustvarjen med gradnjo. Če ga morate ustvariti ročno, lahko to storite z ukazom mkinitrd. Po izvedbi make install je treba konfiguracijsko datoteko zagonskega nalagalnika posodobiti. Toda iz neznanega razloga se mi je posodobil po ukazu update-grub. Na tem bom končal. To je zelo velik članek. V bližnji prihodnosti ga bom poskusil stisniti.Korak 4. Konfiguracija prihodnje gradnje jedra
Korak 5 Gradnja jedra
6. korak Namestitev slik in glav jedra
Če ne poznate točnega imena paketa, navedite datoteke v domačem imeniku z ukazom7. korak Ustvarite začetni disk RAM
Korak 8 Posodabljanje konfiguracije zagonskega nalagalnika GRUB
Korak 9 Preverjanje jedra
Odločite se za distribucijo Linuxa
Kateri Linux prenesti (i386, x86_64, amd64 ...)
Kje prenesti distribucijo Linuxa
Distribucija Kje lahko prenesem
ubuntu Debian
Arch Linux
Gentoo
OpenSUSE
Fedora Slackware
In drugi Imenik distribucij Linuxa (na strani vsake distribucije je povezava do uradne strani).
Kje prenesti jedro Linuxa
Kako naročiti disk Linux
Pridobivanje izvornih kod jedra in priprava na konfiguracijo
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.1.tar.bz2 cp linux-2.6.36.1.tar.bz2 /usr/src/ Konfiguracija
Odsek
parameter
Opis
Splošna nastavitev
Ta razdelek vam omogoča, da svojemu jedru dodate identifikacijski niz, pa tudi številne atribute, ki niso povezani z nobenim razdelkom, vendar jih je vseeno treba opisati.
Omogoči podporo za nalaganje modulov
Ta razdelek vsebuje možnosti za določitev, ali bo vaše jedro podpiralo module in ali se bodo samodejno nalagali in razlagali. Možnost "Omogoči podporo za nalaganje modulov" mora biti omogočena.
Vrsta in značilnosti procesorja
Ta razdelek vsebuje konfiguracijske možnosti, specifične za to vrsto procesorja. Tukaj lahko izberete procesor in družino procesorjev, ki jih bo podpiralo vaše jedro. Podporo za jedro lahko omogočite ali onemogočite za različne funkcije, ki jih ponuja ta procesor. Prepričajte se, da ste omogočili podporo za simetrično večprocesno obdelavo, če ima vaš sistem več kot en procesor ali če procesor podpira hipernitnost. Poleg tega mora biti za boljše delovanje grafičnega podsistema v sistemih z video karticami AGP ali PCI omogočena podpora za MTRR.
Možnosti upravljanja porabe energije
Ta razdelek vsebuje možnosti, povezane z upravljanjem porabe energije. Še posebej so pomembni za prenosnike. Poleg spremljanja stanja napajanja lahko tam najdete orodja za nadzor in spremljanje parametrov, kot sta temperatura ali stanje hladilnega ventilatorja.
Možnosti vodila (PCI itd.)
Ta razdelek vsebuje možnosti za računalniška vodila, ki jih podpira vaš sistem, kot so PCI, PCI Express in PC Card. Tukaj lahko omogočite podporo za datotečni sistem /proc/pci, ki se lahko uporablja v povezavi s pogosto uporabljenim ukazom lspci.
Formati izvedljivih datotek / Emulacije
Ta razdelek vsebuje možnosti glede podpore za različne oblike binarnih datotek. Podpora za "ELF binary" mora biti omogočena. Poleg tega lahko omogočite podporo za binarne datoteke DOS, da jih izvajate pod DOSEMU, kot tudi druge binarne datoteke, ki jih podpirajo ustrezni ovoji, kot so Java™, Python, Emacs-Lisp itd. Končno, za 64-bitne sisteme, ki podpirajo 32-bitne bitne emulacije, boste morda želeli omogočiti podporo za 32-bitne aplikacije.
mreženje
Razdelek o omrežnih nastavitvah je precej velik. Tukaj lahko omogočite osnovno podporo za vtičnice, omrežno povezovanje TCP/IP, filtriranje omrežnih paketov, usmerjanje in premoščanje ter podporo za različne protokole, kot so IPV6, IPX, Appletalk in X.25. Poleg tega lahko omogočite podporo za brezžični, infrardeči in amaterski radio.
gonilniki naprav
Tudi ta del je zelo velik. Tukaj lahko omogočite podporo za veliko število naprav strojne opreme, vključno s pogoni IDE/ATAPI ali SCSI ali bliskovnimi pogoni. Omogočite DMA za vaše naprave IDE; drugače bodo delovali v počasnejšem načinu PIO. Če želite imeti podporo za več naprav, kot sta RAID ali LVM, morajo biti omogočene tudi ustrezne možnosti. Tukaj lahko omogočite tudi podporo za vzporedna vrata za delo s tiskalnikom prek tega vmesnika. Tukaj konfigurirate široko paleto podprtih omrežnih naprav za različne omrežne protokole, ki smo jih konfigurirali prej. Poleg tega boste tukaj našli možnosti za podporo naprav za zajem zvoka in videa, naprav USB in IEEE 1384 (Firewire) ter različnih vrst naprav za nadzor strojne opreme. V razdelku Znakovne naprave boste morda želeli omogočiti podporo za tiskanje z vzporednimi vrati in podporo za neposredno upodabljanje.
Gonilniki vdelane programske opreme
Ta razdelek vsebuje več možnosti, povezanih z namestitvijo in posodabljanjem BIOS-a, kot je uporaba funkcij Dell System Management v nekaterih sistemih Dell.
Datotečni sistemi
Ta razdelek je namenjen konfiguriranju datotečnih sistemov, ki jih želite podpirati v svojem jedru, ne glede na to, ali so prevedeni kot moduli ali ne. Tukaj lahko najdete tudi datotečne sisteme za izmenljive diskovne naprave (diskete, CD-je in DVD-je) ter omrežne datotečne sisteme, kot so NFS, SMB ali CIFS. Podpora za različne vrste odsekov in nacionalnih kodiranj Podpora za materni jezik se nahaja tudi v tem razdelku.
Vdor v jedro
Ta razdelek vam omogoča, da omogočite način za odpravljanje napak jedra in izberete, katere dodatne funkcije bodo omogočene.
varnostne možnosti
Ta razdelek je namenjen konfiguriranju varnostnih možnosti ter omogočanju in konfiguriranju SELinux (Security Enhanced Linux).
Kriptografske možnosti
V tem razdelku lahko konfigurirate podporo za različne algoritme šifriranja, kot so MD4, DES in SHA256.
knjižnične rutine
Tukaj lahko določite število algoritmov za izračun kontrolne vsote (CRC), ki bodo vključeni v jedro ali prevedeni kot moduli.
Gradnja jedra
narediti dep
naredi bzImage
naredi module
Prvi ustvari potrebne datoteke odvisnosti. Drugi zbira jedro. In zadnji zbira module.Namestitev novega jedra