Сборка ядра Linux в Debian

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

Но раз уж руки до самостоятельной сборки ядра Linux, я решил коротко описать этот процесс. За исходную конфигурации я взял параметры ядра, которое установлено в Debian 8 по умолчанию. В дальнейшем вы можете изменить параметры ядра Linux в зависимости от ваших целей.

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

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

apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc kernel-package

Теперь нам необходимо загрузить исходники ядра Linux. Для примера возьмем ядро Linux 4.4, которое я загружаю с сайта kernel.org:

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz

Распаковываем архив с исходниками ядра и переходим в каталог с файлами:

tar xvf linux-4.4.tar.xz
cd linux-4.4

Копируем существующий конфигурационный файл ядра Linux:

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

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

make menuconfig

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

make-kpkg clean

Запускаем процесс компиляции:

fakeroot make-kpkg --initrd --append-to-version=-vanilla --revision=r1 kernel_image kernel_headers -j 5

В качестве параметров укажите ревизию ядра --revision и количество ядер процессора +1 -j 5, которые будет задействованы в процессе сборки.
После того как будет собран deb-пакет, установите ядро командой:

dpkg -i linux-headers-4.4.0_1.0_amd64.deb
dpkg -i linux-image-4.4.0_1.0_amd64.deb

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

uname -a

Будет не лишним проверить наличие ошибок:

dmesg | egrep -i --color 'error|critical|failed'

Для удаления старого ядра Linux, выполните команду:

apt-get remove linux-image-(unused_version_number)