Kernel

Në 90% të rasteve, kernel i prekompiluar që gjeni në shpërndarjen GNU/Linux në përdorim, plotëson të gjitha kërkesat e kompjuterit tuaj.

Megjithatë, për konfigurime të personalizuara (rritja e shpejtësisë së ekzekutimit, ndonjë dispozitiv jo i zakonshëm, apo thjesht dëshira për të mësuar) do t'ju duhet shpeshherë të kompiloni zemrën e sistemit operativ Linux, kernel-in.

Duhet të keni parasysh që jeni duke luajtur me "jetën e pacientit": sistemi mund të mos niset më ose mund të mos punojë si duhet.

Jeni të paralajmëruar!!!

Të kompilojmë Kernel 2.6 nën Debian (Sarge).

Po supozoj që ndodheni në sistemin që kemi instaluar së bashku këtu.

Futemi në sistem si përdorues root.
Instalojmë çfarë nevoitet për të kompiluar kernel e Linux:

# apt-get update
# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2


desktop:~# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
Reading Package Lists... Done
Building Dependency Tree... Done
wget is already the newest version.
bzip2 is already the newest version.
Suggested packages: kernel-source libdb3-dev docbook-utils
The following NEW packages will be installed: fakeroot kernel-package libncurses5-dev0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 1466kB of archives.
After unpacking 7385kB of additional disk space will be used.
Get:1 http://debian.fastweb.it stable/main fakeroot 1.2.10 [70,5kB]
Get:2 http://debian.fastweb.it stable/main kernel-package 8.135 [357kB]
Get:3 http://debian.fastweb.it stable/main libncurses5-dev 5.4-4 [1038kB]
Fetched 1466kB in 3s (416kB/s)
Selecting previously deselected package fakeroot.
(Reading database ... 88224 files and directories currently installed.)
Unpacking fakeroot (from .../fakeroot_1.2.10_i386.deb) ...
Selecting previously deselected package kernel-package.
Unpacking kernel-package (from .../kernel-package_8.135_all.deb) ...
Selecting previously deselected package libncurses5-dev.
Unpacking libncurses5-dev (from .../libncurses5-dev_5.4-4_i386.deb) ...
Setting up fakeroot (1.2.10) ...
Setting up kernel-package (8.135) ...
Setting up libncurses5-dev (5.4-4) ...

Shkojmë tek /usr/src:
#cd /usr/src
Marrim versionin e fundit të Linux kernel source (ose versionin që ju intereson) nga http://www.kernel.org/pub/linux/kernel/v2.6/:

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.4.tar.bz2


desktop:/usr/src# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.4.tar.bz2
--16:19:30-- http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.4.tar.bz2 => `linux-2.6.15.4.tar.bz2'
Resolving www.kernel.org... 204.152.191.37, 204.152.191.5
Connecting to www.kernel.org[204.152.191.37]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 39,846,379 [application/x-bzip2]
100%[====================================>] 39,846,379 79.41K/s ETA 00:0016:26:38 (91.16 KB/s)
- `linux-2.6.15.4.tar.bz2' saved [39846379/39846379]

File i saposhkarkuar është buruesi i kernel në formatin e zip-uar tar.bz2: shpaketojmë këtë file.

# tar xjfv linux-2.6.15.4.tar.bz2

Si rrjedhim do të kemi krijimin e një kartele me emrin linux-2.6.15.4


desktop:/usr/src# ls -la
total 38972
drwxrwsr-x 3 root src 4096 2006-02-18 16:32 .
drwxr-xr-x 12 root root 4096 2006-02-18 15:06 ..
drwxrwxrwx 19 root root 4096 2006-02-10 08:22 linux-2.6.15.4
-rw-r--r-- 1 root src 39846379 2006-02-10 08:47 linux-2.6.15.4.tar.bz2

Krijojmë një lidhje simbolike me emrin linux:

# ln -s linux-2.6.15.4 linux


