Linux nüv sinin kompilyasiyası
ə
Aşağıdakı mətndə Linux nüvəsinin kompilyasiyası və sistemin yeni nüvə
ilə yüklənməsi qaydaları izah olunur.
Linux nüvəsi açıq kodlu olduğundan onun istənilən versiyasının mənbə
kodlarını kernel.org saytından endirməklə kompilyasiya etmək olar.
Bunun üçün aşağıdakı əməliyyatları yerinə yetirmək tələb olunur:
1. Linuxu endirmək
Əvvəlcə kernel.org saytından Linux nüvəsinin istədiyiniz
buraxılışını endiririk(linux-xxx.tar.gz faylı).
Məsləhət: konfiqurasiya və yüklənmə zamanı problem yaşamamaq üçün
hal-hazırda istifadə etdiyiniz nüvənin versiyasına uyğun və ya ona
yaxın versiyanı endirmək məsləhətdir. Hal-hazırda istifadə etdiyiniz
nüvənin versiyasını uname -r əmri ilə örgənə bilərsiniz.
2. Genişləndirmək
Endirdiyimiz faylı genişləndiririk. Bunun üçün terminaldan linux-
xxx.tar.gz fayl yerləşən qovluğa daxil olub tar -xvvf linux-
xxx.tar.gz əmrini daxil edirik
tar -xvvf linux-xxx.tar.gz
Nəticədə linux-xxx adlı qovluq yaranacaq. Bu qovluqda linuxun mənbə
kodları yerləşir. Genişlənmə nəticəsində yaranmış qovluğa daxil
oluruq:
cd linux-xxx
3. Kanfiqurasiya
Linux nüvəsi xalis nüvə faylından(özək) və nüvəyə sonradan (icra
zamanı) yüklənə bilən modullardan ibarət olur. Modullar nüvənin bir
hissəsi sayılır və birbaşa nüvəyə, ya da ayrı kompilyasiya oluna
bilər. Kompilyasiya prosesinə başlamazdan öncə nüvə konfiqurasiya
olunmalıdır. Bu mərhələdə kompilyasiya etmək istədiyimiz nüvəyə hansı
imkanları əlavə etməyimiz, hansı imkanları ləğv etməyimiz, hansı
hissələrin modul, hansılarının isə özəyə daxil olunması v.s. kimi
suallara cavab veririk. Nüvəni hər-dəfə kompilyasiya etməzdən qabaq
konfiqurasiya etmək tələb olunmur. Lakin ilk dəfə kompilyasiya zamanı
bunu mütləq etməliyik.
Nüvəni konfiqurasiya etmək üçün müxtəlif əmrlər mövcuddur, hər biri
nüvəni müxtəlif üsulla konfiqurasiya etməyə imkan verir. Misal üçün
make defconfig susmaya görə, make menuconfig qrafik konfiqurasiya
(ncurses kitabxanası tələb edir), make oldconfig hazırki istifadə
olunan nüvəyə uyğun konfiqurasiya edir. Yeni başlayanlar üçün sonuncu
daha məsləhətdir. Beləliklə nüvəni konfiqurasiya etmək üçün aşağıdakı
əmri daxil edirik:
make oldconfiq
Nəticədə nüvə konfiqurasiya olunancaq və .config faylı yaradılacaq.
4. Kompilyasiya
Nüvəni konfiqurasiya etdikdən sonra onu kompilyasiya etmək olar.
Bunun üçün make əmrini daxil etməliyik. Birinci dəfə bunu etmək
vacibdir. Çünki bu zaman həm nüvənin özəyi(bzİmage faylı), həm də
modullar kompilyasiya olunancaq. Yeni nüvənin quraşdırılması zamanı
modullar tələb olunur. Lakin növbəti kompilyasiyalar zamanı isə
modulları hər-dəfə kompilyasiya etməyə ehtiyac yoxdur. Beləliklə nüvə
və modulları kompilyasiya etmək üçün make əmrini daxil edirik:
make
Nəticədə nüvənin və modulların kompilyasiyasından ibarət uzun bir
proses başlamış olacaq. Qeyd edim ki, nüvənin buraxılışından asılı
olaraq sizə gcc kompilyatorunu quraşdırma tələb olunur. İlk dəfə
bütün modullar kompilyasiya olunduğuna görə proses xeyli vaxt apara
bilər, lakin sonralar kompüterinizin imkanlarından asılı olaraq
kompilyasiya 5-10 dəq vaxt aparır. Kompiklyasiya uğurla bitərsə yeni
nüvə faylı arch/x86/boot/bzImage faylına yazılır.
İndi qalır sistemi yeni nüvə ilə yükləmək.
5. Quraşdırma
Yeni nüvəni sistemə tanıtmaq üçün make install əmrini daxil edirik.
Qeyd edim ki, bu əmr sizdən inzibatçı səlahiyyətləri tələb edə bilər.
make install
6. Yenidən yükləmə
Artıq yeni nüvə və modullar tələb olunan qovluqlara köçürülüb və
sistemin yüklənmə skriptinə lazımi dəyişiklər quraşdırma skripti
tərəfindən edilmişdir. Yeni nüvəni test etmək üçün kompüteri yenidən
yükləmək və nüvə seçimi zamanı yeni nüvəni seçmək lazımdır. Sistemi
adi qayada yenidən yükləyə bilərik, ya da terminaldan reboot əmrini
daxil edə bilərik:
reboot
Nəticədə komüter yenidən yüklənəcək, GRUB -un (butloader) təqdim
etdiyi nüvələr siyahısından yeni nüvəmizi seçirik və yükləmə
prosesini davam etdiririk. Müxtəlif səbəblərdən yeni nüvənin
yüklənməsində problemlər yarana bilər. Misal üçün tələb olunan
drayverləri nüvə tapa bilmir, konfiqurasiya xətası v.s. Etiraf edək
ki, nüvəni kompilyasiya etmək və sistemi yeni nüvə ilə yükləmək bir
balaca çətinliyi artırılmış işlərdən hesab olunur və bu işi yerinə
yetirəndən müvafiq təcrübə tələb edir. İstənilən halda sitemi yeni
nüvə ilə uğurlu yükləməyə nail olsanız sizə həqiqətən də alqış düşür.
Sistemin hansı nüvə ilə işlədyini yoxlamaq üçün onun buraxılışını
uname -r əmri ilə örgənə bilərsiniz.
Qeydlər:
Adətən Linuxu sisten inzibatçıları və nüvəni örgənmək istəyən gənc
sistem proqramçılar kompilyasiya edir. Hər-iki halda nüvəni dəfələrlə
kompilyasiya etmək tələb olunur. Adi istifadəçi proqramlarından
fərqli olaraq nüvəni test etmək üçün kompüteri yenidən yükləmək tələb
olunduğundan hətta sürətli kompüterlərdə belə bu örgənmə prosesini
xeyli dərəcədə ləngidir. Bundan əlavə test nüvədə hər-hansı xəta
fayllar sistemini zədələyə bilər. Bu isə sizin lazımlı fayllarınızın
itirilməsi v.s. fəsadlarla nəticələnə bilər. Buna görə yeni nüvəni
ayrı kopüterdə test etməyiniz məsləhətdir. Lakin adətən ikinci
kompüter təşkil etməyə elə də imkan olmur, ya da masa üzərində
narahatlıq yaradır. Buna görə sistem proqramçılar virtual maşından
istifadə edir. Mən burada virtual maşının nəcür qurulduğunu və necə
istifadə olunduğunu izah etməyəcəm. Linuxun kompilyasiyası ilə
müqaisədə virtual maşınların quraşdırılması və istifadəsi çox
sadədir. Burada sadəcə virtual maşınla yeni nüvəni necə test etməyə
aid öz istifadə etdiyim qaydanı izah edəcəm. Əlbəttdə bunun üçün
qaydalar çoxdur, lakin məqsəd birdir. Tələb olunan faylı, tələb
olunan ünvana yerləşdirmək.
Beləliklə bizə nə lazımdır:
Virtual maşın simulyasiya proqramı. Mən VirtaulBox proqramını
məsləhət görürəm. Hər-hansı linux distributivini virtual maşına
yükləyirik. Həmin virtaul sistemin nüvəsinə uyğun linux nüvəsnini
kernel.orq saytından endiririk və yuxarıda izah olunan qayda üzrə
kompilyasiya edirik. İndi test nüvəni virtual maşına yükləyib onu
yenidən yükləməliyik. Bunun üçün host maşına appache veb serverini
quraşdırıb, bzİmage faylını (arch/x86/boot) /var/www/html qovluğuna
köçürürük. Daha sonra virtaul maşından wget host_ip_ünvanı/bzImage
əmrini daxil edirik. Hostun ip ünvanın örgənmək üçün terminaldan
ifconfig əmrini daxil edirik. Yeni nüvə (bzİmage faylı) virtual
maşına yükləndikdən sonra onu tələb olunan yerə köçürməliyik. Adətən
bu /boot/grub qovluğu olur. Bundan əlavə Grub butloaderin
konfiqurasiya faylında da dəyişiklik etməliyik. Adətən bu menu.lst
faylı olur. Həmin faylın əvvəlcə nüsxəsini saxlayırıq. Sonra həmin
faylda hazırki nüvəyə uyğun menyunu olduğu kimi köçürürük və sadəcə
nüvə faylının adını test nüvə faylının adı ilə dəyişirik(bzİmage).
Virtual maşını yenidə yükləyirik.
Dostları ilə paylaş: |