Сборка ядра linux mint

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Пошаговое руководство как собрать ядро Linux с нуля

4 минуты чтения

Ядро Linux является основой Unix-подобных операционных систем. Ядро отвечает за связь между оборудованием и программным обеспечением и за распределение доступных ресурсов.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

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

В этом пошаговом руководстве вы узнаете, как собрать и скомпилировать ядро Linux с нуля.

Сборка ядра Linux

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

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

Шаг 1. Загрузите исходный код

1. Посетите официальный сайт ядра www.kernel.org и загрузите последнюю версию. Загруженный файл содержит сжатый исходный код.

2. Откройте терминал и используйте команду wget для загрузки исходного кода ядра Linux:

По завершении загрузки в выходных данных отображается сообщение «saved».

Шаг 2: извлеките исходный код

Когда файл будет готов, запустите команду tar , чтобы извлечь исходный код:

Вывод отображает извлеченный исходный код ядра:

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

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

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

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

Шаг 4: Настройте ядро

Исходный код ядра Linux поставляется с конфигурацией по умолчанию. Однако вы можете настроить его под свои нужды. Для этого выполните следующие действия:

1. Перейдите к каталогу linux-5.9.6. с помощью команды cd :

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

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

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

4. Меню конфигурации включает в себя такие параметры, как прошивка, файловая система, сеть и параметры памяти. Используйте стрелки, чтобы сделать выбор, или выберите HELP, чтобы узнать больше о вариантах. Когда вы закончите вносить изменения, выберите SAVE, а затем выйдите из меню.

Читайте также:  1985 год начала windows

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

Шаг 5: Соберите ядро

1. Начните сборку ядра, выполнив следующую команду:

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

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

2. Установите необходимые модули с помощью этой команды:

3. Наконец, установите ядро, набрав:

Вывод показывает готово, когда закончено:

Шаг 6. Обновите загрузчик (необязательно)

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

Команда make install выполняет этот процесс автоматически, но вы также можете сделать это вручную.

1. Обновите initramfs до установленной версии ядра:

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

Терминал выведет процесс и подтверждающее сообщение:

Шаг 7: перезагрузите и проверьте версию ядра

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

Когда система загрузится, проверьте версию ядра с помощью команды uname :

Терминал покажет текущую версию ядра Linux.

В этом пошаговом руководстве вы узнали, как собрать ядро Linux с нуля и установить необходимые пакеты.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Полезно?

Почему?

😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.

😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.

Источник

Сборка ядра linux 3.4 и более

#1 — 26 июля 2012 в 21:21

Установите необходимые пакеты для сборки ядра Linux:
sudo apt-get install gcc libc6-dev kernel-package libncurses5-dev fakeroot build-essential

Установите пакеты необходимы для запуска GUI конфигуратора ядра xconfig:
sudo apt-get install qt3-dev-tools libqt3-mt-dev

Узнать версию своего ядра командой:
uname -a

Делаем sudo chmod 777 /usr/src чтоб можно было туда залить скаченный архив исходников.
Делаем cd /usr/src
Скачать последнюю стабильную версию ядра с сайта http://www.kernel.org/ в папку /usr/src.
Делаем tar -jxvf linux-3.4.4.tar.bz2 (linux-3.4.4 это название архива, оно может быть другим)
Получается папка linux-3.4.4
Делаем cd ./linux-3.4.4

Можно собирать ядро и в домашней папке home/user/temp

Начиная конфигурирование опций ядра, логично будет взять конфиг работающего ядра, а не конфигурировать с нуля. Для этого в консоли нужно набрать:
make oldconfig

Перед запуском он может задать несколько (много) вопросов, на которые можно просто нажимать Enter (будут вводиться ответы по умолчанию, которые потом в конфигураторе можно будет исправить)

Запускаем GUI (графический) конфигуратор ядра xconfig:
sudo make xconfig

Поможет в конфигурации вам это и это.

