Prilagodba kernela nije za svakoga. Imajte na umu prije nego isprobate bilo što od toga da može pokvariti vaš sustav.
Postoji hrpa razloga zbog kojih biste htjeli prilagoditi svoj kernel. Možda želite smanjiti svoje kernele samo potrebnim uslugama, pogotovo ako koristite poslužitelj ili namjenski uređaj koji zahtijeva samo osnovne elemente. Možda ćete morati zakrpati kernel i podržavati hardver koji trenutačno nije podržan s kernelom na kojem radite.
Ovaj članak neće objasniti kako zakrpati kernel, samo kako prilagoditi vašu trenutnu. Imat ću još jedan članak koji će vam objasniti kako zakrpiti svoje kernele i neke praktične razloge zašto biste to željeli.
Za početak, moramo utvrditi koju verziju kernela trenutno radimo. Za to ćemo upotrijebiti naredbu uname
$ uname -r
2.6.17-10-generic
Sada moramo instalirati Linux izvor za vaš kernel, imajte na umu da radim 2.6.17-10 kernel, tako da instalacijska linija to odražava. U svrhu ovog članka, možete zamijeniti kernel broj za sve što radite. Također trebamo instalirati biblioteku psovki i neke druge alate kako bismo vam pomogli da se sastavi.
sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot
Ako ste znatiželjni gdje Linux izvor dobiva instaliran, možete koristiti naredbu dpkg da vam kažem datoteke unutar paketa. Evo izvoda na mom sustavu:
$ dpkg -L linux-source-2.6.17 /. /usr /usr/src /usr/src/linux-source-2.6.17.tar.bz2 /usr/share /usr/share/doc /usr/share/doc/linux-source-2.6.17 (trimmed)
Možemo vidjeti da je izvor instaliran u direktorij / usr / src u zipnoj datoteci.
Kako bismo olakšali stvari, stavljamo se u korijenski način pomoću sudo za otvaranje nove ljuske. Postoje drugi načini za to, ali volim ovaj način.
sudo /bin/bash
Sada promijenite direktorij na mjesto izvora kako bismo mogli instalirati. Imajte na umu da možda trebate instalirati program bunzip ako nije instaliran. (to je bio na mom)
cd /usr/src
bunzip2 linux-source-2.6.17.tar.bz2
tar xvf linux-source-2.6.17.tar
ln -s linux-source-2.6.17 linux
Napravite kopiju postojeće konfiguracije kernela kako biste ga koristili za prilagođeni proces sastavljanja. Imajte na umu da je "znak" ispod tilde ~
cp /boot/config-`uname -r` /usr/src/linux/.config
Sada ćemo pokrenuti program koji će nam omogućiti prilagodbu jezgre:
cd /usr/src/linux
make menuconfig
Prvo, idite na opciju Load a Alternate Configuration File i učitajte datoteku.config. (samo pritisnite Enter)
Kada završite s odabirom, kliknite Exit i spremite konfiguraciju kada se to od vas zatraži.
Sada imamo konfiguraciju spremnu za sastavljanje. Prvo ćemo napraviti čistu, samo da bismo bili sigurni da je sve spremno za sastavljanje.
make-kpkg clean
Zatim ćemo zapravo sastaviti kernel. Ovo će trajati duže vrijeme, tako da pronađite nešto zanimljivo.
fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers
Ovaj proces će stvoriti dvije.deb datoteke u / usr / src koje sadrže kernel. Datoteka linux-image **** je stvarna slika kernela, a druga datoteka sadrži Možete instalirati i dpkg. Imena datoteka vjerojatno će biti drugačija na vašem sustavu.
Imajte na umu da kada pokrenete sljedeće naredbe, ovo će postaviti novi kernel kao novi zadani kernel. To bi moglo razbiti stvari! Ako se vaš stroj ne pokreće, možete pritisnuti Esc na izborniku za učitavanje GRUB-a i odabrati svoj stari kernel. Zatim možete onemogućiti kernel u /boot/grub/menu.lst ili pokušati ponovno sastaviti.
dpkg -i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
Sada ponovno pokrenite stroj. Ako sve funkcionira, trebate pokrenuti novi prilagođeni kernel. To možete provjeriti pomoću uname. Imajte na umu da će vaš broj biti različit na vašem računalu.
uname -r
2.6.17.14-ubuntu1-custom
Planiram napisati niz članaka o prilagodbi jezgre, pa se pretplatite na RSS feed za ažuriranja.
Također, u interesu potpunog otkrivanja, saznao sam kako to učiniti iz članka u HowtoForgeu, koji je sjajna web stranica za neke vrlo napredne lekcije na Linuxu. Primjetit ćete da su mnogi koraci u ovom članku slični, iako sam pokušao učiniti ovaj članak više "Ubuntu".