Собираем ядро linux для 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.

Читайте также:  Почему не запускается командная строка от имени администратора windows 10

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

Источник

Сборка и установка ядра под Debian

Тут речь идти будет не просто про компиляцию ядра Linux, а про компиляцию ядра и его сборку в deb-пакет. Потом этим deb’ом можно будет поделиться с знакомыми, похвастаться перед любимой девушкой/парнем или просто, при необходимости, использовать повторно.

Для начала ставим пакеты fakeroot, kernel-package, libncurses5-dev:

Все зависимости будут подтянуты автоматом…
Затем берём нужный архив с kernel.org и сливаем и распаковываем его в /usr/src (берём для примера ядро 2.6.31.4).

Тут есть один момент. Так как у нас уже есть рабочее ядро в установленной системе то, если не хотим выставлять все галочки в конфигурации нового ядра с нуля, берём готовый config либо из /boot либо из /proc:

В итоге имеем предварительную заготовку к конфигурации нашего нового ядра.

Теперь конфигурируем ядро под специфические для нас цели, либо добавляем опции для новых модулей, либо… Одним словом — творчество:

Тут интересно будет отметить, что если мы сразу-же выйдем из меню, то можем увидеть что-то подобное этому:

имеет смысл найти эти опции при конфигурировании нового ядра и посмотреть что да к чему…
Или, как мне подсказали, использовать:

для компиляции новой версии, которая все совпадающие опции трогать не будет, а насчёт остальных, которые изменились, спросит.
Кстати, если кому интересно под X-ами заниматься конфигурированием, то может сделать так:

Важно! Не забываем сказать «Kernel module loader» в «Loadable module support», так как возможны варианты.
Ну всё. Пимпочки поотмечали, кнопочки понажимали, из окошек вышли, новый конфиг сохранили, теперь приступим к сборке. Для начала сделаем:

Увидим что-то наподобие этого:

Ну, а теперь, собственно, собираем ядро:

og.091015.00 — означает лишь ревизию нашей сборки (меньше букв, но больше цифр, иначе получите ошибку в под самый конц сборки и придётся всё повторять с самого начала), а в остальном может быть любой — у кого насколько фантазии хватит 🙂
После того как предыдущая команда нормально выполнится, можно также дать такой «джентельменский набор»:

Читайте также:  Virtual floppy drive windows x64

После этого получим набор из следующих deb-пакетов:

  • linux-image-2.6.31.4_og.091015.00_i386.deb
  • linux-headers-2.6.31.4_og.091015.00_i386.deb
  • linux-manual-2.6.31.4_og.091015.00_all.deb
  • linux-doc-2.6.31.4_og.091015.00_all.deb
  • linux-source-2.6.31.4_og.091015.00_all.deb

располагаться они будут в /usr/src.
Нам остаётся их только установить через dpkg:

и т.д.
Конфигурация к GRUB’у должна будет выполниться автоматически, равно как и собраться initrd.
Финальный шаг:

Источник

Сборка ядра 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, выполните команду:

Источник

Компиляция и установка Linux из исходников в Debian

Впервые опубликовано 2008-10-11.

1. Подготовка

Для начала, следует установить пакеты, необходимые для сборки ядра:

Если вам потребуется перенастроить ядро средствами menuconfig, нужно будет также установить пакет libncurses5-dev .

2. Получение и распаковка исходников Linux

Исходники текущей версии ядра можно скачать с www.kernel.org, они выложены там под названием linux- .tar.bz2 (к примеру, linux-2.6.31.tar.bz2 ). Распаковать их:

После чего перейти в созданный при распаковке каталог.

3. Настройка компилятора

Данные шаги выполнять в том же терминале, где в дальнейшем будет запущена сборка ядра.

Для того, чтобы ускорить компиляцию на многоядерных (или многопроцессорных) системах, можно задать количество одновременно запускаемых процессов для сборки не зависящих друг от друга частей ядра:

При желании использовать для сборки ядра версию gcc , отличающуюся от установленной в системе по умолчанию (например — новее, чтобы получить преимущества от добавленных в ней возможностей, либо старее, чтобы избежать проблем с совместимостью), перед вызовом make-kpkg следует также выполнить (к примеру, для версии gcc 4.4):

Читайте также:  Что такое xbox windows phone

Если же собираем ядро для архитектуры, отличающейся от текущей (к примеру, для 32-битных x86-машин, находясь в системе amd64), следует указать желаемую архитектуру в переменной окружения ARCH:

…и непосредственно при запуске make-kpkg , добавить соответствующий ключ:

4. Настройка будущего ядра

Прежде всего, стоит удостовериться, что в текущем каталоге с исходниками не осталось никаких старых временных файлов и прочего мусора:

Если у вас нет заранее сохранённых .config -файлов, но вы не хотите конфигурировать ядро с нуля, можно взять настройки, использовавшиеся при компиляции текущего ядра:

Либо скачать настроечные файлы официальных ядер Debian вот отсюда.

Запускаем утилиту настройки:

Значения всех уже существовавших в прошлой версии опций ядра будут взяты из старого настроечного файла. Для завершения процесса, достаточно лишь принять решение по опциям, появившимся в версиях новее её.

5. Компиляция ядра и создание deb-пакетов

Для создания пакетов c ядром и заголовочными файлами, нужно выполнить следующее:

Вместо -custom , в качестве обозначения вашего ядра можно указать что угодно, от вашего имени или псевдонима (чтобы не забыть, что это ядро собиралось именно вами), до сугубо технически-полезной информации (что-нибудь в духе -foobarfs-patch8-debug1 ).

6. Установка deb-пакетов

Пакеты по умолчанию кладутся одним уровнем выше текущего каталога с исходниками (в котором вы находились, запуская компиляцию). Таким образом, сразу же после компиляции их можно установить командой:

Источник

Linux: Debian — сборка, установка и запуск ядра 4.12

Собирать и запускать ядро будем в виртуальной машине, например — Virtualbox: создание и запуск VM из консоли (только с диском 20+ гб).

Установка выполняется на:

Подготовка

Проверяем содержимое /boot :

Загружаем исходные коды ядра, последнюю версию находим тут>>>:

Основные каталоги тут:

  • arch — код специфичный для платформы (arm64, ia64, x86, powerpc etc)
  • Documentation : документация
  • drivers : драйвера
  • fs : VFS и файловые системы
  • include : header-файлы ядра
  • init : код загрузки и инициализации ядра
  • ipc : код механизмов IPC
  • kernel : код основных подсистем ядра (планировщик и т.д.)
  • mm : Memory Management код
  • net : сеть

Конфигурирование ядра

Текущая конфигурация ядра хранится в /boot/config-:

Полезные команды для проверки аппаратного обеспечения на машине:

Для настройки параметров сборки ядра есть два варианта — использовать существующий, /boot/config-4.9.0-3-amd64 в данном случае, или создать новый.

Параметры ядра могут быть типа boolean (yes/no) либо tristate (yes/no/module). В случае с tristate параметрами, если параметр указан как module — то соответсвующий модуль будет собран в виде динамически подключаемого модуля ядра, а не скомпилирован в сам файл ядра (yes). tristate используется как правило для драйверов.

При этом некоторые параметры могут содержать не boolean или tristate значения, а данные, которые будут использованы в качестве директив препроцессору перед сборкой ядра.

Для конфигурации ядра можно использовать:

  1. make config : запросит значение для каждого параметра
  2. make menuconfig : тоже, но с псевдо-графическим интерфейсом (либо — make nconfig )
  3. make gconfig : gtk+ интерфейс
  4. make defconfig : задаст default настройки
  5. make oldconfig : сравнивает параметры в текущем файле .config и параметры нового ядра
  6. make localmodconfig : проверит конфигурацию, с которой ядро загужено в данный момент и создаст новую на основе её

Источник

Оцените статью