Обе стране последње ревизијеПретходна ревизија | Следећа ревизијаОбе стране следеће ревизије |
sr:slackbook:linux_kernel [2013/06/30 11:52 (UTC)] – slackmuz | sr:slackbook:linux_kernel [2013/06/30 17:58 (UTC)] – slackmuz |
---|
<note important>Фајл Слекверовог језгра не садржи //тачку// у називу док је фајл језгра садржи. Уколико заборавите или једноставно прекопирате //config// у ///usr/src//, уместо прекопираног биће коришћен било који //.config// фајл који већ постоји.</note> | <note important>Фајл Слекверовог језгра не садржи //тачку// у називу док је фајл језгра садржи. Уколико заборавите или једноставно прекопирате //config// у ///usr/src//, уместо прекопираног биће коришћен било који //.config// фајл који већ постоји.</note> |
| |
| Уколико желите да користите конфигурациони фајл тренутног језгра као основу, највероватније ћете га наћи у ///proc/config.gz//. Ово је посебан фајл у вези кернела који садржи целокупну конфигурацију језгра у компримованом формату и захтева да је кернел изграђен да га подржи. |
| |
| <code> |
| darkstar:~# zcat /proc/config.gz > /usr/src/linux/.config |
| </code> |
| |
| Сада кад смо креирали стабилну основу конфигурације, време је да начинимо измене које желимо. Целокупан процес изградње кернела од конфигурације до компиловања се врши командом **//make//**(1) и додавањем посебних аргумената. Сваки аргумент врши различиту функцију. |
| |
| Уколико вршите надоградњу на новије издање кернела, дефинитивно ћете желети да користите //oldconfig// аргумент. Ово ће кренути од основног //.config//-а и претражиће недостајуће елементе јер обично новија издања кернела садрже додатне опције. Обзиром да се опције додају у сваком новом издању кернела, ово је најбољи начин. |
| |
| <code> |
| darkstar:/usr/src/linux# make oldconfig |
| scripts/kconfig/conf -o arch/x86/Kconfig |
| * |
| * Restart config... |
| * |
| * |
| * File systems |
| * |
| Second extended fs support (EXT2_FS) [M/n/y/?] m |
| Ext2 extended attributes (EXT2_FS_XATTR) [N/y/?] n |
| Ext2 execute in place support (EXT2_FS_XIP) [N/y/?] n |
| Ext3 journalling file system support (EXT3_FS) [M/n/y/?] m |
| Ext3 extended attributes (EXT3_FS_XATTR) [Y/n/?] y |
| Ext3 POSIX Access Control Lists (EXT3_FS_POSIX_ACL) [Y/n/?] y |
| Ext3 Security Labels (EXT3_FS_SECURITY) [Y/n/?] y |
| The Extended 4 (ext4) filesystem (EXT4_FS) [N/m/y/?] (NEW) m |
| </code> |
| |
| Овде можете видети да је нови кернел који компилујем додао подршку за нови систем датотека: ext4. //oldconfig// је прошао кроз изворну конфигурацију, задржао све старе опције тачно онако како су постављене, и сада ме пита шта ради са новим опцијама. Најбезбедније је одабрати подразумевану опцију, али је ви свакако можете изменити. //oldconfig// је веома згодна алатка за упознавање са новим конфигурационим опцијама, што је идеално за кориснике који само желе да пробају ново издање кернела. |
| |
| За озбиљније задатке, када је конфигурација у питању, ту је мноштво опција. Линукс језгро може бити конфигурисано на три основна начина. Први је //config//, који ће вас водити кроз сваку опцију корак по корак и питаће шта желите да урадите. Ово је тако досадно да овај начин ретко ко користи данас. |
| |
| <code> |
| darkstar:/usr/src/linux# make config |
| scripts/kconfig/conf arch/x86/Kconfig |
| * |
| * Linux Kernel Configuration |
| * |
| * |
| * General setup |
| * |
| Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) [Y/n/?] Y |
| Local version - append to kernel release (LOCALVERSION) [] -test |
| Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] n |
| Support for paging of anonymous memory (swap) (SWAP) [Y/n/?] |
| </code> |
| |
| Срећом, постоје два лакша начина за конфигурацију кернела: //menuconfig// и //xconfig//. Оба поменута креирају програм којим управљате из изборника и који вам омогућује да једноставно обележите или уклоните опцију, без да прелазите кроз сваку корак по корак. //menuconfig// је најкоришћенији метод и њега препоручујем. //xconfig// је користан једино ако желите да компилујете кернел из графичког сучеља у **//X//**-у. Оба су веома слична, тако да ћемо документовати само //menuconfig//. |