From: Andrii Dobrovol`s`kii <dobr@iop.kiev.ua>
To: mezin@ntmdt.ru, ALT Linux Community <community@lists.altlinux.org>
Subject: Re: [Comm] Где же всё-таки взять исходники Альтовских ядер?
Date: Tue, 07 Nov 2006 11:55:27 +0200
Message-ID: <4550580F.1050209@iop.kiev.ua> (raw)
In-Reply-To: <455050D4.80801@ntmdt.ru>
[-- Attachment #1: Type: text/plain, Size: 12309 bytes --]
Alexei V. Mezin пишет:
> Alexei V. Mezin пишет:
>> Я когда-то что-то писал, но давно. В архивах найду, и попробую выложить
>> на wiki. Но там все с точки зрения "любителя", так что может быть
>> местами неправда и устарело. Нужно, чтоб текст потом редактировали те,
>> кто в этом разбирается.
>
> Вот, нашел:
> Для начала определим, чего мы хотим получить:
> 0. Понять, зачем нам пересобирать ядро.
> 1. Задача-минимум: собрать пакет со "стандартным"
> ядром/заголовками. Т.е. такое же ядро, которое можно
> поставить из репозитария с бинарными пакетами (или
> дистрибутивных дисков).
> 1.1. Собрать версию пакета с драйверами nVidia для
> нового ядра.
> 2. Основная задача: собрать чуть модифицированное ядро,
> т.е. с дополнительными опциями или с дополнительными
> патчами взятыми из Сизифа.
> 2.1. Собрать RPM-пакеты с дополнительными модулями ядра.
> 3. Задача-максимум: собрать ядро с посторонними патчами.
>
>
> 0. Итак, вы решили пересобрать ядро. Зачем? Ядра в системах
> от ALT Linux Team собраны так, чтобы быть универсальными. В
> них включены максимум функций и возможностей, причем все,
> что можно собрать в виде модулей, именно так и собрано.
> Поэтому если у вас возникли проблемы, например какое-либо
> устройство не работает, так как для него не найден (не
> загружен) модуль, не спешите "пересобирать ядро". Возможно
> модуль просто "не загрузился автоматически" (если
> возможность автозагружать модули вообще когда-нибудь
> нормально заработает в Сизифе).
> Совет: изучите команды depmod, modprobe, modinfo
> Или просто пакет с нужным модулем не установлен.
> Совет: изучите команду apt-cache search
> Если вам нужно специфическое ядро, например с поддержкой
> RealTime, Win4Lin и т.п., то просто проверьте альтовский
> репозитарий. Может там уже все есть?
>
> Так зачем же пересобирать ядро? Причины могут быть такими:
> * В ядре не включена (или наоборот) нужная опция.
> * Патологическая проблема с железом, которая требует
> пересборки.
> * Драйвера (например ALSA) в вашей текущей системе устарели
> и почему-то их пересборка не может быть проведена без
> пересборки ядра.
> * Хочется экзотических функций, которые обеспечиваются
> только после наложения патчей на ядро.
>
>
>
>
>
> 1.1. Определимся.
> Для начала определим, какое ядро сейчас запущено и что
> именно мы хотим собрать:
>
> [alexei at localhost alexei]$ uname -r
> 2.6.10-std26-smp-alt1
>
> Итак, версия и тип ядра определены.
>
> Примечание: версия и тип ядра в вашей системе скорее
> всего не совпадают с вышеприведенным.
>
> Для сборки ядра в системе должно быть установлено множество
> пакетов, например компилятор, скрипты для сборки RPM и
> т.п.Далее предполагается, что все это уже установлено, или
> вы знаете, как доустановить нужные пакеты.
>
> FIXME: наверное тут нужен список пакетов, необходимых
> для сборки ядра.
>
> Кроме того, нужны
> пакеты, связанные непосредственно с конкретным ядром:
> * пакет с исходными кодами ядра
> * пакеты с патчами, исправляющими сборку и проблемы с
> безопасностью
> * пакеты с патчами, расширяющими функциональность
> * пакет и конфигурационным файлом и spec-файлом для сборки.
>
> Установку начнем несколько нетрадиционно, "с конца" и из-под
> пользователя:
> установим src-пакет с настройками ядра и spec-файлом.
> Название таких пакетов начинается с kernel-image, далее
> следует тип ядра (wks, std, vs, wks26 и т.п.) и -up для
> однопроцессорных систем и -smp для мультипроцессорных.
>
> Примечание: не путайте kernel-image*.src.rpm и
> kernel-image*.rpm
>
> FIXME: нужно нормальное описание типов ядер.
> Т.е. что такое и в чем отличия wks/std/vs/ll/rt
> и т.п.
>
> [alexei at localhost alexei]$ apt-get source
> kernel-image-std26-smp
> Чтение списков пакетов... Завершено
> Построение дерева зависимостей... Завершено
> Необходимо получить 0B/56,6kB исходных архивов.
> kernel-image-std26-smp
> #############################################
>
> Примечание: делаем эту операцию именно из-под
> пользователя, так как установка src.rpm
> администратору запрещена по соображениям
> безопасности.
>
> После этого у вас в ~/RPM/SPECS появился файл
> kernel-image-std26-smp.spec -- это инструкция для RPM по
> сборке пакетов с ядром и заголовками. В каталоге
> ~/RPM/SOURCES появился файл config-2.6.10-std26-smp -- это
> настройки ядра по умолчанию.
>
> Заглянем в начало spec-файла:
>
> # Fixes:
> %add_patch_list kernel-fix-build
> %add_patch_list kernel-fix-core
> %add_patch_list kernel-fix-acpi
> %add_patch_list kernel-fix-fs
> %add_patch_list kernel-fix-net
> %add_patch_list kernel-fix-drivers-net
> %add_patch_list kernel-fix-drivers-usb
> %add_patch_list kernel-fix-drivers-ide
> %add_patch_list kernel-fix-drivers-ieee1394
> %add_patch_list kernel-fix-drivers-sound
> #add_patch_list kernel-fix-drivers-serial
> %add_patch_list kernel-fix-drivers-parport
> %add_patch_list kernel-fix-security
>
> # Feathures:
>
> %add_patch_list kernel-feat-drivers-video-splash
> %add_patch_list kernel-feat-drivers-input
> %add_patch_list kernel-feat-drivers-lirc
> %add_patch_list kernel-feat-drivers-pktcdvd
> %add_patch_list kernel-feat-fs-squashfs
> %add_patch_list kernel-feat-net-ppp-mppe
> %add_patch_list kernel-feat-evms-nodm
>
> Это список пакетов, которые необходимо установить для сборки
> вашего ядра. Перейдем в режим суперпользователя и установим
> сначала исходники ядра:
> найдем, где они и как называются
> [root at localhost root]# apt-cache search kernel-source
> kernel-source-2.4.26 - Linux kernel 2.4.26rel sources
> kernel-source-2.6.10 - Linux kernel 2.6.10 sources
> ........
> ........
> и установим их
> [root at localhost root]# apt-get install
> kernel-source-2.6.10
> Чтение списков пакетов... Завершено
> Построение дерева зависимостей... Завершено
> Следующие НОВЫЕ пакеты будут установлены:
> kernel-source-2.6.10
> 0 будет обновлено, 1 новых установлено, 0 пакетов будет
> удалено и 1 не будет обновлено.
> ..............
> ..............
>
> А затем аналогичным образом установим все остальные пакеты
> kernel-fix* и kernel-feat* из вышеприведенного списка.
>
> FIXME: можно ли сделать эту операцию автоматически?
>
> Выйдете из режима суперпользователя, т.к. сборки
> RPM-пакетов по соображениям безопасности невозможна из-под
> суперпользователя. В принципе уже все готово для сборки
> ядра. Но вы наверняка захотите проделать некоторые
> дополнительные настройки.
> Откройте в вашем любимом редакторе spec-файл. Исправьте
> строку
> %define krelease alt1
> заменив в ней "alt1" на что-нибудь другое, например, на
> "myown1". Это нужно для того, чтобы ваше ядро не
> конфликтовало с ядром из дистрибутива. Кроме того желательно
> заменить строку
> %make_build oldconfig
> на строку
> %make_build menuconfig
> Это позволит вам перед началом сборки ядра отредактировать
> настройки в стиле классического "make menuconfig".
>
> FIXME: у меня не собираются пакеты если не
> закомментировать строку
> %__cp -a ./scripts/kconfig/conf
> %buildroot%_prefix/src/linux-%version-%flavour/scripts/kconfig/
>
> Теперь можно приступить к сборке:
> cd ~/RPM/SPECS
> rpm -bb kernel-image-std26-smp.spec
>
> FIXME: нужно ли для сборки пакетов предварительно
> редактировать ~/.rpmmacros?
>
> Если все сложилось удачно, то будут удалены файлы, которые
> могли остаться после предыдущих сборок, распакованы
> исходные коды ядра, приложены все необходимые патчи и запущен
> текстовый интерфейс для настройки параметров ядра. Если
> этого не произошло, внимательно читайте вывод в консоли и
> принимайте меры.
> После того, как вы покинете конфигуратор ядра, начнется
> сборка. Тут самое время откинуться на спинку кресла,
> расслабиться и получать удовольствие от созерцания этого
> завораживающего процесса.
>
> Примечание: так как ядро собирается со всеми доступными
> модулями, этот процесс может занимать довольно
> продолжительное время (особенно в сравнении со сборкой
> по "классической" технологии с "ручной" настройкой опций
> ядра). Например на Dual P-III 1Gz сборка продолжается
> около 1.5 часов.
>
> Если сборка ядра и модулей прошла без ошибок и
> RPM-скрипты отработали исправно, то в
>
> ~/RPM/RPMS/i686
>
> FIXME: что тут будет на другой архитектуре?
>
> вы обнаружите пакеты
>
> kernel-headers-modules-std26-smp-2.6.10-alt1.i686.rpm
> kernel-image-std26-smp-2.6.10-alt1.i686.rpm
> kernel-headers-std26-smp-2.6.10-alt1.i686.rpm
>
> То есть вы получили пакет с ядром kernel-image и два
> пакета с заголовками. Осталось только установить их:
> перейдите в режим суперпользователя
> cd /home/<user-name>/RPM/RPMS/i686
> rpm -i ./kernel-image-std26-smp-2.6.10-alt1.i686.rpm
> rpm -i ./kernel-headers-std26-smp-2.6.10-alt1.i686.rpm
> rpm -i ./kernel-headers-modules-std26-smp-2.6.10-alt1.i686.rpm
>
> FIXME: э-э-э... нужно ли тут править конфиги для
> возможности установки параллельно нескольких версий
> ядра?
>
> FIXME: нужно написать короткое (или не очень)
> пояснение, куда в ALTовских системах встают хидеры и
> как бороться с alternatives. А то в common@ у
> пользователей с этим связано много проблем.
>
> При установке ядра RPM автоматически пропишет новую запись в
> /etc/lilo.conf и запустит lilo
>
> FIXME: а что тут с grub?
>
> Так что вам наверняка захочется заглянуть в /etc/lilo.conf и
> поправить там что-нибудь (но и "по умолчанию" все должно
> хоты бы загрузиться). После правки /etc/lilo.conf не
> забудьте запустить lilo.
>
> Примечание: новое ядро добавляется в
> загрузочное меню, но по умолчанию загрузится ваше старое
> ядро. Так спокойнее! :)
>
> Примечание: если у вас видеокарта nVidia, то с новым
> ядром видеодрайвер не загрузится без дополнительных
> действий (вот он, недостаток закрытых драйверов), и
> поэтому разумно сначала загрузиться в runlevel 3,
> убедиться, что новое ядро работает как ожидается,
> пересобрать видеодрайверы, установить их, и только после
> этого переходить в runlevel 5.
>
> FIXME: для других видеокарт проблем нет?
>
> reboot
>
:) Вполне возможно, что именно по Вашей "козе" я и собирал тогда
сво' ядро. За пару дней разобрался, собрал, запустил в эксплуатацию
и забыл... :) Вобщем, кладите на вики, если там ещё нет и будем
звать ядерщиков на "разбор полетов".
--
Rgrds,
Andriy
*********************************************************************
email: dobr at iop dot kiev dot ua Kyiv, Ukraine
Phone: (380-44) 525-7824 Department of Gas Electronics
Fax: (380-44) 525-2329 Institute of Physics of NASU
*********************dobrATjabber.iop.kiev.ua************************
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2006-11-07 9:55 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-03 9:45 Arcady V. Ivanov
2006-11-03 10:19 ` Vadim V. Zhytnikov
2006-11-03 10:38 ` Arcady V. Ivanov
2006-11-03 11:28 ` rt
2006-11-03 11:37 ` Arcady V. Ivanov
2006-11-03 11:49 ` Maxim Tyurin
2006-11-03 12:10 ` Arcady V. Ivanov
2006-11-03 12:22 ` Michael Shigorin
2006-11-03 12:44 ` Arcady V. Ivanov
2006-11-03 13:47 ` Michael Shigorin
2006-11-04 1:09 ` Arcady V. Ivanov
2006-11-04 6:53 ` Alexey Borovskoy
2006-11-04 9:51 ` [Comm] [JT] Круче нас только ядра? Anatol B. Bazjukin
2006-11-04 12:20 ` Maxim Tyurin
2006-11-04 17:04 ` [Comm] Где же всё-таки взять исходники Альтовских ядер? Michael Shigorin
2006-11-07 8:25 ` Alexei V. Mezin
2006-11-07 8:59 ` Andrii Dobrovol`s`kii
2006-11-07 9:20 ` Alexei V. Mezin
2006-11-07 9:24 ` Alexei V. Mezin
2006-11-07 9:55 ` Andrii Dobrovol`s`kii [this message]
2006-11-07 11:07 ` Alexei V. Mezin
2006-11-07 11:32 ` Andrii Dobrovol`s`kii
2006-11-08 6:52 ` Michael Shigorin
2006-11-08 7:06 ` Evgenii Terechkov
2006-11-08 7:42 ` Michael Shigorin
2006-11-09 15:29 ` Slava Grecea
2006-11-09 8:33 ` Alexei V. Mezin
2006-11-10 10:39 ` Michael Shigorin
2006-11-08 6:28 ` [Comm] [wiki] Michael Shigorin
2006-11-04 17:01 ` [Comm] Где же всё-таки взять исходники Альтовских ядер? Michael Shigorin
2006-11-03 12:32 ` aakarpov
2006-11-03 12:51 ` Arcady V. Ivanov
2006-11-03 18:49 ` Andrey Rahmatullin
2006-11-03 12:39 ` Maxim Tyurin
2006-11-03 13:19 ` Arcady V. Ivanov
2006-11-03 13:44 ` Slava Grecea
2006-11-03 13:45 ` Michael Shigorin
2006-11-04 1:26 ` Arcady V. Ivanov
2006-11-04 6:34 ` Alexey Borovskoy
2006-11-04 8:30 ` [Comm] Где же всё-таки взять исходники Альтовских ядер? [JT] Владимир Гусев
2006-11-04 16:53 ` [Comm] [JT] Re: Где же всё-таки взять исходники Альтовских ядер? Michael Shigorin
2006-11-03 19:11 ` [Comm] " Хихин Руслан
2006-11-03 19:18 ` Andrey Rahmatullin
2006-11-03 12:00 ` Sergey Vlasov
2006-11-03 18:51 ` Andrey Rahmatullin
2006-11-04 1:13 ` Arcady V. Ivanov
2006-11-03 14:19 ` Aleksander N. Gorohovski
2006-11-03 18:51 ` Andrey Rahmatullin
2006-11-13 17:33 ` Fr. Br. George
2006-11-13 22:42 ` Arcady V. Ivanov
2006-11-16 8:34 ` Fr. Br. George
2006-11-16 21:15 ` Arcady V. Ivanov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4550580F.1050209@iop.kiev.ua \
--to=dobr@iop.kiev.ua \
--cc=community@lists.altlinux.org \
--cc=mezin@ntmdt.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git