Сборка ядра в Fedora Core 6

Cent OS, Scientific Linux

Модератор: Модераторы разделов

Аватара пользователя
Liksys
Сообщения: 2910

Сборка ядра в Fedora Core 6

Сообщение Liksys »

Компиляция ядра Fedora Core 6

Итак, сегодня мы будем заниматься очень интересным делом, а именно сборкой и установкой собственного ядра в 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, процесс занял часа два. За это время можно сходить в кино, поспать и т.п. :)
Если этот процесс прошел успешно, то все должно быть в порядке.
Теперь перезагружаемся и в загрузчике выбираем наше ядро. Если оно загрузилось и работает, то можно поставить его в конфигурации загрузчика грузиться по умолчанию.
У меня все получилось и работает :)
Спасибо сказали:
Аватара пользователя
kknight
Сообщения: 756

Re: Сборка ядра в Fedora Core 6

Сообщение kknight »

У меня на Федоре стоит два ядра (родное и ванильное), но вот что интересно: ванильное ядро имеет проблемы с русским языком в UTF8, которые уже не раз обсуждались на форуме - например, крякозябры на смонтированных USB-носителях. В федоровском ядре (fc6) этого нет, вероятно разработчики прикрутили нужные патчи.

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

Всем спасибо заранее.
Спасибо сказали:
noname
Сообщения: 24
ОС: Fedora 8

Re: Сборка ядра в Fedora Core 6

Сообщение noname »

То что Федора не работает с ядрами с kernel.org бред полный... собственноручно качал последнее вчерась и собирал... все успешно работает и никаких глюков, с кодировками тоже все ОК, просто нужно юзать ютф8 по умолчанию (+ ascii, cp466, koi8 ну и т.д, что все для Рашен), тогда и флешки будут нормально монтироваться... а вот то, что в состав дистрибутива невключили само ядро это минус...
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Сборка ядра в Fedora Core 6

Сообщение Liksys »

Работает, если все стандартное. Попробуй запустить кернелорговское ядро при всех включенных федориных фичах, а я посмотрю. Тем более в шестой (а у тебя как я вижу пятая, если что, они сильно отличаются). Для нормальной работы придется тонну заплаток наложить.
Спасибо сказали:
Аватара пользователя
cyberklin
Сообщения: 215
ОС: Fedora Core 5

Re: Сборка ядра в Fedora Core 6

Сообщение cyberklin »

федорино ядро действительно сильно патчено. достаточно только в срц.рпм заглянуть.
однако утверждение, что федора не работает с ванильным ядром всё-таки, имхо, некорректно. лучше написать, что при работе с ванильным ядром возможны определённые проблемы.
Suum cuique
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Сборка ядра в Fedora Core 6

Сообщение Liksys »

Я имел ввиду непатченное стандартное ядро. Ладно, исправил, довольны :) ?
Спасибо сказали:
Аватара пользователя
cyberklin
Сообщения: 215
ОС: Fedora Core 5

Re: Сборка ядра в Fedora Core 6

Сообщение cyberklin »

да будет так ,)
Suum cuique
Спасибо сказали:
Аватара пользователя
Noman
Сообщения: 63
ОС: Ubuntu/Slackware/Debian

Re: Сборка ядра в Fedora Core 6

Сообщение Noman »

все успешно работает и никаких глюков, с кодировками тоже все ОК, просто нужно юзать ютф8 по умолчанию (+ ascii, cp466, koi8 ну и т.д, что все для Рашен)


В случае с Fedora 6 кодировки при загрузке нормально не работают. Пробовал ставить различные варианты по дефолту и не только. Все остальное впрочем работает. Но возможно, что многими ф-циями я просто не пользовался.
"Мысль изреченная есть ложь, но мысль неизреченная — тоже ложь,
потому что в любой мысли уже присутствует изреченность" (с)
Спасибо сказали:
Аватара пользователя
Dudraug
Сообщения: 313
ОС: Debian lenny/sid

Re: Сборка ядра в Fedora Core 6

Сообщение Dudraug »

kknight писал(а):
01.03.2007 12:19
У меня на Федоре стоит два ядра (родное и ванильное), но вот что интересно: ванильное ядро имеет проблемы с русским языком в UTF8, которые уже не раз обсуждались на форуме - например, крякозябры на смонтированных USB-носителях. В федоровском ядре (fc6) этого нет, вероятно разработчики прикрутили нужные патчи.

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

Всем спасибо заранее.


Мне так думается можно сделать так скачать пакет kernel-... .src.rpm c fedora.redhat.com и посмотреть что там за патчи отличные от оригинального ядра, а затем погуглить на их их счет (прошу тапками не кидаться если сочтете мое предложение идиотским) =)))

