8.5. Сборка нового ядра

Зачем пересобирать ядро? Обычно этого делать не нужно, так как ядро, устанавливаемое по умолчанию в Debian, подходит для многих конфигураций. Кроме этого, в дистрибутиве Debian есть ещё несколько сборок ядра. Поэтому, сначала проверьте, может другой пакет с ядром лучше подходит для вашего компьютера. Однако, полезно пересобрать ядро в следующих случаях:

8.5.1. Управление образами ядра

Не бойтесь пересобирать ядро. Это забавно и полезно.

Чтобы собрать ядро по технологии 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.deb. Часть subarchitecture — это необязательная субархитектура, например «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] Есть несколько мест куда можно распаковывать исходные тексты и собрать своё ядро, но это самый лёгкий способ, без необходимости раздачи специальных прав.