Собираем ядро Linux для deb-ориентированных систем

Добрый день всем, кто оказался на данном сайте. Ядро Linux является важным компонентом системы. От него так же зависит поддержка того или иного оборудования. В самом ядре Linux имеется множество параметров, которые по умолчанию выключены. А так же, некоторые дистрибутивы вносят в ядро Linux свои изменения, например, те же патчи. Вы можете например пересобрать уже имеющееся в системе ядро Linux. Либо, собрать новое, самой последней версии скачав его с официального сайта. Чем мы сегодня и займемся. Собирать ядро мы будем для deb ориентированных систем (Debian / Ubuntu).

Подготовка к сборке ядра Linux

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

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

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

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

Ставим патч поддержки процессоров

После чего если вы не хотите ставить патчи для своего процессора, можете переходить к сборке ядра. А для тех кто хочет оптимизировать ядро именно под свой процессор, необходимо узнать к какому семейству он относится. Для этого можно воспользоваться поиском и посмотреть в характеристиках вашего процессора. В моем случае на стационарном компьютере стоит “i5-3450”, это семейство “Ivi Bridge”. Соответственно, запоминаем и двигаемся дальше:

После чего нам нужно выяснить какой из представленных патчей нам нужно поставить. Для этого возвращаемся на github где мы скачивали патчи и смотрим каждый из них, для того что бы выяснить какой нам нужен. Для этого вы можете прямо в браузере нажать на название патча, так же обращаем внимания на то, для какого ядра этот патч (kernel_v5.5-v5.6.patch):

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

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

Теперь, когда мы выяснили что за процессор и какой из патчей ставить, переходим в папку с ядром. Для этого в терминале вводим команду “cd и путь до папки”. В моем случае это:

cd ~/Загрузки/linux-5.6.15/

После чего вводим команду “patch -p1 < и путь к патчу”. В моем случае патч находится в папке “/Загрузки/kernel_gcc_patch-master/” и называется он “enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.5-v5.6.patch”. Вводим данный путь и название патча, а затем, нажимаем “Enter”:

patch -p1 < ~/Загрузки/kernel_gcc_patch-master/enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.5-v5.6.patch

Настройка ядра Linux

После всех проделанных манипуляций, можно переходить к настройке ядра. Для этого мы воспользуемся псевдографическим интерфейсом. Так же можно воспользоватся командами “make oldconfig” Для автоматической настройке ядра, основываясь на установленном ядре в вашей системы. Для вывода псевдографического интерфейса вводим команду:

make menuconfig

После чего в открывшемся окне заходим в пункт “Processor type and features”, затем переходим в пункт “Processor family”. Перемещаться по списку можно при помощи стрелочек на клавиатуре:

И тут выбираем наш процессор, а для тех кто не ставил патч, выбираем “Generic-x86-64”. Перемещаемся используя все те же стрелочки на клавиатуре. А отметить нужный пункт при помощи пробела. Когда вы выберете нужный пункт и нажмете пробел, вас сразу же перебросит обратно. Так устроенно ядро, по факту, нажав пробел, вы отметите нужный вам пункт. При желании можно проверить, вернувшись обратно и посмотреть на результат:

После чего вы можете пробежаться по всем пунктам и настроить ядро в соответствии с вашими пожеланиями. Но, это только для тех, кто знает какое оборудование стоит в его компьютере (ноутбуке). А так же для тех, кто хоть немного знаком с устройством самого Linux. То есть, вы можете настроить в ядре поддержку например файловых систем, опять же, если вы знаете что вам нужно, а что нет. Так же виртуализацию и остальные параметры, но, для этого нужно разбираться в системе. Ну а мы двигаемся дальше. Теперь с помощью все тех же самых стрелочек на клавиатуре выбираем пункт “Save” и нажимаем “Enter”, после чего выбираем пункт “OK”, а затем нажимаем “Exit”:

После чего выходим из параметров ядра, нажав на “Exit”, затем еще раз “Exit”:

Редактируем .config

После того как вы настроили ядро и вышли из его настроек, нужно будет отредактировать скрытый файл “.config”. Что нам это даст, это отключит так называемый “Debug” при сборке ядра. По сути, это не обязательный пункт, и его можно пропустить. То есть, если вы хотите видеть вывод информации при сборке ядра, оставьте данный пункт включенным и переходите к дальнейшим действиям. Открыть его можно любым текстовым редактором. Находится данный файл все в том же каталоге ядра. Я буду редактировать его с помощью редактора “Nano”, как пользоваться данным редактором вы можете прочесть в этой статье. Находясь все в том же каталоге вводим команду:

nano .config

После чего нужно найти параметр “CONFIG_DEBUG_INFO” и изменить его значение вместо “y” на “n”:

Сборка ядра Linux

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

sudo apt-get install build-essential git gcc make bc fakeroot dpkg-dev libncurses5-dev libssl-dev

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

make localmodconfig

После чего вам придется ответить на некоторые вопросы. По большому счету, вы можете просто нажимать “Enter”. В моем же случае вопросы не задавались, так как я раньше уже выполнял данную команду:

Теперь можно запускать сборку нашего ядра. Для этого вводим команду “make –j4 bindeb-pkg”, цыфру “4” меняем на количество ядер вашего процессора:

make -j4 bindeb-pkg

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

После того как процесс сборки ядра завершится, у вас появится несколько deb, которые будут лежать на каталог выше. То есть, в данном случае они лежат в каталоге “Загрузки”. Эти файлы вам следует установить в вашу систему. Для этого можно воспользоваться командой в терминале, либо, установить при помощи gdebi. Смотрите как вам удобней, так и устанавливайте:

Я же буду устанавливать при помощи утилиты dpkg. Для этого открываем терминал, переходим в папку где у вас лежат файлы собранного ядра и вводим команду:

sudo dpkg -i *.deb

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

uname -r

Заключение

Когда вы будете собирать ядро, возможно, могут возникнуть проблемы. Например с зависимостями, для их решения рекомендуется воспользоваться поиском. Что же касается других дистрибутивов Linux, например, RPM ориентированных, то данный способ для них не подойдет. Как собрать ядро в RPM ориентированных системах, мы рассмотрим в одной из следующих статей.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
С уважением Cyber-X

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *