The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"2.6 kernel compiling"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"2.6 kernel compiling" 
Сообщение от balashoff emailИскать по авторуВ закладки(ok) on 07-Ноя-05, 21:26  (MSK)
Помогите разобраться с принципами компилирования заголовков ядра, да и ядра в целом в Fedora Core 4.
Вопросов несколько.
1. После установки пакета kernel-2.6.12-1.1456_FC4.src.rpm в папке /usr/src/redhat/SOURCES появилось много разных файлов.
В том числе ихсодники ядра в архиве (linux-2.6.12.tar.gz2) и патчи к нему:
patch-2.6.12.5.bz2
linux-2.6-acpi-20050729.patch.bz2
и т.д...
НО!
есть ещё в этом же каталоге файлы просто .patch типа:
linux-2.6.12-scsi-blacklist.patch
linux-2.6-diskdump.patch

с патчами ядра типа patch.bz2 всё понятно -- по различным документациям:
  bzcat /path/to/patch-2.4.19.bz2 | patch -s -p0
и всего делов.
Но что делать с файлами .patch?

2. Настройка линков (sic! прошлый век!)

Раньше в ядрах 2.2.х, 2.4.х было необходимо сделать следующее:
   cd /usr/include
   rm -rf asm linux scsi
   ln -s /usr/src/linux/include/asm-i386 asm
   ln -s /usr/src/linux/include/linux linux
   ln -s /usr/src/linux/include/scsi scsi
то бишь сделать ссылки:
   /usr/include/linux -> /usr/src/linux/include/linux
   /usr/include/asm   -> /usr/src/linux/include/asm
   /usr/src/linux/include/asm -> /usr/src/linux/include/asm-i386 (architecture of mine pocessor)
И этого хватало для компиляции ядра.


Но на http://www.opennet.me/docs/RUS/lfs/chapter06/kernel.html рекомендуют делать так:
=== CUT ===
ln -s /static/bin/pwd /bin/pwd &&
make mrproper &&
make include/linux/version.h &&
make symlinks &&
mkdir /usr/include/asm &&
cp include/asm/* /usr/include/asm &&
cp -R include/asm-generic /usr/include &&
cp -R include/linux /usr/include &&
touch /usr/include/linux/autoconf.h &&
rm /bin/pwd
=== CUT ===

Там же есть следующее любопытное высказывание:
=== CUT ===
Раньше было принято создавать символические ссылки директорий /usr/include/{linux,asm} на /usr/src/linux/include/{linux,asm}. Однако, это была плохая идея, как объясняет Линус Торвальдс в списке рассылки ядра Linux (Linux Kernel Mailing List, отрывок):

Тем, кто компилирует новые ядра, настоятельно рекомендую:

- не создавать символических ссылок (кроме той, которую создает
   само ядро, "linux/include/asm", символическая ссылка, которая
   используется при внутренней компиляции ядра.)

Да, именно так делаю я. В моем каталоге /usr/src/linux есть заголовки
старого ядра 2.2.13, несмотря на то, что я не использовал ядро 2.2.13
уже очень давно. Однако именно с этими заголовками компилировался
пакет glibc, соответственно именно эти заголовки соответствуют
файлам объектов библиотеки.

Также именно такое положение вещей являлось рекомендуемым
на протяжении последних пяти лет. Я не могу понять, почему вся эта
заморочка с символическими ссылками все еще существует, как зомби.
Практически во всех дистрибутивах есть эта неработающая символическая
ссылка, и люди до сих пор помнят, что исходники ядра Linux должны
находится в "/usr/src/linux", несмотря на то, что это уже давно не так.
=== CUT ===
ТАК КАК ЖЕ ДЕЛАТЬ ПРАВИЛЬНО?
что куда как копировать и какие ссылки создавать?

Где и зачем хранить заголовки ядра?


3. При попытке создать "по старинке" ссылки для ядра 2.6 в FC4 командами
   cd /usr/include
   rm -rf asm linux scsi
   ln -s /usr/src/linux/include/asm-i386 asm
   ln -s /usr/src/linux/include/linux linux
   ln -s /usr/src/linux/include/scsi scsi
ссылки, разумеется, создаются.
НО при выполнении команды make menuconfig получаю следующий ответ:
=== CUT ===
[root@vampire linux]# make menuconfig
  HOSTCC  scripts/basic/fixdep
scripts/basic/fixdep.c: In function 'parse_config_file':
scripts/basic/fixdep.c:245: warning: pointer targets in passing argument 1 of 'use_config' differ in signedness
scripts/basic/fixdep.c: In function 'parse_dep_file':
scripts/basic/fixdep.c:299: warning: pointer targets in passing argument 1 of '__builtin_strchr' differ in signedness
scripts/basic/fixdep.c:299: warning: pointer targets in assignment differ in signedness
  HOSTCC  scripts/basic/split-include
In file included from /usr/include/linux/errno.h:4,
                 from /usr/include/bits/errno.h:25,
                 from /usr/include/errno.h:36,
                 from scripts/basic/split-include.c:26:
/usr/include/asm/errno.h:4:31: error: asm-generic/errno.h: No such file or directory
scripts/basic/split-include.c: In function 'main':
scripts/basic/split-include.c:113: warning: pointer targets in assignment differ in signedness
make[1]: *** [scripts/basic/split-include] Error 1
make: *** [scripts_basic] Error 2
=== CUT ===

Выходит теперь эти линки не работают? или я что-то делаю не так?
  

ИТОГО:

Блин! Есть где-нибудь ПОЛНАЯ информация о том, какие ВСЕ предварительные операции необходимо сделать с системой перед компилированием ядра?
Существующие FAQ-и и прочие доки либо ограничиваются банальными
   make mrproper
   make config (menuconfig, xconfig...)
   make dep
   make clean
либо описывают процесс подготовки прошлого века -- типа создания ссылок на каталоги.
Неужели нет ни одной ТОЛКОВОЙ доки? Чтобы от А до Z?
Интересует компиляция версии ядра 2.6.х, оф коз...

v.v.balashoff

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "2.6 kernel compiling" 
Сообщение от anonymous Искать по авторуВ закладки(??) on 08-Ноя-05, 07:43  (MSK)
1. Для сборки src.rpm существует rpmbuild
   какой файл куда и для чего из SOURCES читай в SPECS/kernel.spec или как он там зовется.

2.  
> ТАК КАК ЖЕ ДЕЛАТЬ ПРАВИЛЬНО?
ПРАВИЛЬНО ПРО ЭТОТ ПУНКТ ВООБЩЕ ЗАБЫТЬ

3.
>  Блин! Есть где-нибудь ПОЛНАЯ информация о том,
> какие ВСЕ предварительные операции необходимо сделать с системой перед
> компилированием ядра?

Закачать из kernel.org распаковать,
make menuconfig
make

Если качаешь от РедХат так и выполняй по правилам RPM
Не надо форум засорять

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру