Обе стране последње ревизијеПретходна ревизијаСледећа ревизија | Претходна ревизијаСледећа ревизијаОбе стране следеће ревизије |
sr:slackbook:linux_kernel [2013/06/30 17:58 (UTC)] – slackmuz | sr:slackbook:linux_kernel [2013/07/02 10:49 (UTC)] – slackmuz |
---|
| |
Срећом, постоје два лакша начина за конфигурацију кернела: //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//** како бисте ажурирали програм за подизање оперативног система. |