Собрать ядро линукс для новичков

Содержание
  1. Сборка ядра Linux — общие советы
  2. Плюсы от сборки ядра Linux с собственным конфигурационным файлом
  3. Минусы сборки ядра Linux с собственным конфигурационным файлом
  4. Сборка ядра Linux
  5. Конфигурация ядра Linux
  6. Компиляция и установка ядра Linux
  7. Итоги
  8. HOW-TO: Сборка ядра Linux
  9. Содержание
  10. Шаг 1. Получение исходного кода ядра
  11. Шаг 2. Получение необходимых для сборки пакетов
  12. Шаг 3. Применение патчей
  13. Шаг 4. Конфигурация будущей сборки ядра
  14. Шаг 5. Сборка ядра
  15. Шаг 6. Установка образов и заголовков ядра
  16. Шаг 7. Генерация начального RAM-диска
  17. Шаг 8. Обновление конфигурации загрузчика GRUB
  18. Шаг 9. Проверка ядра
  19. Как собрать ядро Linux с нуля
  20. Сборка ядра Linux
  21. Шаг №1: Загрузка исходного кода
  22. Шаг №2: Распаковка архива с исходным кодом
  23. Шаг №3: Установка необходимых пакетов
  24. Шаг №4: Конфигурирование ядра
  25. Шаг №5: Сборка ядра
  26. Шаг №6: Обновление загрузчика
  27. Шаг №7: Перезагрузка системы

Сборка ядра Linux — общие советы

Отличительной особенностью дистрибутивов операционной системы GNU/Linux является то, что можно настроить практически любые части ОС на своё усмотрение. Можно, конечно, еще и поиграть с исходным кодом отдельных программ по-своему желанию, но на деле это требуется совсем уж редко и при очень специфических вкусах xD

Плюсы от сборки ядра Linux с собственным конфигурационным файлом

  • Можно включить непосредственно в ядро все необходимые драйвера — снизится время загрузки.
  • Исключая ненужные модули и драйвера — уменьшаем размер ядра и, возможно, снижаем время его загрузки.
  • Сделав монолитное ядрышко можно вообще всё необходимое включить непосредственно в него. Больше не нужны будут модули (в том числе пропритарные драйвера Nvidia). Это таки тоже незначительно улучшит скорость загрузки и работы.
  • Поигравшись с планировщиком задач и прочими штучками можно немного увеличить производительность операционной системы.
  • В некоторых дистрибутивах (к примеру, в Debian) старые версии ядер, в которые не включены последние драйверы.
  • Скомпилировав более свежую версию можно заставить какое-то оборудование заработать.
  • На ядра можно наложить специфические патчи, которые не включены в стандартное ядро или то, которое идёт вместе с дистрибутивом операционной системы GNU/Linux.

Однако как и у всего в нашей бренной жизни, есть и негативные стороны у этого действа.

Минусы сборки ядра Linux с собственным конфигурационным файлом

  • При неправильной конфигурации таки что-то может и не заработать.
  • Собственное ядро скорее всего не запуститься с первого раза 😀 Во всяком случае у меня это случается редко.
  • Это достаточно длительный процесс, можно сказать медитативный, под конкретное оборудование у меня только раз на 10-й получается именно то, что необходимо.
  • Придется много гуглить и читать на английском.
  • Все манипуляции, вопреки ожиданиям, могут только увеличить объём ядра, время загрузки и отклик системы.

Собственно с последствиями ознакомились и можно приступать.

Сборка ядра Linux

В первую очередь нужно раздобыть само ядро и желательно рабочий конфигурационный файл. Ядро Linux можно скачать отсюда. А конфигурационный файл взять в дистрибутиве. К примеру, в Debian они лежат в папке /boot и называются config-версия.

Затем следует скопировать архив с ядром в какую-нибудь папку для сборки (рекомендую

/src) и распаковать его командой:

И скопировать файл конфигурации ядра от вашего дистрибутива в появившуюся папку.

Конфигурация ядра Linux

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

      • Для конфигурации лучше использовать старый добрый bash с псевдографикой от ncurses. Потому как всякие xconfig, gconfig и прочие графические приблуды, как это не было бы странным, обладают меньшей функциональностью и наглядностью. Поэтому я бы порекомендовал использовать команду:
        $ make ncurses
        Чтобы она успешно выполнилась, скорее всего, потребуется установить пакеты:
        1. make
        2. gcc
        3. config
        4. ncurses-dev

      И возможно что-то еще =) Так выглядит конфигурация ядра с помощью make menuconfug:

    • Тут всё просто вход в ветку с помощью Enter, выход из ветки через Escape, поиск на клавише /, а описание на ?.
    • Строчки, помеченные [*] — включены в ядро, [M] — компилируются в виде модуля, а [ ] — не собираются.
    • Теперь осталось всё что нужно включить в ядро, то что совершенно не нужно — убрать из него, а то что возможно когда-то и потребуется — включить в виде модуля. Кажется просто, но всё совсем не так.
    • Узнать список модулей, которые сейчас загружены, можно с помощью команды: $ lsmod
    • Команды:
      $ lspci
      и
      $ dmesg
      Помогут узнать примерный список оборудования и ошибки при загрузки системы, которые наверняка появятся после первой сборки под конкретное оборудование.
    • Информацию о конкретных строках, о том, что вам нужно или нет, уже придётся гуглить. Расписывать это нет смысла, ибо всё постоянно обновляется и изменяется. Однако, я бы посоветовал в обязательном порядке включать в ядро следующие вещи:
      • драйвера материнской платы;
      • драйвера жестких дисков;
      • драйвера usb;
Читайте также:  Windows media player слайд шоу

Остальное уже — как душе будет угодно.

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

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

      1. Компиляция ядра и модулей:
        $ make
      2. Установка модулей в /lib/modules:
        # make modules_install
      3. Установка ядра:
        # make install

Возможно еще потребуется настроить загрузчик, однако в моём Debian всё произошло само после установки ядра. Скорее всего в большинстве дистрибутивов будет так же. Но суть тут проста — прописать все параметры примерно таким же образом, как и для других версий ядер в конфигурационном файле загрузчика (для grub2 это /boot/grub/grub.cfg).

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

Удаляем ядро из /boot и /lib/modules, а затем повторяем весь процесс заново.

Итоги

Мне не нужно использовать проприетарные драйвера, поэтому у меня получилось монолитное ядрышко весом 3 мегабайта, но тут уж нет предела совершенства. Субъективный онлайн тест браузера показал прирост производительности в 7-8%, кроме того, flash игры перестали лагать =)

Источник

HOW-TO: Сборка ядра Linux

Содержание

В данном пошаговом руководстве вы узнаете, как правильно собрать и установить ядро ветвей >2.6 в семействе ОС Ubuntu.

Шаг 1. Получение исходного кода ядра

Исходники ядра Ubuntu можно получить двумя способами:

150 Мб в текущую папку. Чтобы получить исходники ядра, версия которого установлена на компьютере выполните команду:

Или вместо `uname -r` можно указать конкретную версию из имеющихся в репозитории.

Не забудьте включить общий доступ к исходникам в репозитории ( Параметры системы → Программы и обновления → Программное обеспечение Ubuntu → Исходный код ). Из консоли это сделать можно раскомментировав строки начинающиеся с deb-src в файле /etc/apt/sources.list, а затем выполнить обновление командой: «sudo apt-get update».

Где — имя релиза, например:

Другие ядра