Для оптимизации ядра надо исключить из него все лишнее, а для этого надо точно знать, какие устройства используются в системе, и какие будут использоваться в будущем. То есть нужна информация об оборудовании: процессор(ах), оперативной памяти, чипсете материнской платы, видеокарте, сетевой карте(ах), звуковой карте, жестких дисках и CD/DVD приводах, устройствах ввода/вывода (клавиатура, мышь), файловой системе, параметрах сети (протоколы разных уровней), usb-устройствах и т. д.
Вообще, чем больше вы знаете о своем компьютере, тем эффективнее вы сможете собрать ядро. Можно рекомендовать постепенно накапливать информацию и пересобирать ядро в свете новых сведений, улучшая его день за днем.

Например с помощью утилиты hardinfo
sudo apt-get install hardinfo

uname -m : архитектура компьютера (2)

dmidecode -q : аппаратные системные компоненты — (SMBIOS / DMI)

hdparm -i /dev/hda : характеристики жесткого диска

cat /proc/cpuinfo : информация о процессоре

cat /proc/net/dev : показать сетевые интерфейсы и статистику по ним

lspci -tv : показать в виде дерева PCI устройства

lsusb -tv : показать в виде дерева USB устройства
lspci — выводит список PCI устройств: чипсет, контроллеры видео, сетевые конроллеры и т.д.
lsusb — список USB устройств: клавиатуры, мышки, вэб-камеры и т.д.
Обе эти команды можно использовать с ключом -v для получения более подробной информации об устройствах.
dmesg — получение сведений об устройстве или группе устройств, например подробные сведения о процессоре можно получить так:
dmesg | grep CPU

Читайте также:  Сколько места нужно для mac os

После отключения ненужных опций, сохраняем файл и выходим.

Далее приступим к компиляции. Перед этим, нужно очистить мусор командой:
make-kpkg clean

Компиляцию ядра стоит делать под суперпользователем. Для чего становимся рутом и запускаем процесс сборки ядра:
sudo -s -H
make-kpkg —initrd —revision=1 kernel_image kernel_headers
Операция компиляции занимает довольно продолжительное время, зависящее от мощности компьютера… от 30 до 180 минут в среднем. «

