Итак, сегодня мы будем заниматься очень интересным делом, а именно сборкой и установкой собственного ядра в Fedora Core 6. Почему именно она? Да потому, что других систем у меня нет и процесс сборки ядра в FC6 заметно отличается от сборки ядер в других системах. Я не буду рассказывать целиком о сборке ядра (опциях, модулях и т.п.), для этого есть великолепная статья "Ядерная физика для домохозяйки" http://www.linuxcenter.ru/lib/articles/sys...6_install.phtml . И не забываем, что обо всех новинках в Федоре можно узнать из файла, который есть и на русском языке, он доступен в Вашей системе: file:///usr/share/doc/HTML/RELEASE-NOTES-ru.html#id362313
1) Начнем с того, что Fedora не будет работать без танцев с бубном со стандартными ядрами с kernel.org, поскольку Fedora использует модифицированные ядра с набором заплаток.
2) Далее, пакет для разработки ядра по непонятным мне причинам не включили в состав дистрибутива (офиициальная причина такая: "теперь для сборки внешних модулей требуется только пакет kernel-devel"). Теперь его придется скачивать отдельно.
3) Ну и третья причина, мне самому было интересно, последний раз я собирал ядро в РедХатах (до того, как они стали платными) и Мандрейке (при их жизни
4) А самой большой причиной было то, что мне нужно было отключить в ядре поддержку IPv6 и включить стандартное (без всяких ntfs-3g) чтение-онли NTFS.
Подготовка к установке ядра
На этом этапе мы произведем установку некоторых дополнительных пакетов, необходимых для компиляции ядра. Все действия для простоты выполняются от пользователя root (хоть это и не совсем корректно, но совет из документации использовать rpmdev-setuptree не сработал).
Код: Выделить всё
yum install rpmdevtools yum-utilsЭтой командой мы скачаем и установим некоторые дополнительные программы.
Код: Выделить всё
yumdownloader -e core-source -e updates-source --source kernelСкачиваем ядро в текущий каталог.
Установка исходных текстов и подготовка к компиляции
На прошлом этапе у вас должен был скачаться пакет kernel-2.6.19-1.2911.fc6.src.rpm или что-то в этом духе. Теперь нам необходимо установить его. Для этого выполним такую команду:
Код: Выделить всё
rpm -Uvh kernel-2.6.19-1.2911.fc6.src.rpmДалее переходим в каталог /usr/src/redhat/SPECS/ и подготавливаем исходный код ядра:
Код: Выделить всё
cd /usr/src/redhat/SPECS/
rpmbuild -bp --target $(uname -m) kernel-2.6.specКомпиляция ядра
Вот теперь мы вплотную подошли к компиляции ядра. Переходим в каталог /usr/src/redhat/BUILD/kernel-2.6.19/linux-2.6.19.i686:
Код: Выделить всё
cd /usr/src/redhat/BUILD/kernel-2.6.19/linux-2.6.19.i686Там есть подкаталог configs, в котором находятся базовае конфигурации ядра системы. Они самодостаточные, но иногда приходится кое-что подправлять (как мне с IPv6 и NTFS):
Код: Выделить всё
[root@max linux-2.6.19.i686]$ ll configs
total 572
-rw-r--r-- 1 root root 73095 Feb 28 12:24 kernel-2.6.19-i586.config
-rw-r--r-- 1 root root 73920 Feb 28 12:24 kernel-2.6.19-i686.config
-rw-r--r-- 1 root root 73986 Feb 28 12:24 kernel-2.6.19-i686-debug.config
-rw-r--r-- 1 root root 73721 Feb 28 12:24 kernel-2.6.19-i686-kdump.config
-rw-r--r-- 1 root root 73839 Feb 28 12:24 kernel-2.6.19-i686-PAE.config
-rw-r--r-- 1 root root 73905 Feb 28 12:24 kernel-2.6.19-i686-PAE-debug.config
-rw-r--r-- 1 root root 68574 Feb 28 12:24 kernel-2.6.19-i686-xen.configВыбираем нужный конфиг (у меня это i686) и копируем:
Код: Выделить всё
cp configs/kernel-2.6.19-i686.config .configМы создали файл базовой конфигурации ядра. Теперь нам нужно выполнить одну из трех комманд:
Код: Выделить всё
make xconfig - Для использования графического интерфейса конфигурирования ядра
make menuconfig - Для использования консольного интерфейса (псевдографика), нужна библиотека ncurses
make config - Текстовое средство
make oldconfig - Построение из старого конфигаЯ выбрал:
Код: Выделить всё
make menuconfigПосле конфигурирования ядра нужно сохранить изменения и запустить сборку/установку.
Код: Выделить всё
make bzImage modules modules_install installЭто долгий процесс, в зависимости от быстроты системы он занимает от часа до четырех и более (на древних компах
У меня стоит AMD Sempron 2600+ с частотой 1600 MHz, процесс занял часа два. За это время можно сходить в кино, поспать и т.п.
Если этот процесс прошел успешно, то все должно быть в порядке.
Теперь перезагружаемся и в загрузчике выбираем наше ядро. Если оно загрузилось и работает, то можно поставить его в конфигурации загрузчика грузиться по умолчанию.
У меня все получилось и работает