Также существуют ядра, работоспособность которых в Ubuntu не гарантируется. Например, известна проблема с рядом популярных системных приложений (в частности драйвера NVidia, VirtualBox), которые при своей установке компилируются под установленное ядро. Поэтому для их установки на ядро, нестандартное для данной версии Ubuntu (например, Ubuntu 16.04 идёт с ядром 4.4.0), может потребоваться их отдельная компиляция вручную или специальные патчи, а последние версии ядер с kernel.org приложение может вообще не поддерживать.

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

Или в случае с linux-source:

Шаг 2. Получение необходимых для сборки пакетов

Выполните следующие команды для установки основных пакетов:

Далее всё зависит от того, каким способом вы хотите произвести конфигурацию ядра. Это можно сделать несколькими способами.

В случае, если вы хотите использовать config, oldconfig, defconfig, localmodconfig или localyesconfig, вам больше не нужны никакие дополнительные пакеты. В случае же с оставшимися тремя вариантами необходимо установить также дополнительные пакеты.

Для установки пакетов, необходимых для использования menuconfig выполните следующую команду:

Для установки пакетов, необходимых для использования gconfig выполните следующую команду:

Для установки пакетов, необходимых для использования xconfig выполните следующую команду:

Шаг 3. Применение патчей

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

Если вы никогда до этого не применяли патчей к исходному коду, то выполните следующую команду:

Эта команда установит программу patch, необходимую для, как можно догадаться, применения патчей. Теперь скачайте файл патча в папку, куда вы распаковали ядро. Это может быть либо архивный файл (напр. Bzip2 или Gzip), либо несжатый patch-файл.

На данный момент подразумевается, что вы уже сохранили файл в ту папку, куда ранее распаковали ядро, и установили программу patch.
Если скачанный вами файл был в формате Gzip (*.gz), тогда выполните следующую команду для распаковки содержимого архива:

Если скачанный вами файл был в формате Bzip2 (*.bz2), тогда выполните следующую команду для распаковки содержимого архива:

Читайте также:  Неподписанный драйвер windows 10 как отключить

где 2.6.x.y — версия патча ядра. Соответствующие команды распакуют файл патча в папку с исходным кодом ядра. Прежде чем применить патч, необходимо удостовериться, что он заработает без ошибкок. Для этого выполните команду:

где 2.6.x.y — версия патча ядра. Эта команда сымитирует применение патча, не изменяя сами файлы.

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

где 2.6.x.y — версия патча ядра. Если не было никаких ошибок, значит к исходному коду был успешно применён патч.

где 2.6.x.y — версия патча и ваших исходников

Шаг 4. Конфигурация будущей сборки ядра

Перейдите в папку, куда вы распаковали ядро, выполнив команду

где 2.6.x.y — версия загруженного вами ядра.