После окончания у меня в папке /usr/src появились два файла .deb, которые теперь надо установить:
sudo dpkg -i /usr/src/*.deb

Grub должен автоматически обновиться.

Всё готово, перезагружаемся.

Если смена на новое ядро не произошла автоматически, а ОС загрузилась с прежним ядром (такое может быть), то измените порядок загрузки ядра сами используя к примеру графическую утилиту StartUp Manager.

для установки утилиты воспользуйтесь командой:
sudo apt-get install startupmanager

Источник

Краткий мануал по сборке ядра Linux с исходного кода

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

НО! Есть одна проблема… мы никогда раньше этого не делали! Всё за нас делал менеджер пакетов нашего дистрибутива и от нас требовалось в худшем случае команда с консоли, в лучшем нажатие пары кнопок. Это пособие предназначено для тех, кто не боится лезть в недра ядра системы и не боится убить её в случае неудачной сборки. Чтож, пристегнём ремни и вперёд!

Перед нами лежит архив linux-.tar.bz2 либо linux-.tar.gz. Что с ними делать? правильно! нужно их распаковать, запускаем консоль от имени root и начинаем наши добрые деяния (при написании мануала я предполагаю что необходимые для компиляции пакеты, такие как gcc, phyton, module-init-tools и т.д. уже установлены, если нет, то необходимо их установить до начала процесса конфигурирования и сборки)
Распаковываем архив в каталок /usr/src/

Затем удаляем из каталога /usr/src симлинк на исходник старого ядра (если конечно таковой имеется)

и создаём симлинк на новые сорсы

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

и вызываем меню конфигурации:

если в процессе запуска меню возникают ошибки, значит либо какой-то из необходимых пакетов не установлен, его нужно установить и снова запросить menuconfig.

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

Если же получилось так, что вы не знаете нужен ли вам какой-то определённый элемент, стоит посмотреть Info о нём (кнопка Info есть в меню, навигация между кнопками осуществляется клавишами курсора (left, right)). Если же данная информация не помогла определится с выбором элемента, можно включить этот элемент как модуль ядра. Выбор Элемента осуществляется клавищей space (пробел) и возможно 3 варианта выбора:

  • [*], — элемент встаивается прямиком в образ ядра;
  • — элемент создаётся как внешний модуль и подгружается системой по мере надобности;
  • [ ], — элемент не будет включён в ядро;
Читайте также:  One drive linux client

Как включать элемент в ядро — непосредственно ваше дело, хочу отметить лишь то, что при включении элемента в образ ядра ( * ), увеливичивается размер образа, а образ при старте системы полностью загружается в ОЗУ и остаётся там вплоть до выключения ПК. Включение элемента как модуль уменьшает образ ядра, но увеличивает время реакции системы на событие, связанное с этим модулем. Сейчас я отмечу те пункты, которые обязательно должны быть включены в образ ядра ( * ), чтобы система успешно стартовала.

  1. Элементы поддержки IDE, SATA, RAID контроллеров.
  2. Элементы поддержки набора системной логики (I2C support, только для того набора, который установлен в вашем ПК)
  3. Поддержка шин PCI, PCI-E, AGP (в зависимости от того что нужно конечно)
  4. Поддержка систем, обслуживающих процессор (напр. powernow, Machine Check Exception и т.д.)
  5. Поддержка файловых систем и локалей, используемых на данном ПК
  6. Поддержка USB-хабов (OCHI, ECHI, UCHI, естественно только тех что поддерживаются мат. платой. Установка лишнего элемента конечно не помешает системе запустится, но он попросту будет жрать далеко не резиновую ОЗУ)
  7. Систему поддержки загрузки внешних модулей (Loadable Module Support)

В принципе всё необходимое я уже указал, но как рекомендация: следует включить поддержку сетевых плат, USB накопителей (USB Mass Storage Support), технологий внешних накопителей (USB-Flash, NAND и т.д., но не самих чипов… поддержку конкретных чипов лучше включить модулями ( М )), поддержку Framebuffer устройств (для запуска консоли в FB режиме используя vga или vesa драйвер (выбранный драйвер должен быть также включён в образ ядра ( * )). Также рекомендую включить в ядро системы криптования и защиты (Cryptographic API и Security Options). Далее выбираем нужные нам модули. После того как конфигурирование на ваш взгляд закончено, несколько раз жмём ESC, пока нам не будет выдано сообщение типа

в нём отвечаем yes. Конфигурация нашего ядра будет сохранена с файле .config прямо в этом каталоге. Затем даём команду на компиляцию ядра и установку модулей:

Если в процессе компиляции вылезла какая-то ошибка и процесс остановился (на warning-и можно не обращать внимания, они не страшны и системе не вредят), то смотрим на каком элементе процесс остановился, снова вызываем менюконфиг и переделываем конфиг.

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

Далее есть несколько способов, можно использовать make install для копирования всего что нам надо в /boot, либо выполнить это руками:

Примечание. Файл Initrd. Этот файл по сути служит образом, из которого будут подключаться модули ядра во время его запуска. НО! Если вы включили в ядро ( * ) всё, что необходимо для успешного запуска, то этот файл можно не создавать, в таком случае система будет подгружать модули из /lib/modules. Поэтому создание его не обязательно. Если же он необходим, то используем для этого специальные утилиты (напр. genkernel или mkinitrd) и получившийся файл тоже копируем в /boot.

После этого редактируем конфигурационный файл загрузчика, указываем ему новый образ ядра, новый initrd файл (если нужно) а также дописываем в строке образа ядра нужные опции. Как конкретно это делается смотрите в man-e к вашему загрузчику.

Вот собственно и всё. Новое ядро собрано, оно гораздо компактнее ядра от сообщества, и более «заточено» под ваш конкретный ПК. Перезагружаемся и в случае успешного запуска системы радуемся жизни. Для полного счастья набираем в консоли

и удостоверяемся что мы используем именно новую, нужную нам версию ядра.

На этой доброй ноте я заканчиваю свою статью и желаю удачи в таком нелёгком деле, как конфигурирование и сборка сердца вашего «пингвина».

Источник

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