- Компиляция ядра linux debian
- 8.6.1. Управление образами ядра
- Сборка ядра Linux в Debian
- ru Make-Kpkg
- Компиляция и установка ядра Linux из исходников в Debian
- Содержание
- Примечание
- Способ первый. Сборка ядра в .deb пакеты
- Установка необходимых пакетов для компиляции ядра
- Скачиваем исходники ядра
- Накладывание патчей
- Конфигурирование ядра
- Компиляция ядра
- Решение проблемы с созданием initrd.img
- Установка нового ядра
- Способ второй. «traditional» way
- Следующие шаги
- Сборка ядра Debian
Компиляция ядра linux debian
Зачем пересобирать ядро? Обычно этого делать не нужно, так как ядро, устанавливаемое по умолчанию в Debian, подходит для многих конфигураций. Кроме этого, в Debian есть ещё несколько сборок ядра. Поэтому, сначала проверьте, может другой пакет с ядром лучше подходит для вашего компьютера. Однако, полезно пересобрать ядро в следующих случаях:
если установлено специфичное оборудование или возникает конфликт аппаратного обеспечения со стандартным ядром
чтобы задействовать свойства, которых нет в поставляемых сборках ядра (например, поддержка high memory)
для оптимизации ядра, удаляя ненужные драйверы для уменьшения времени загрузки
создания монолитного ядра, без модулей
для установки обновлённого или разрабатываемого ядра
чтобы больше узнать о ядрах linux
8.6.1. Управление образами ядра
Не бойтесь пересобирать ядро. Это забавно и полезно.
Чтобы собрать ядро по технологии Debian, вам потребуются некоторые пакеты: fakeroot , kernel-package , linux-source-2.6 и некоторые другие, которые, вероятно, уже установлены (в /usr/share/doc/kernel-package/README.gz есть полный список).
С помощью этого метода создаётся .deb файл из исходных текстов ядра, а также, если у вас имеются нестандартные модули, делается .deb файл с синхронизированными зависимостями. Это наилучший способ управления образами ядра; в /boot лежит ядро, System.map и журнальный конфигурационный файл от сборки.
Заметим, что вам не обязательно собирать ядро « по технологии Debian » ; но мы пришли к выводу, что управлять ядрами с помощью системы управления пакетами на самом деле безопаснее и легче. Фактически, вы можете получить исходные тексты ядра прямо у Линуса, а не в виде linux-source-2.6 , и собрать ядро с помощью kernel-package .
Заметим, что полную документацию по использованию kernel-package можно найти в /usr/share/doc/kernel-package . Этот раздел содержит лишь краткое руководство.
Далее мы предполагаем, что вы можете делать на своей машине что угодно и распаковываете исходные тексты ядра в домашний каталог [22] . Также мы предполагаем, что у вас ядро версии 3.16. Проверьте, что вы находитесь в каталоге куда хотите распаковать исходные тексты ядра, распакуйте их с помощью команды tar xf /usr/src/linux-source-3.16.tar.xz и перейдите в только что появившийся каталог linux-source-3.16 .
Теперь вы можете выполнить настройку ядра. Если установлены, настроены и запущены X11, то запустите make xconfig , иначе make menuconfig (вам потребуется установить пакет libncurses5-dev ). Внимательно прочитайте интерактивную документацию и внимательно выберите нужные параметры. Если что-то непонятно, обычно лучше включить драйвер устройства (программное обеспечение, которое управляет установленным оборудованием, например, картами Ethernet, SCSI-контроллерами и так далее). Будьте осторожны: для других параметров, не относящихся к определённому аппаратному обеспечению, нужно оставить значения по умолчанию, если вы не понимаете, что они делают. Не забудьте выбрать « Kernel module loader » в « Loadable module support » (не включён по умолчанию). Если его не включить, возникнут проблемы с установкой Debian.
Очистите дерево исходных текстов и сбросьте параметры kernel-package . Для этого выполните make-kpkg clean .
Теперь соберите ядро: fakeroot make-kpkg —initrd —revision=1.0.custom kernel_image . Номер версии « 1.0 » можно изменить; этот номер версии нужен только для отслеживания ваших сборок. Более того, вы можете добавить любое слово вместо « custom » (например, имя машины). Сборка ядра может занять некоторое время в зависимости от мощности машины.
После завершения сборки вы можете установить собранное ядро как обычный пакет. От суперпользователя выполните dpkg -i ../linux-image-3.16- субархитектура _1.0.custom_i386.deb . Часть субархитектура — это необязательная субархитектура, например, « 686 » , зависящая от установленных параметров ядра. dpkg -i установит ядро вместе с некоторыми полезными файлами поддержки. Например, будет правильно установлен System.map (полезен при отладке проблем с ядром), а также /boot/config-3.16 , содержащий параметры сборки ядра. Также, пакет способен автоматически использовать системный загрузчик платформы для обновления загрузки. Если вы создали пакет с модулями, то вам нужно установить и его.
Настало время перезагрузить систему: внимательно прочитайте все предупреждения, которые могут появиться, затем наберите shutdown -r now .
Подробней о ядрах Debian и сборке ядра смотрите в Debian Linux Kernel Handbook. Полная информация о kernel-package лежит в каталоге /usr/share/doc/kernel-package .
[22] Есть несколько мест куда можно распаковывать исходные тексты и собрать своё ядро, но это самый лёгкий способ без необходимости раздачи специальных прав.
Источник
Сборка ядра Linux в Debian
Недавно мне пришлось собрать свежее ядро Linux для использования его в системе Debian 8. Вообще мне не часто пригодится собирать ядро Linux. Во-первых, редко бывают ситуации, когда действительно не обойтись без самостоятельной сборки ядра. Во-вторых, процесс это порой долгий и монотонный.
Но раз уж руки до самостоятельной сборки ядра Linux, я решил коротко описать этот процесс. За исходную конфигурации я взял параметры ядра, которое установлено в Debian 8 по умолчанию. В дальнейшем вы можете изменить параметры ядра Linux в зависимости от ваших целей.
Сборку ядра я выполнял на виртуальной машине. Если вы последуете моему примеру, выделите виртуальной машине максимально возможное количество процессорных ядер. Благодаря этому совету, вы существенно сократите время, затраченное на компиляцию модулей ядра.
Для начала установим все необходимые для сборки ядра Linux пакеты:
Теперь нам необходимо загрузить исходники ядра Linux. Для примера возьмем ядро Linux 4.4, которое я загружаю с сайта kernel.org:
Распаковываем архив с исходниками ядра и переходим в каталог с файлами:
Копируем существующий конфигурационный файл ядра Linux:
Для изменения настроек ядра выполните команду:
Например, можно удалить из ядра драйвера неиспользуемых устройств. Это не повлияет на работу ядра, зато может немного сэкономить время. После изменения настроек сохраните параметры ядра. Затем вы должны очистить дерево исходных текстов и сбросить параметры ядра:
Запускаем процесс компиляции:
В качестве параметров укажите ревизию ядра —revision и количество ядер процессора +1 -j 5 , которые будет задействованы в процессе сборки.
После того как будет собран deb-пакет, установите ядро командой:
Чтобы убедится, что Debian использует новое ядро, после перезагрузки выполните команду:
Будет не лишним проверить наличие ошибок:
Для удаления старого ядра Linux, выполните команду:
Источник
- ru
- Make-Kpkg
Компиляция и установка ядра Linux из исходников в Debian
Материал из Bryansk Linux Users Group и www.rm.pp.ru
В каждом дистрибутиве имеется своя специфика сборки ядра и эта статья ориентирована именно на то, как это сделать в Debian Etch. Так же раскрывается вопрос, как наложить тот или иной патч на ядро, когда необходима поддержка определенной функциональности или нового оборудования в Вашей системе. Статья предназначена в первую очередь на более подготовленных пользователей и нет никаких гарантий, что этот способ будет работать так, как надо и все описанные действия и ответственность ложатся на Вас.
Содержание
- Примечание
- Способ первый. Сборка ядра в .deb пакеты
- Накладываем патчи
- Конфигурирование ядра
- Компиляция ядра
- Установка нового ядра
- Способ второй. «traditional» way
- Проблемы
- Ссылки
Примечание
Будет описано два способа сборки ядра. Первым будет описан вариант сборки .deb пакетов, которые могут быть установлены в Вашей или другой системе. Второй метод, так называемый «traditional» путь.
Способ первый. Сборка ядра в .deb пакеты
Установка необходимых пакетов для компиляции ядра
Для начала обновим списки пакетов:
Установим нужные нам пакеты:
Скачиваем исходники ядра
Переходим в каталог /usr/src, идем на www.kernel.org и выбираем нужную версию ядра. В данном случае будет рассмотрена версия linux-2.6.23.1.tar.bz2. Скачиваем:
Распакуем исходники и создадим символьную ссылку:
Накладывание патчей
Опционально и без необходимости не делайте этого!
Иногда требуются драйвера или средства, которые не поддерживаются в имеющемся ядре, например технология виртуализации или иная другая специфика, которой нет в текущем релизе. В любом случае это исправляется наложением так называемых патчей (если таковые имеются).
Итак, предположим вы скачали необходимый патч (для примера назовем patch.bz2) в /usr/src. Применим скачанный патч на наши исходники (Вы должны быть все еще в каталоге /usr/src/linux):
Первая команда — только тест и никакие изменения не будут применены к исходникам. Если после первой команды не было выдано никаких ошибок, можно выполнить вторую команду для применения патча. Ни в коем случае не выполняйте вторую команду, если после первой были выданы ошибки!
Таким образом Вы можете накладывать патчи на исходники ядра. Например, имеются некоторые особенности, которые доступны только в 2.6.23.8 ядре, а исходники не содержали необходимой функциональности, но выпущен патч patch-2.6.23.8.bz2. Вы можете применить этот патч к исходникам ядра 2.6.23, но не 2.6.23.1 или 2.6.23.3 и т.д. Подробнее об этом можно прочитать на [1]:
Предъисправления (препатчи) — эквивалентны альфа релизам; патчи должны быть применены к исходникам полного предыдущего релиза с 3-х значной версией (например, патч 2.6.12-rc4 может быть применен к исходникам версии 2.6.11, но не к версии 2.6.11.10.)
Это значит, если мы хотим собрать ядро 2.6.23.8, необходимо скачать исходники версии 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.gz) применительно во втором способе «traditonal» путь!
Применяем патч patch-2.6.23.8.bz2 к ядру 2.6.23:
Конфигурирование ядра
Неплохой идеей будет использование существующего конфигурационного файла работающего ядра и для нового. Поэтому копируем существующую конфигурацию в /usr/src/linux:
Далее даем команду,
после которой загрузится графическое меню конфигурации ядра. Выбираем в меню конфигуратора пункт «Load an Alternate Configuration File» и нажимаем «Оk». Затем (если требуется) сделайте необходимые изменения в конфигурации ядра перемещаясь по меню (подробности конфигурации ядра можно найти в www.google.com ). Когда закончите и нажмете «Exit», будет задан вопрос «Do you wish to save your new kernel configuration?», отвечаем утвердительно «Yes».
Компиляция ядра
Сборка ядра выполняется всего в две команды:
После —append-to-version=, можно написать любое название, какое Вам угодно, но оно должно начинаться со знака минус (-) и не иметь пробелов.
Процесс компиляции и сборки .deb пакетов может занят довольно продолжительное время. Все будет зависить от конфигурации ядра и возможностей Вашего процессора.
Решение проблемы с созданием initrd.img
С недавнего времени в Debian появился баг, заключающийся в том, что после установки пакетов с собранными описанным здесь способом ядрами, не создаётся соответствующий им файл /boot/initrd.img. Для исправления применительно к уже установленному ядру, придётся создать initrd.img вручную:
Для решения проблемы «на будущее» – закомментировать, как показано, вторую из процитированных ниже строк в файле /etc/kernel/postinst.d/initramfs-tools:
Установка нового ядра
Когда удачно завершится сборка ядра, в каталоге /usr/src будут созданы два .deb пакета:
linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb — собственно само актуальное ядро и linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb — заголовки ядра, необходимые для сборки других модулей (например при сборке модулей драйвера nVidia). Устанавливаем их:
(Эти пакеты теперь могут быть установлены на другой системе и собирать их заново уже не будет необходимости.)
Всё, установка завершена, меню загрузчика, установка нового RAM-диска и ядра будут сделаны автоматически. Остается только перезагрузиться:
Способ второй. «traditional» way
Выполняем все пункты, описанные выше ДО пункта «Компиляция ядра».
Далее, традиционный способ:
Как обычно, сборка может занять продолжительное время, зависящее от конфигурации ядра и возможностей процессора.
Основной недостаток этого метода — если вы часто обновляете ядра, то через некоторое время их накопится большое количество и захочется удалить неиспользуемые. Чтобы это было сделать проще, можно собрать ядро и другие файлы, которые устанавливаются в систему по командам «make modules_install» и «make install» в deb-пакет (а точнее в два начиная с ядра 2.6.27) подобно первому способу, но воспользуемся здесь скриптами самого ядра:
В каталоге на уровень выше каталога исходников появятся два .deb-файла. Я собирал ядро в каталоге /usr/src/linux-2.6.27.10 и у меня в каталоге /usr/src/ появились файлы
Ядро устанавливается командой
Старые ядра можно удалять, например, из synaptic’a
Следующие шаги
Ядро собрано и установлено, но еще теперь необходимо создать RAM-диск (без которого ядро просто не загрузится) и необходимо обновить загрузчик GRUB. Для этого выполним следующее:
Обновим легко и безболезненно загрузчик:
Всё, загрузчик и новое ядро готовы, остается только перезагрузиться:
Источник
Сборка ядра Debian
Цель данной статьи — показать пользователям, что такое страшное словосочетание как « компиляция ядра » вовсе не так уж и страшно, и даже довольно просто, если всё делать вдумчиво.
Когда и зачем это нужно?
- если ваше оборудование специфично
- для поддержки нестандартных возможностей, не включенных в стандартное ядро
- для оптимизации
- если в силу каких-то причин вам необходима более новая версия ядра
В примере будет разобрана не просто перекомпиляция уже имеющегося ядра, а как раз установка и последующая сборка более нового.
Для подобного дела нужно сначала подготовиться. А именно заняться установкой следующих пакетов:
Если вы решили ставить новое ядро, то идём на kernel.org или зеркало yandex — mirror.yandex.ru/kernel.org/linux/kernel/ — и скачиваем необходимую версию ядра. У нас это linux-3.0.4.tar.bz2 .
Смотрим есть ли пакет linux-source в каталоге /usr/src . В случае с перекомпиляцией он будет, если вы скачали новое ядро, то переместите его туда.
Переходим в каталог и распаковываем архив:
Идём в созданную после разархивирования директорию:
Теперь можно заняться конфигурированием ядра. Автором это было сделано в консоли с остановленным X-Window. В таком случае пишем от рута:
Если желаете конфигурировать в графическом терминале, вам послужит команда
Но понадобится установить дополнительные пакеты/библиотеки, в общем ну её.
С конфигурацией закончили? Тогда собираем наше новенькое ядрышко:
В ‘—revision’ можете выставить свои названия/значения вместо приведённых здесь debian и 3.0.4
Выше был приведён способ сборки ядра в стиле debian way. К сожалению, иногда это может не сработать.
« не сработать » — это когда сборка останавливается с ошибкой компиляции
Довольно известный баг дебиана. Тогда собираем ядро как все люди:
где $VERSION — версия вашего ядра.
После долгого (или не очень) компилирования установим ядро как обычный пакет в debian (для тех, кто собирал по первому способу).
Ядро будет располагаться в директории /usr/src
Мы уже там, так что даём команду:
В итоге при следующем старте системы получаем целых два ядра. Пробуем загрузиться с новым, если напортачили, имеем возможность выбрать из списка загрузки предыдущее ядро.
Источник