Полное руководство по сборке ядра в Ubuntu

Опубликовано: Комментариев: 0

Статья о том, как скомпилировать, построить и установить ядро 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. В ближайшее время постараюсь сделать свои лирические отступления и дополнения к статье, чтобы разложить по полочкам процесс сборки ядра для Линукс.