Компиляция ядра
🕛 18.06.2009, 16:25
После того как вы сконфигурировали ядро системы, выполнив make xconfig или другую команду, приведенную в начале данной главы, вы должны скомпилировать ядро и установить его модули. Для этого необходимо выполнить следующие команды:make dep make bzlmage make modules make modules_install
Первая из этих команд выполняет подготовительную работу. Слово dep сокращенно обозначает dependency, соответственно при выполнении команды make dep анализируются выбранные вами опции и определяется, какие исходные файлы зависят от других. Если вы пропустите этот шаг, компиляция будет выполнена некорректно.
В результате выполнения второй команды строится основной файл ядра, который имеет имя bzlmage и обычно размещается в каталоге /usr/src/linux/arch/i386/ boot. Существуют различные варианты данной команды. Например, при создании ядра небольшого размера можно использовать команду make z Image (ядро в формате bzlmage дает возможность загрузчику, например LILO, обрабатывать ядро большего размера, чем это позволяет zImage). Как zImage, так и bzlmage представляют собой сжатые варианты ядра. Они являются стандартом для компьютеров х86, но на других платформах вам придется вместо make bzlmage вызвать команду make vmlinux. В результате выполнения данной команды строится несжатое ядро. Каталог, в который помещается основной файл ядра, может отличаться от приведенного выше. Если вы работаете на компьютере, отличном от х86, вместо каталога i386 будет использован каталог, имя которого соответствует текущей платформе. Так, например, на PowerPC этот каталог имеет имя ррс.
Команда make modules, как нетрудно догадаться, компилирует модули ядра. По команде make modules_install файлы, содержащие эти модули, копируются в соответствующие позиции в каталоге /lib/modules. В частности, в каталоге /lib/modules создается каталог, имя которого отражает версию ядра, а в нем, в свою очередь, - подкаталоги для конкретных классов драйверов.
Команды make dep, make bzlmage (или эквивалентную ей команду) и make modules может выполнить любой пользователь, при условии, что он обладает правами чтения и записи данных в каталогах, содержащих исходные коды ядра. Выполнить команду make modules_install может только пользователь root.
В зависимости от установленных опций и от быстродействия компьютера, процесс компиляции ядра может занять от нескольких минут до нескольких часов. Как правило, основной файл ядра создается дольше, чем модули, но если число модулей велико, для их создания может потребоваться больше времени, чем для создания ядра. При компиляции на экран монитора выводится большое число сообщений, описывающих ход обработки исходных файлов. Иногда отображаются предупреждающие сообщения, на которые можно не обращать внимание. При появлении сообщения об ошибке компиляция прерывается.