desktop:/usr/src# ls -la
total 38972
drwxrwsr-x 3 root src 4096 2006-02-18 16:37 .
drwxr-xr-x 12 root root 4096 2006-02-18 15:06 ..
lrwxrwxrwx 1 root src 14 2006-02-18 16:37 linux -> linux-2.6.15.4
drwxrwxrwx 19 root root 4096 2006-02-10 08:22 linux-2.6.15.4
-rw-r--r-- 1 root src 39846379 2006-02-10 08:47 linux-2.6.15.4.tar.bz2

Futemi tek kartela me buruesit e kernel:

# cd linux

M.q.s. është hera e parë që kompilojmë një kernel linux, do të marrim si pikë nisje konfigurimin e kernel ekzistues: për të kontrolluar versionin në përdorim japim komandën

# uname -a


desktop:/usr/src# uname -a
Linux desktop 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux

Pra jemi duke përdorur kernel linux 2.6.8-2-386 dhe konfigurimi i tij zakonisht ndodhet në kartelën /boot me emrin config-2.6.8-2-386 (pra file i kunfigurimit ndodhet në pozicionin /boot/config-2.6.8-2-386)
Është ky file konfigurimi që do të përdorim si bazë për kompilimin tonë:

# make menuconfig

menuconfig

Zgjedhim Load an Alternate Configuration File dhe japim pozicionin e file tonë të vjetër të konfigurimit:

menuconfig

menuconfig

Do të lexohet konfigurimi ekzistues i kernel-it tonë dhe, po të dëshironi mund të filloni të shfletoni menunë dhe të ndryshoni konfigurimet (p.sh. të hiqni suportin për hardware që nuk ekziston në kompjuterin tuaj, etj...etj.: këtu nuk mund të jepen udhëzime, pasi secili ka kompjuterin e tij!).

Mbasi të keni mbaruar ruani ndryshimet dhe dilni:

menuconfig

Tani japim komandat:

# make-kpkg clean
# fakeroot make-kpkg --initrd --revision=desktop.1.0 kernel_image

Nëse për një arsye apo tjetër kompilimi ndalon me ndonjë mesazh gabimi, jepni komandën:

# make clean

dhe rifilloni proçesin e kompilimit nga komanda:

# make menuconfig

Ndryshoni konfigurimin e kernel në korrispondim me mesazhet e gabimit dhe rikompiloni.
Në rast se gjithçka shkon si duhet (pa mesazhe gabimi), pakoja e re .deb e kernel do të jetë krijuar në /usr/src me emrin kernel-image-2.6.15.4_desktop.1.0_i386.deb, gati për t'u instaluar:

# cd ..# ls -la

desktop:/usr/src# ls -la
total 52268
drwxrwsr-x 3 root src 4096 2006-02-18 18:21 .
drwxr-xr-x 12 root root 4096 2006-02-18 15:06 ..
-rw-r--r-- 1 root src 13591994 2006-02-18 18:21 kernel-image-2.6.15.4_desktop.1.0_i386.deb
lrwxrwxrwx 1 root src 14 2006-02-18 16:37 linux -> linux-2.6.15.4
drwxrwxrwx 21 root root 4096 2006-02-18 18:21 linux-2.6.15.4
-rw-r--r-- 1 root src 39846379 2006-02-10 08:47 linux-2.6.15.4.tar.bz2

Tani jemi gati për të instaluar kernel-in tonë të ri Linux:

# dpkg -i kernel-image-2.6.15.4_desktop.1.0_i386.deb

Automatikisht, mbas instalimit, do të ndryshohet edhe menuja e GRUB për të pasqyruar versionin e ri të kernel:

menu e GRUB

Futuni me kernel-in e ri, provoni që gjithçka funksionon si duhet dhe, për të liruar vend, mund të çinstaloni versionin e vjetër të kernel:

# dpkg -P kernel-image-2 2.6.8-16sarge1

Mbasi të keni krijuar eksperiencën e nevojshmë, filloni të rikompiloni çdo ditë kernel-in tuaj, duke e pastruar nga të gjithë zërat e panevojshëm për makinën tuaj, deri sa të arrini rezultatet më të kënaqshëm: ushtrimi do t'ju japë kënaqësi dhe eksperienca do të rritet çdo ditë e më shumë.