Компиляция ядра Linux в Fedora

Сборка ядра не только ответственное но и весьма занятное дело. Опишу только процесс «в командах». Настраивать (включать/выключать модули будете сами, тут советчики врядли найдутся.

Для использования menuconfig необходимо установить ncurses:

sudo dnf install ncurses ncurses-devel

Теперь скачаем исходные коды ядра с сайта kernel.org. Я скачал последние на момент написания статьи — 3,0,0rc1 [давно дело то было ;)]. Распакуйте скачанный архив и войдите в папку из терминала.
Теперь запускаем конфигуратор:

make menuconfig

Перед вами появится вот такое меню:

Воспользовавшись этим меню установите требуемые значения и сохраните результат (Save an Alternate Configuration File) после чего выйдите из конфигуратора.
Если не знаете что конфигурировать или боитесь или ещё чего, можете скопировать конфиг от старого ядра из папки /boot/ переименовав его в .config
Теперь можно собирать:

make rpm

Процесс довольно длительный, но на прямую зависит от количества включенных модулей (можно заварить и попить чайку). После окончания процесса будут сгенерированы 2 файла.
Перейдите в папку с ними:

cd /root/rpmbuild/RPMS/x86_64/

И установите пакет kernel-3.0.0_rc1-2.x86_64.rpm:

rpm -ivh kernel-3.0.0_rc1-2.x86_64.rpm

Теперь необходимо сгенерировать initramfs:

mkinitrd /boot/initramfs-3.0.0.rc1.fc15.x86_64.img 3.0.0-rc1

и отредактировать настройки загрузчика (просто копируем готовую запись и меняем путь на vmlinuz-3.0.0-rc1 и initramfs-3.0.0.rc1.fc15.x86_64.img)
Я создал такую запись в /boot/grub/menu.lst:

title Fedora (3.0.0_rc1)
    root (hd0,1)
    kernel /boot/vmlinuz-3.0.0-rc1 ro root=UUID=586872cc-5fde-439e-9f92-a2de46c7837c rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=ru rhgb quiet
    initrd /boot/initramfs-3.0.0.rc1.fc15.x86_64.img

Запись у меня не первая, поєтому необходимо жать Ctrl во время загрузки, чтобы увидеть меню grub и выбрать, что грузить.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий