- Ядро линукс для дебиан
- 8.6.1. Управление образами ядра
- Сборка и установка ядра под Debian
- ru Make-Kpkg
- Компиляция и установка ядра Linux из исходников в Debian
- Содержание
- Примечание
- Способ первый. Сборка ядра в .deb пакеты
- Установка необходимых пакетов для компиляции ядра
- Скачиваем исходники ядра
- Накладывание патчей
- Конфигурирование ядра
- Компиляция ядра
- Решение проблемы с созданием initrd.img
- Установка нового ядра
- Способ второй. «traditional» way
- Следующие шаги
- Обновление ядра Debian
- Обновление ядра 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] Есть несколько мест куда можно распаковывать исходные тексты и собрать своё ядро, но это самый лёгкий способ без необходимости раздачи специальных прав.
Источник
Сборка и установка ядра под 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 — означает лишь ревизию нашей сборки (меньше букв, но больше цифр, иначе получите ошибку в под самый конц сборки и придётся всё повторять с самого начала), а в остальном может быть любой — у кого насколько фантазии хватит 🙂
После того как предыдущая команда нормально выполнится, можно также дать такой «джентельменский набор»:
После этого получим набор из следующих 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.
Финальный шаг:
Источник
- 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
Ядро — это один из самых важных компонентов системы, именно здесь реализуется поддержка оборудования, выполняются основные действия по управлению процессами, памятью, сетью и другие действия. Новые версии ядра имеют максимальную поддержку современного оборудования, содержат исправления уязвимостей и многое другое. Поэтому очень важно, чтобы система использовала самые новые версии ядра.
Но Debian — это стабильный дистрибутив, поэтому в нем изначально применяется уже устаревшая версия. Но если захотеть, то можно установить более новую. В этой статье мы рассмотрим как выполняется обновление ядра Debian. Какие программы лучше использовать и так далее.
Обновление ядра Debian
Когда вы используете Debian, вы должны понимать, что самые новые версии пакетов вы не всегда можете получить. Один из таких компонентов — ядро. Вы можете взять ядро, собранное для других дистрибутивов, например, Ubuntu, но там использованы свои патчи, и скорее всего, оно не будет правильно работать в Debian. Самым простым способом получить новое ядро в этой системе будет использование тестовых репозиториев, таких, как backports и experimental. Например, сейчас самая новая версия Debian — 9. В ней используется ядро 4.9. Но в репозитории experimental есть ядро 4.13, на данный момент, это самая новая версия, доступная на Kernel.org.
Давайте рассмотрим как установить ядра из exprimental и backports. Пакеты из backports тоже свежие, но не настолько как из experimental, поэтому они более стабильны. Сначала рассмотрим backports, а уже затем experimental. Нам нужно добавить репозиторий в систему, для этого откройте файл /etc/apt/sources.list и добавьте туда такую строку:
deb http://ftp.debian.org/debian/ stretch-backports main non-free contrib
Обновите список пакетов:
Дальше нужно обновить список пакетов, а затем смотрим, какие версии ядра появились в системе:
apt search linux-headers
Как видите, в репозитории backports уже есть ядро 4.11, в то время как в официальном стабильном репозитории только 4.9. Теперь мы можем обновить ядро debian:
sudo apt install linux-headers-4.11-bpo.1 linux-image-4.11-bpo.1
После завершения установки ядра будет автоматически обновлен загрузчик Grub и вам останется только перезагрузить компьютер чтобы изменения вступили в силу. Обратите внимание, что если вы используете ноутбук, то вам еще нужно будет установить прошивку firmware из репозитория backports. Например, для iwlwifi:
sudo apt -t wheezy-backports install firmware-iwlwifi
Если вы хотите самую новую версию ядра, то вам придется использовать репозиторий experimental, но тут дела обстоят немного сложнее. Это экспериментальный репозиторий, поэтому перед добавлением нужно указать настройки чтобы по умолчанию он вообще не использовался и активировался для определенного пакета вручную. Для этого добавьте в файл /etc/apt/preferences:
Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 102
Мы установили такой приоритет, что он намного ниже стандартных репозиториев, а значит ничего случайно не обновится и не установится.
Теперь добавьте репозиторий в систему:
sudo vi /etc/apt/sources.list
deb http://deb.debian.org/debian experimental main
И обновите список пакетов:
sudo apt update
Проверьте, сработала ли настройка приоритета:
Дальше ищем доступные версии ядра:
sudo apt search linux-headers
Тут мы уже видим новую версию ядра Linux 4.13 из репозитория experimental, о которой я говорил выше. Дальше мы можем ее установить:
sudo apt install linux-headers-4.13 linux-image-4.13
Опять же, после установки будет автоматически обновлен Grub и вы сможете перезагрузить компьютер чтобы работать с новым ядром. Если вы поймаете какую-либо ошибку, то всегда можете выбрать в меню загрузчика предыдущее ядро, которое хорошо работало, а новое удалить командой:
sudo apt purge linux-headers-4.13 linux-image-4.13
Возможно, вам нужно будет указать другие версии пакетов, если вы выполняли установку из backports.
Выводы
В этой небольшой статье мы рассмотрели как выполняется обновление ядра Debian 9. Возможно, это сложнее, чем для других дистрибутивов, но в целом нет ничего сверх сложного и все можно сделать за несколько десятков минут. Но вам нужно учитывать, что если вы используете проприетарные драйвера от NVIDIA или AMD, то ядро лучше вообще не трогать, потому что драйвера могут еще не поддерживать новые версии. Вы можете не только обновить ядро из репозиториев, но и собрать ядро из исходников. Если у вас остались вопросы, спрашивайте в комментариях!
Источник