- Сборка ядра при помощи утилиты cl-kernel
- Назначение
- Возможности
- Использование
- Опции сборки ядра
- Примечание
8. Сборка ядра при помощи утилиты cl-kernel¶
Назначение¶
Утилита cl-kernel предназначена для автоматической сборки ядра. Она входит в пакет sys-apps/calculate начиная с версии 1.3.3. Позднее утилита была переписана и добавлена в пакет calculate-builder.
Возможности¶
- сборка ядра;
- генерация initramfs;
- прописывание ядра в автозагрузку.
Использование¶
В портежах Gentoo есть несколько версий Linux ядер, решающих различные задачи. Все пакеты с исходным кодом ядра находятся в категории sys-kernel, поэтому вы можете легко их увидеть, выполнив команду:
eix -C sys-kernel
Для сборки нового ядра достаточно установить пакет с исходным кодом ядра либо обновить текущее, командой:
USE="symlink" emerge -1uD virtual/linux-sources
Флаг USE="symlink" создаст символическую ссылку /usr/src/linux на директорию с исходным кодом ядра. Виртуальный пакет virtual/linux-sources установит последнюю версию используемого в системе ядра.
Для сборки ядра выполните:
cl-kernel
Программа выполнит следующие действия: выберет необходимую конфигурацию ядра (в зависимости от версии и архитектуры), скомпилирует ядро с модулями, сформирует initramfs, произведет установку ядра в директорию /boot. При этом к предыдущему ядру и initramfs-файлу будет добавлен суффикс "old".
Всего используется две версии ядра - серверная и десктопная. Конфигурации под каждую версию ядра хранятся в оверлее, в локальной директории /var/lib/layman/calculate/profiles/kernel.
После сборки ядра следует пересобрать пакеты модулей, связанных с ядром (такие как nvidia-driver, madwifi-ng и др.). Для этого выполните команду:
module-rebuild -X rebuild
Для вступления изменений в силу следует перезагрузить компьютер.
Опции сборки ядра¶
Для изменения параметров ядра перед компиляцией используйте опцию --menuconfig:
cl-kernel --menuconfig
Для изменения extraversion ядра используется опция --extraversion:
# при компилировании ядра 2.6.31 полное имя ядра будет 2.6.31-test cl-kernel --extraversion test
Для указания директории с исходниками ядра, используйте опцию --kerneldir, при этом символическая ссылка /usr/src/linux будет изменена.
# скомпилируем ядро из директории /usr/src/linux-2.6.31-gentoo-r9 cl-kernel --kerneldir /usr/src/linux-2.6.31-gentoo-r9
По умолчанию настройки ядра берутся из оверлея Calculate. Для указания своей конфигурации ядра используйте опцию --kernel-config (или --use-own-config)
# используем конфигурацию ядра из /root/kernelconfig/config-2.6.31 cl-kernel --kernel-config /root/kernelconfig/config-2.6.31 # используем конфигурацию из каталога ядра cl-kernel --kerneldir /usr/src/linux --use-own-config
При выполнении команды cl-kernel перед сборкой производится действие make clean, при этом ядро вместе с модулями собирается с нуля. Если в этом нет необходимости (например, нужно докомпилировать один или несколько модулей) используйте опцию --no-clean.
cl-kernel --use-own-config --menuconfig --no-clean
Примечание¶
Если новое ядро по каким-либо причинам будет работать некорректно, всегда можно загрузиться с предыдущего ядра. Для этого выберите в меню загрузчика kernel /boot/vmlinuz.old и initrd /boot/initrd.old