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


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

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

#yum install -y gcc ncurses-devel

Вторым делом нам необходим определиться какая версия ядра нам нужна. Всё зависит от того какой минимальной номер ядра поддерживает ваше оборудование. Но в любом случае желательно использовать версия ядра Linux не ниже 3.10 (на момент написания статьи). Скачать ядро можно на официальном сайте разработчика по адресу https://www.kernel.org/

Для этого переходим в режим суперпользователя

$su

Создаём папку в которой мы будет компилить ядро линукс. Некоторые предпочитают делать это в папке /usr/src. Если достаточное пространство на этом разделе можно сделать там, если нет, то необходимо сделать на разделе с достаточным свободным пространством, так как для этого потребуется около 5гб свободного места на диске.

Переходим в нужную нам папку и скачиваем нужную версию ядра

#cd /usr/src

#wget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.10.92.tar.xz

Распаковываем ядро

#tar -xvf linux-3.10.92.tar.xz

Переходим в папку ядра

#cd linux-3.10.92

Запускаем процесс конфигурирования. Так как мы будем использовать параметры старого ядра, мы запускаем следующую команду

#make oldconfig

Если вы будете самостоятельно конфигурировать ядро, то выберите команду

#make menuconfig

При конфигурировании по старым параметрам может оказаться, что некоторых параметров нового ядра нет в старом, система рядом укажет (NEW) и предложит несколько вариантов для выбора, при этом указав какой вариант является по-умолчанию. При нажатии Enter буден выбран вариант по-умолчанию. После завершения конфигурирования запускаем процесс компиляции ядра. Процесс довольно длительный может занимать 20-60 минут, зависит от мощности компьютера.

#make

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

#make modules_install install

После завершения установки открываем файл /boot/grub/grub.conf и в строчке default=n (где n означает номер ядра начиная с 0) указываем номер строчки ядра, написанного в файле grub.conf, соответствующий собранному нами ядру. После перезапуска компьютера загрузится скомпилированное нами ядро.

default=0

title Kernel 3.10 (3.10.92)
root (hd0,0)
kernel /boot/vmlinuz-3.10.92 ro root=UUID=********-****-****-****-************ rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=ru_RU.UTF-8 KEYTABLE=ru rhgb quiet
initrd /boot/initramfs-3.10.92.img