Обе стране последње ревизијеПретходна ревизијаСледећа ревизија | Претходна ревизија |
sr:slackbook:linux_kernel [2013/06/30 17:58 (UTC)] – slackmuz | sr:slackbook:linux_kernel [2013/07/02 11:38 (UTC)] (тренутно) – slackmuz |
---|
<note important>This page is still work in progress</note> | |
<note important>Страница је у изради</note> | |
| |
====== Линукс кернел ====== | ====== Линукс кернел ====== |
| |
| |
Срећом, постоје два лакша начина за конфигурацију кернела: //menuconfig// и //xconfig//. Оба поменута креирају програм којим управљате из изборника и који вам омогућује да једноставно обележите или уклоните опцију, без да прелазите кроз сваку корак по корак. //menuconfig// је најкоришћенији метод и њега препоручујем. //xconfig// је користан једино ако желите да компилујете кернел из графичког сучеља у **//X//**-у. Оба су веома слична, тако да ћемо документовати само //menuconfig//. | Срећом, постоје два лакша начина за конфигурацију кернела: //menuconfig// и //xconfig//. Оба поменута креирају програм којим управљате из изборника и који вам омогућује да једноставно обележите или уклоните опцију, без да прелазите кроз сваку корак по корак. //menuconfig// је најкоришћенији метод и њега препоручујем. //xconfig// је користан једино ако желите да компилујете кернел из графичког сучеља у **//X//**-у. Оба су веома слична, тако да ћемо документовати само //menuconfig//. |
| |
| Покретање **make manuconfig** у терминалу представиће вам познато //curses// сучеље као на слици испод. Сваки део кернела има свој подмени кроз који се можете кретати тастерима са стрелицама. |
| |
| {{ :slackbook:make-menuconfig-w.png |make-menuconfig}} |
| |
| <note important>Уколико компилујете кернел који предтсавља исто издање као и ускладиштен Слекверов кернел, морате да подесите //Local version// опцију. Она се налази у //General setup// подменију. Изостављање ове опције ће резултовати преписивањем свих модула коришћених од стране ускладиштених кернела, што може довести до онемогућавања покретања система.</note> |
| |
| Када завршите са конфигурацијом кенрела, време ја за компиловање. Постоји више метода за ово, али је најпоузданији коришћење //bzImage//-а. Када доделите овај аргумент команди **//make//**, компиловање кернела ће почети и видећете мноштво података како се исписују у терминалу све док се процес компиловања не заврши или се не појави нека грешка. |
| |
| <code> |
| darkstar:/usr/src/linux# make bzImage |
| scripts/kconfig/conf -s arch/x86/Kconfig |
| CHK include/linux/version.h |
| CHK include/linux/utsrelease.h |
| SYMLINK include/asm -> include/asm-x86 |
| CALL scripts/checksyscalls.sh |
| CC scripts/mod/empty.o |
| HOSTCC scripts/mod/mk_elfconfig |
| MKELF scripts/mod/elfconfig.h |
| HOSTCC scripts/mod/file2alias.o |
| ... многе линије су изостављене ... |
| </code> |
| |
| Уколико се процес оконча грешком, прво треба да проверите конфигурацију кернела. Грешке при компиловању обично настају због недостатака у //.config// фајлу. Предпоставимо да је све прошло како треба, још нисмо потпуно готови јер треба да изградимо модуле. |
| |
| <code> |
| |
| darkstar:/usr/src/linux# make modules |
| CHK include/linux/version.h |
| CHK include/linux/utsrelease.h |
| SYMLINK include/asm -> include/asm-x86 |
| CALL scripts/checksyscalls.sh |
| HOSTCC scripts/mod/file2alias.o |
| ... многе линије су изостављене ... |
| </code> |
| |
| Ако се компиловање и кренела и модула успешно завршило, ред је да их инсталирамо. Слика кернела треба да се пребаци на безбедну локацију, обично је то **///boot//** директоријум, и треба да јој дате јединстваено име како бисте избегли преписивање других слика кернела које се ту налазе. Традиционално се слике кернела именују са //vmlinuz//, на шта се додаје издање кернела и локална верзија. |
| |
| <code> |
| |
| darkstar:/usr/src/linux# cat arch/x86/boot/bzImage > /boot/vmlinuz-release_number-local_version |
| darkstar:/usr/src/linux# make modules_install |
| </code> |
| |
| |
| Када се све ово оконча, имаћете нову слику кернела смештену у ///boot// и нови директоријум језгарних модула смештен у ///lib/modules//. Како бисте користили ново језгро, мораћете да уређујете //lilo.conf//, креирате //initrd// (само уколико желите да учитате један или више ових језгарних модула при стартовању система), и да покренете **//lilo//** како бисте ажурирали програм за подизање оперативног система. Уколико након рестарта све крене по плану, требало би да имате опцију да стартујете новокомпиловани кернел. Уколико нешто крене по злу, мораћете да потрошите још мало времена да исправите проблем. |
| |
| ====== Навигација кроз поглавља ====== |
| |
| **Претходно поглавље: [[sr:slackbook:tracking_updates|Праћење ажурирања]]** |
| |
| ====== Извори ====== |
| |
| * Оригинални извор: [[http://www.slackbook.org/beta]] |
| * Изворно писали Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson |
| |