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