Упатство:Рекомпајлирање на јадрото

Од Сподели wiki
Прејди на: содржини, барај

Mandriva, Red Hat, Debian, Slackware не се Linux. Тоа се дистрибуции кои се базирани на Linux јадрото. Едноставно кажано тоа е комплексен програм кој во основа е земен како главен носач на даемоните, сервисите и сите други работи што работат под еден оперативен систем.

Поради отворената природата на јадрото, тоа ни овозможува него да го конфигурираме (менуваме) со цел да го подобриме и прилагодиме неговото работење. Откако Linux-от ќе стане вашиот „примарен“ оперативен систем, ке забележите дека прекомпајлирањето на јадрото е многу честа работа. Можеби сега ќе се прашате "А зашто треба да го прекомпајлирам мојот јадро, кога и вака работи во ред?". Има три причини зашто треба да го прекомпајлирате вашиот јадро. Прво, можеби имате некој нов хардвер додаден на вашиот компјутер чии модули неможете да ги најдете ни на cd то од дистрибуцијата. Второ, можеби вашиот јадро има некоја грешка (bug), која подоцна е поправена и вие треба да ја имплементирате поправката (bugfix) во вашиот јадро. И последната причина се појавува тогаш кога ке снимите некој нов софтвер кој бара понова верзија на вашиот јадро.

Ресурси

Местото каде што можете да најдете најмногу работи за Linux јадрото е ftp.kernel.org. Ако сакате да ја пробате најновиот јадро, пронајдете ја последната верзија и симнете ја во /usr/src. Потоа во тој директориум отпакувајте го истиот со tar zxf параметрите. Ако немате потреба од најновата верзија, тогаш истите стапки може да ги повторите, само што јадрото ќе го преснимите од соодветното CD.

Конфигурирање и Компајлирање

Влезете во директориумот на отпакуваниот јадро:

 # cd /usr/src/linux

и извршете ја командата:

 # make xconfig

или за понапредни корисници,

 # make menuconfig

Оваа наредба ќе „изгради“ (компилира) некои кориснички менија и програми, со цел да се овозможи полесно конфигурирање. Тоа што ќе го видите на екранот по завршување со работата на оваа наредба, е прозорецот преку кој вие ќе треба да изберете како ќе го конфигурирате (како ќе изгледа) вашиот нов јадро.

Меѓу чекор за оние што сакаат да користат стара или постоечка конфигурација

Доколку сакате да користите конфигурациска датотека која веќе постои, како на пример конфигурација што ја направил некој корисник на кој му верувате, или пак вашата тековна конфигурација што може да служи како добра основа за надградби на опциите, треба да креирате .config датотека во цитираниот директориум.

Ако сте добиле конфигурација од друг корисник, само снимете ја под тоа има во тој директориум. Ако сакате да ја корисите таа од тековниот кернел, треба да ја ископирате:

 # zcat /proc/config.gz > .config 

Ако оваа датотека не постои, треба да извршите

 # modprobe configs 

како root, и да го повторите конфигурањето.

Потоа градењето на кернелот се прави со

 # make oldconfig

По завршување на потребните измени, снимете ја тековната конфигурација и напишете ги следниве наредби:

  • make dep
  • make clean

Првата наредба проверува дали сите елементи - ресурси кои се потребни за изградба на новиот јадро, се на правото место. Make clean наредбата ги "чисти" несаканите датотеки останати од стариот јадро (ако правите мали измени на претходно компилиран јадро, не ја извршувајте оваа команда за да го забрзате процесот). Кога целата оваа процедура ке заврши без да се појави никаков проблем или грешка, тогаш сте спремни да го компајлирате вашиот нов јадро и да го пуштите во употреба. За да почнете со компалирање напишете:

  • make bzImage

Оваа наредба може малку повеќе време да ви одземе, поготово ако имате постар компјутер. Ако и оваа наредба заврши успешно како и претходните две тогаш напишете:

  • make modules.

Инсталација

Инсталацијата е последниот чекор од процесот на компајлирање на вашиот нов јадро. На Intel-базираните системи јадрото се инсталира во /boot директориумот со следнава наредба:

  • cp /usr/src/linux/arch/i386/boot/bzImage /boot/newkernel

Потоа напишете:

  • make modules_install

Ова ќе ги инсталира соодветните модули во /lib/modules. И последно што треба да направите е да го измените /etc/lilo.conf или /etc/grub.conf, во зависност од пуштачот на системот што го користите. Во lilo.conf или grub.conf датотеките додадете ги следниве две линии (man grub, man lilo):

  • image = /boot/newkernel
  • label = new

На следното бутирање на компјутерот изберете го новиот јадро, во случајов new, и ќе ви се пушти новиот јадро. Ако работи добро новокомпајлираниот јадро тогаш поместете ја линијата image = /boot/newkernel на првата позиција од lilo.conf или grub.conf датотеката. Земајќи предвид дека содржината на овој текст е робустна (не е детално објаснет процесот на компајлирање), предлагам за оние кои што сакаат подетално да ја разгледаат оваа процедура, да ги погледнат Kernel HOWTO или документите на ftp://ftp.kernel.org.

Врски