Но например проблему кодировок можно решить собсна и без патча ( зачем лишнее ставитьО_о) - правишь файл /etc/fstab и у нужного виндового диска (я так понял FAT, с НТФС люди его имеющие таких проблем ВРОДЕ не имели, у самого НТФС нет так что точно хз) поменять опцию скажем defaults на utf8
далее
#umount /dev/....
#mount /dev/...
P4-3.0, ASUS P5GD1, 1024MB OЗУ, GeForce 6600GT
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Сборка ядра в Fedora Core 6

Сообщение Ali1 »

(Dudraug) писал(а):Мне так думается можно сделать так скачать пакет kernel-... .src.rpm c fedora.redhat.com и посмотреть что там за патчи отличные от оригинального ядра, а затем погуглить на их их счет

Нормальное предложение. Можно даже не "гуглить на их их счет", т.к. краткое их описание есть в SPECS-файле. Одна проблема - их сотни.
2Liksys
ИМХО может быть правильней было бы не make make modules_instal make install, а rpmbuild -bb и rpm -i . Скорее всего в этом случае надо править kernel-*.spec, чтобы не собирать ненужные rpm`ы.
Спасибо сказали:
noname
Сообщения: 24
ОС: Fedora 8

Re: Сборка ядра в Fedora Core 6

Сообщение noname »

2Liksys подпись поправил, ткни меня пожалуйста в те опции, которые у меня не заработают с ядром с kernel.org, буду очень признателен и еще хотелось бы узнать встанут ли патчи с того же kernel.org на родное ядро федоры?

з.ы.
а по поводу танцев с бубном это кому как посмотреть по мне удобней по старинке make menuconfig и т.д. чем rpmbuild -bp --target... (хотя рекомендованно именно так в переведенном тобой file:///usr/share/doc/HTML/RELEASE-NOTES-ru.html)
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Сборка ядра в Fedora Core 6

Сообщение Liksys »

Fedora Core может включать дополнительные патчи с улучшениями, исправлениями ошибок или дополнительными функциями. По этой причине ядро Fedora Core может не совпадать строка-в-строку с так называемым vanilla kernel с web-сайта kernel.org
...
Чтобы получить список патчей необходимо получить RPM пакет с исходным кодом и выполните для него следующую команду:
rpm -qpl kernel-<версия>.src.rpm

Смотри тут. Не уверен, что встанут, Федорины патчи могут конфликтовать с ванильными.

Ali1 писал(а):
02.03.2007 04:28
может быть правильней было бы не make make modules_instal make install, а rpmbuild -bb и rpm -i

В доках ясно написано:
Далее вы можете продолжать как обычно.

Как обычно, это make.

Блин, чем способ не устроил, если все работает?! Я описал, как сам компилю ядра, чтобы проблем не было, а уж кому хочется - может рпм ковырять.
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Сборка ядра в Fedora Core 6

Сообщение Ali1 »

Liksys писал(а):
02.03.2007 12:29
....
Блин, чем способ не устроил, если все работает?! Я описал, как сам компилю ядра, чтобы проблем не было, а уж кому хочется - может рпм ковырять.

Устроил, устроил. Однако, есть шанс, что yum будет ругаться.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Сборка ядра в Fedora Core 6

Сообщение Liksys »

kuw писал(а):
10.03.2007 06:49
Я очень рад за вас, но у меня получилось только скачать ядро.Все остальное написано для тех кто знает, и читать это не будет,а кто не знает тот ничего не поймет.Собираю ядра из tar-архивов,хотел научиться из src.rpm-извините не получилось.

Ну давай попробуем разобраться. Что не получилось?
Спасибо сказали:
Аватара пользователя
cyberklin
Сообщения: 215
ОС: Fedora Core 5

Re: Сборка ядра в Fedora Core 6

Сообщение cyberklin »

Ali1 писал(а):
02.03.2007 04:28
ИМХО может быть правильней было бы не make make modules_instal make install, а rpmbuild -bb и rpm -i . Скорее всего в этом случае надо править kernel-*.spec, чтобы не собирать ненужные rpm`ы.

+1. лучше собирать родным рпмом, чтобы потом ядро красиво поставилось и прописалось в базу установленных рпм-пакетов.
а чтобы не собирать пакеты под все платформы у rpmbuild есть опция --target
Suum cuique
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Сборка ядра в Fedora Core 6

Сообщение Liksys »

Так, если все такие умные, собирайте как хотите. Я описал нормальный способ сборки нормального ядра, как это делаю сам. Кому не нравится или идеалогия не позволяет пользоваться make, уж извините :angry:

Тем у кого есть вопросы: создавайте тему, если что у вас не получилось - помогу.
Спасибо сказали: