Зачем пересобирать ядро? Обычно этого делать не нужно, так как ядро, устанавливаемое по умолчанию в Debian, подходит для многих конфигураций. Кроме этого, в дистрибутиве Debian есть ещё несколько сборок ядра. Поэтому, сначала проверьте, может другой пакет с ядром лучше подходит для вашего компьютера. Однако, полезно пересобрать ядро в следующих случаях:
если установлено специфичное оборудование или возникает конфликт аппаратного обеспечения со стандартным ядром
чтобы задействовать свойства, которых нет в поставляемых сборках ядра (например, поддержка high memory)
для оптимизации ядра, удаляя ненужные драйверы для уменьшения времени загрузки
создания монолитного ядра, без модулей
для установки обновлённого или разрабатываемого ядра
чтобы больше узнать о ядрах linux
Не бойтесь пересобирать ядро. Это забавно и полезно.
Чтобы собрать ядро по технологии Debian, вам потребуются некоторые пакеты: fakeroot
, kernel-package
, kernel-source-2.6.8
(последняя версия на время написания) и некоторые другие, которые, вероятно, уже установлены (в /usr/share/doc/kernel-package/README.gz
есть полный список).
С помощью этого метода создаётся .deb файл из исходных текстов ядра, а также, если у вас имеются нестандартные модули, делается .deb файл с синхронизированными зависимостями. Это наилучший способ управления образами ядра; в /boot
лежит ядро, System.map и журнальный конфигурационный файл от сборки.
Заметим, что вам не обязательно собирать ядро «по технологии Debian»; но мы пришли к выводу, что управлять ядрами с помощью системы управления пакетами на самом деле безопаснее и легче. Фактически, вы можете получить исходные тексты ядра прямо у Линуса, а не в виде kernel-source-2.6.8
, , а после собрать ядро с помощью kernel-package
.
Заметим, что полную документацию по использованию kernel-package
можно найти в /usr/share/doc/kernel-package
. Этот раздел содержит лишь краткое руководство.
Далее мы предполагаем, что вы можете делать на своей машине что угодно и хотите распаковать исходные тексты ядра в домашний каталог[9]. Также мы предполагаем, что у вас ядро версии 2.6.8. Проверьте, что вы находитесь в каталоге куда хотите распаковать исходные тексты ядра, распакуйте их с помощью команды tar xjf /usr/src/kernel-source-2.6.8.tar.bz2
и перейдите в только что появившийся каталог kernel-source-2.6.8
.
Теперь вы можете выполнить конфигурацию ядра. Если установлены, настроены и запущены X11, то запустите make xconfig
, иначе make menuconfig
(вам потребуется установить пакет libncurses5-dev
). Внимательно прочитайте интерактивную документацию и внимательно выберите нужные параметры. Если что-то вам непонятно, обычно лучше включить драйвер устройства (программное обеспечение, которое управляет установленным оборудованием, например картами Ethernet, SCSI контроллерами и так далее). Будьте осторожны: для других параметров, не относящихся к определённому аппаратному обеспечению, нужно оставить значения по умолчанию, если вы не понимаете, что они делают. Не забудьте выбрать «Kernel module loader» в «Loadable module support» (не включён по умолчанию). Если его не включить, возникнут проблемы с установкой Debian.
Очистите дерево исходных текстов и сбросьте параметры kernel-package
. Для этого выполните make-kpkg clean
.
Теперь соберите ядро: fakeroot make-kpkg --revision=custom.1.0 kernel_image
. Номер версии «1.0» можно изменить; этот номер версии нужен только для отслеживания ваших сборок. Более того, вы можете добавить любое слово вместо «custom» (например имя машины). Сборка ядра может занять некоторое время в зависимости от мощности машины.
Если требуется поддержка PCMCIA, вам нужно установить пакет pcmcia-source
. Распакуйте сжатый tar файл с правами суперпользователя в каталог /usr/src
(это важно, так как модули должны находиться там где их будут искать, то есть в /usr/src/modules
). Затем, с правами суперпользователя, выполните make-kpkg modules_image
.
После завершения сборки вы можете установить собранное ядро как обычный пакет. От суперпользователя выполните dpkg -i ../kernel-image-2.6.8-
. Часть subarchitecture
_custom.1.0_i386.debsubarchitecture
— это необязательная субархитектура, например «i586», зависящая от установленных параметров ядра. dpkg -i kernel-image...
установит ядро вместе с некоторыми полезными файлами поддержки. Например, будет правильно установлен System.map
(полезен при отладке проблем с ядром), а также /boot/config-2.6.8
, содержащий параметры сборки ядра. Ваш новый пакет kernel-image-2.6.8
достаточно умён, чтобы автоматически использовать системный загрузчик платформы для обновления загрузки, что позволяет не делать перезапуск обновления системного загрузчика вручную. Если вы создали пакет с модулями, например, если у вас есть PCMCIA, то вам нужно установить и этот пакет.
Настало время перезагрузить систему: внимательно прочитайте все предупреждения, которые могут появиться, затем наберите shutdown -r now
.
Полная информация о kernel-package
лежит в каталоге /usr/share/doc/kernel-package
.
[9] Есть несколько мест куда можно распаковывать исходные тексты и собрать своё ядро, но это самый лёгкий способ, без необходимости раздачи специальных прав.