На данный момент вы уже должны были определиться с методом конфигурации ядра (если нет, то ознакомьтесь с ними в разделе «Получение необходимых для сборки пакетов». В зависимости от этого, выполните следующую команду для запуска выбранного вами способа конфигурации:

После вызова соответствующая программа конфигурации будет запущена. Произведите необходимые настройки в соответствии с вашими потребностями, сохраните файл конфигурации и переходите к следующему шагу.

Шаг 5. Сборка ядра

Итак, приготовления завершены. Теперь можно запустить процесс сборки ядра. Чтобы это сделать, выполните команду:

Шаг 6. Установка образов и заголовков ядра

Когда сборка ядра подошла к концу, в вашей домашней папке появятся два deb-пакета. Их и необходимо установить. Для этого выполните команды:

где 2.6.x.y — версия собранного ядра, arc — архитектура процессора (i386 — 32-бит, amd64 — 64-бит).
Если вы не знаете точного названия пакета, выведите список файлов в домашнем каталоге командой

и найдите эти самые два пакета.

Шаг 7. Генерация начального RAM-диска

Для корректной работы Ubuntu требует наличия образа начального RAM-диска. Чтобы его создать, выполните команду:

где 2.6.x.y — версия собранного ядра.

Шаг 8. Обновление конфигурации загрузчика GRUB

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

Файл menu.lst (для GRUB версии 1) или grub.cfg (для GRUB версии 2) обновится в соответствии с наличием установленных операционных систем и образов ядер.

Шаг 9. Проверка ядра

Сборка и установка ядра успешно выполнены! Теперь перезагрузите компьютер и попробуйте загрузить систему с новым ядром. Чтобы удостовериться, что система запущена с новым ядром, выполните команду

Она выведет на экран используемую версию ядра.

Если всё сделано правильно, то вы можете удалить архивы с исходным кодом и весь каталог linux-2.6.x.y в вашей домашней папке. Это освободит около 5 ГБ на вашем жёстком диске (размер освобождаемого пространства зависит от параметров сборки).

На этом процесс сборки и установки завершён, поздравляю!

Источник

Как собрать ядро Linux с нуля

Обновл. 18 Июн 2021 |

Ядро Linux является основой дистрибутивов Linux. Оно связывает аппаратное и программное обеспечение компьютера, а также отвечает за распределение доступных ресурсов.

Если вы хотите отключить несколько опций и драйверов или попробовать экспериментальные исправления, то вам необходимо будет собрать ядро вручную. В этой статье вы узнаете, как с нуля самостоятельно скомпилировать и установить ядро Linux.

Сборка ядра Linux

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

Примечание: Для сборки ядра Linux я выделил следующие ресурсы:

виртуальная машина — VMware Workstation 15 Pro (15.5.6);

дистрибутив — Debian Linux (ветка Testing);

ресурсы — 2 ядра CPU (Ryzen 5 1600 AF), 2GB RAM, HDD;

время компиляции — 3+ часа.

После этого я попробовал собрать ядро еще раз, перенеся образ виртуальной машины на NVMe SSD A-Data XPG SX8200 Pro (1TB), а также увеличив количество доступных для виртуальной машины ядер CPU до 6, а RAM — до 4GB. В таком варианте время компиляции составило около 1.5 часов.

Шаг №1: Загрузка исходного кода

Откройте сайт kernel.org и найдите архив с исходными кодами самой свежей версии ядра (Latest Release).

Примечание: Не пугайтесь, если версия ядра на сайте kernel.org не совпадает с той, которую я использовал на данном уроке. Все рассмотренные шаги/команды работоспособны, просто вам придется заменить цифры в версии ядра на свои.

Затем откройте терминал и с помощью команды wget скачайте архив с исходным кодом ядра Linux:

Читайте также:  Как установить принтер windows 10 pro

Шаг №2: Распаковка архива с исходным кодом

Распакуем архив, применив команду tar :

$ tar xvf linux-5.12.10.tar.xz

Шаг №3: Установка необходимых пакетов

Нам потребуются дополнительные утилиты, с помощью которых мы произведем компиляцию и установку ядра. Для этого выполните следующую команду:

Пользователям Debian/Ubuntu/Linux Mint:

$ sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

Данная команда установит следующие пакеты:

Пакет Описание
git Утилита, помогающая отслеживать изменения в файлах исходного кода. А в случае какой-либо ошибки, эти изменения можно будет откатить.
fakeroot Позволяет запускать команду в среде, имитирующей привилегии root.
build-essential Набор различных утилит для компиляции программ (компиляторы gcc, g++ и пр.).
ncurses-dev Библиотека, предоставляющая API для программирования текстовых терминалов.
xz-utils Утилита для работы с архивами в .xz-формате.
libssl-dev Библиотека для разработки и поддержки протоколов шифрования SSL и TLS.
bc (Basic Calculator) Интерактивный интерпретатор, позволяющий выполнять скрипты с различными математическими выражениями.
flex (Fast Lexical Analyzer Generator) Утилита генерации программ, которые могут распознавать в тексте шаблоны.
libelf-dev Библиотека, используемая для работы с ELF-файлами (исполняемые файлы, файлы объектного кода и дампы ядра).
bison Создает из набора правил программу анализа структуры текстовых файлов.

Пользователям CentOS/RHEL/Scientific Linux:

$ sudo yum group install «Development Tools»

$ sudo yum groupinstall «Development Tools»

Также необходимо установить дополнительные пакеты:

$ sudo yum install ncurses-devel bison flex elfutils-libelf-devel openssl-devel

Пользователям Fedora:

$ sudo dnf group install «Development Tools»
$ sudo dnf install ncurses-devel bison flex elfutils-libelf-devel openssl-devel

Шаг №4: Конфигурирование ядра

Исходный код ядра Linux уже содержит стандартный файл конфигурации с набором различных настроек. Однако вы можете сами изменить его в соответствии с вашими потребностями.

Для этого перейдите с помощью команды cd в каталог linux-5.12.10:

Скопируйте существующий файл конфигурации с помощью команды cp :

$ sudo cp -v /boot/config-$(uname -r) .config

Чтобы внести изменения в файл конфигурации, выполните команду make :

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

Меню конфигурации включает в себя такие параметры, как:

Firmware Drivers — настройка прошивки/драйверов для различных устройств;

Virtualization — настройки виртуализации;

File systems — настройки различных файловых систем;

Для навигации по меню применяются стрелки на клавиатуре. Пункт H elp > поможет вам узнать больше о различных параметрах. Когда вы закончите вносить изменения, выберите пункт S ave > , а затем выйдите из меню с помощью пункта E xit > .

Примечание: Изменение настроек некоторых параметров может привести к тому, что в вашем новом ядре будет отсутствовать поддержка жизненно важных для системы функций. Если вы не уверены, что нужно изменить, то оставьте заданные по умолчанию настройки.

Примечание: Если вы использовали вариант с копированием файла конфигурации, то перед переходом к следующему шагу, откройте этот файл и проверьте, что параметр CONFIG_SYSTEM_TRUSTED_KEYS у вас определен так же, как указано на следующем скриншоте:

В противном случае вы можете получить ошибку:

make[4]: *** No rule to make target ‘debian/certs/test-signing-certs.pem’, needed by ‘certs/x509_certificate_list’. Stop.
make[4]: *** Waiting for unfinished jobs.

Шаг №5: Сборка ядра

Для старта сборки ядра выполните следующую команду:

Процесс сборки и компиляции ядра Linux занимает довольно продолжительное время.

Во время этого процесса в терминале будут перечисляться все выбранные компоненты ядра Linux: компонент управления памятью, компонент управления процессами, драйверы аппаратных устройств, драйверы файловых систем, драйверы сетевых карт и пр.

Затем нужно будет установить модули с помощью следующей команды:

$ sudo make modules_install

Осталось произвести установку нового ядра. Для этого необходимо выполнить:

$ sudo make install

Шаг №6: Обновление загрузчика

Загрузчик GRUB — это первая программа, которая запускается при включении системы.

Пользователям Debian/Ubuntu/Linux Mint:

Команда make install автоматически обновит загрузчик.

Для того, чтобы обновить загрузчик вручную, вам необходимо сначала обновить initramfs до новой версии ядра:

$ sudo update-initramfs -c -k 5.12.10

Затем обновить загрузчик GRUB с помощью следующей команды:

Пользователям CentOS/RHEL/Scientific Linux :

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
$ sudo grubby —set-default /boot/vmlinuz-5.6.9

Вы можете подтвердить детали с помощью следующих команд:

grubby —info=ALL | more
grubby —default-index
grubby —default-kernel

Шаг №7: Перезагрузка системы

После выполнения вышеописанных действий перезагрузите свой компьютер. Когда система загрузится, проверьте версию используемого ядра с помощью следующей команды:

Как видите, теперь в системе установлено собранное нами ядро Linux-5.12.10.

Поделиться в социальных сетях:

Источник

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