Статья о том, как скомпилировать, построить и установить ядро Linux в ubuntu. Думаю многим будет полезна, ведь когда-нибудь прийдётся каждому лично столкнуться с компиляцией ядра.
Автор в своей статье шаги разбил на несколько категорий, при помощи их выделений цветом. И я поступил так же при осуществлении перевода и дополнения статьи. Условные обознаичения:
Серый - можем игнорировать
Зеленый - рекомендуем, но не обязательно
Оранжевый - инструкция
Красный - это важно
1. Установите дополнения, необходимые для конфигурации ядраsudo apt-get install -y build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev
2. Перейдите в папку где будет происходить компиляция и сборкаcd /usr/src
3. Добавьте себя в группу src, таким образов вы сможете перезаписывать данные в /usr/src/sudo adduser $USER src
4. Войдите в консоль с новыми групповыми привилегиямиsu $USER
5. Сейчас мы собираемся скачать ядро и развалить архивwget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.1.tar.bz2 && tar -xvjf linux-2.6.36.1.tar.bz2
на момент моей работы с этим материалом - это была последняя стабильная версия ядра. На сайте kernel.org Вы легко сможете найти любую версию ядра.
6. Скопируйте скрипты initramfs, чтобы иметь возможность загружаться с ядраsudo cp /usr/share/kernel-package/examples/etc/kernel/postinst.d/initramfs /etc/kernel/postinst.d/
sudo cp /usr/share/kernel-package/examples/etc/kernel/postrm.d/initramfs /etc/kernel/postrm.d/
7. Удалите симлинк на директорию линукс, и создайте новый
rm -rf linux && ln -s /usr/src/linux-2.6.36.1 linux && cd /usr/src/linux
На заметку: если Вы применяете патч к ядру, такой как fbsplash, beyond, или emission - примените патч сейчас и перейдите к шагу 10
8. Сейчас скачиваем последнюю версию патча для ядра ( НЕ делайте этого, если Вы используете другой патч, такой как как beyond, emission, RT, и т.д.)
если ничего такого не делаете - переходим к 10му
9. Примените новый патч ( НЕ делайте этого, если Вы используете другой патч, такой как как beyond, emission, RT, и т.д.)
если ничего такого не делаете - переходим к 10му
10. Сейчас перенесите текущую конфигурацию ядра и получите последние свойства нового ядраcp /boot/config-$(uname -r) .config && yes "" | make oldconfig
11. Кинфигурируем ядроmake menuconfig либо, если не хотите терминального menuconfig, запустите эту команду:make xconfigСовет: вы можете значительно ускорить компиляцию при помощи distcc. Подробней напишу потом
12. И вот наконец, пора построить ядро! Убедитесь, что находитесь в /usr/src/linux. По окончании процесса - мы получим deb файл ядра, который сможем установить
Пишем в терминале
make-kpkg clean
Потом это
INSTALL_MOD_STRIP=1 CONCURRENCY_LEVEL=3 fakeroot make-kpkg --initrd --append-to-version=-mk kernel_image kernel_headers modules_image
На заметку: Можно заменить "mk" на что угодно. Ядро будет собираться от нескольких минут и до нескольких часов, в зависимости от мощности системы и объема работы. Аргумент CONCURRENCY_LEVEL устанавливаем из расчета "количество ядер вашего ПК + 1" К примеру, если у вас 2х ядерный монстр - то ставим 3.
13. И наконец установим .deb файлы ядра, которые находятся в /usr/src/
cd .. && sudo dpkg -i linux*.deb
ВАЖНО: Если вы счастливый обладатель Nvidia или ATI видео-карт, то скорей всего понадобится пере установка драйверов к ним, чтобы можно было нормально работать в новом ядре.
14. Перезагрузим систему, и в менеджере загрузок выберем наше новое ядро
P.S. данная статья является моим авторским переводом с англоязычной темы Master kernel Thread. В ближайшее время постараюсь сделать свои лирические отступления и дополнения к статье, чтобы разложить по полочкам процесс сборки ядра для Линукс.