PDA

Просмотр полной версии : Компиляция ядра Linux ???


VackuM
15.08.2006, 23:26
Хочу перекомпилить ядро. Этот процесс делаю первый раз, но как всегда сразу ничего не выходит.

Значит я так понял для компиляции ядра нужно выполнить 4 команды:
make dep
make bzimage
make modules
make modules_install

После этого нужно новое ядро переместить в /boot
и после этого подправить LILO.


Но у меня даже первая команда не работает

make dep
*** Warning: make dep is unnecessary now.

"make dep ненужный сейчас" и как это мне понимать ???

У миня Linux Mandrake 10.1
kernel 2.6.8.

Заранее спасибо!!!

nerezus
16.08.2006, 00:01
надо это делать в папке с ядром наверное.
и теи более нах ты его пересобираешь, если конфиг не отредактировал.

make menuconfig вроде

VackuM
16.08.2006, 01:52
Понял вот полная версия:

[vackum@Free-Server vackum]$ su root
Password:********

[root@Free-Server vackum]# cd /usr/src/linux
[root@Free-Server linux]# make menuconfig
blabla...
blabla...
blabla...
отредактировал
сохранил

[root@Free-Server linux]# make dep
*** Warning: make dep is unnecessary now.
[root@Free-Server linux]#

Deem3n®
16.08.2006, 19:47
Видимо не нужен make dep.
Доступные опции компиляции ядра:
cd /usr/src/linux; make help | less

[loy]
27.08.2006, 03:01
make dep для 2.4 тама зависимости определяюца
вот

make menuconfig
#make dep (для 2.4)
make clean
make bzImage
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-my (ну или как тама. поправте как надо)
make modules
make modules_install

истествено от рута
и поправте конфиги загрузчика своего

LX_D
02.10.2006, 20:59
Вопросик по теме. Не могу понять что делать с откомпилированным ядром. Копирую сам бинарник и его map-файл в /boot, переименовываю их в vmlinux-2.6.18 и System.map-2.6.18 соответственно. Проблема в том, что у меня загрузчик grub, а не lilo и в конфиге требуется указать соответствующий initrd. Так, вот хотелось бы узнать где найти этот файл? И зачем он нужен?

Дистриб - FC5

Да, ... и сколько обычно весит ядрышко линукса?

blackybr
02.10.2006, 22:07
make config
make dep (можно еще make clean)
make zImage (также можно на дискету или флэху скинуть новое ядро командой типа make zdisk)
если у тебя лило то make zlilo
и дальше по написанному тобой..

а вообще если в первый раз, то советую с помощью патчей обновлять ядро )

pop_korn
02.10.2006, 22:28
INITRD(4) Руководство программста Linux INITRD(4)

ИМЯ
initrd - RAM-диск, инициализируемый загрузчиком

ОПИСАНИЕ
Специальный файл /dev/initrd - это блочное устройство только для
чтения. Устройство /dev/initrd - это диск, расположенный в оперативной
памяти, который инициализируется (т.е. загружается) загрузчиком до
запуска ядра. Затем ядро может использовать содержимое блочного
устройства /dev/initrd для двухфазовой загрузки системы.

Во время первой фазы ядро запускает и монтирует начальную корневую
файловую систему из содержимого /dev/initrd (например, RAM-диска,
инициализируемого загрузчиком). Во время второй фазы из начального
содержимого корневого устройства загружаются дополнительные драйвера
или другие модули. После загрузки дополнительных модулей с другого
устройства монтируется новая корневая файловая система (т.е.,
нормальная корневая файловая система).


тоесть он нужен в случаях, если у тебя драйвер на винт сделан модулем, а модуль на винте :)

Да, ... и сколько обычно весит ядрышко линукса?

ядро:

1,8M /boot/vmlinuz-2.6.17.11-korn

модули:

7,4M /lib/modules/2.6.17.11-korn

LX_D
03.10.2006, 22:33
pop_korn, хоть подсказал бы: man mkinitrd :D

Для всех остальных даю парочку линков по теме (может поможет ;) ).
http://gazette.linux.ru.net/lg68/articles/rus-ghosh.html
http://www.comprice.ru/linux/2004-18.phtml

L0rd_Ha0S
05.10.2006, 19:36
Initrd не нужен, если все необходимые для загрузки драйверы включить в ядро. Поэтому включи все что надо в ядро, initrd отключи - Initial RAM disk (initrd) support - N. Этот параметр находиться в Device Drivers-> Block Devices (ну или где-то рядом). Если Initrd все же понадобиться(например, если захочешь сделать графическую загрузку ядра) тогда все нужные для загрузки ядра драйверы делай модулями(хотя это необязательно, в случае с графической загрузкой, можешь так и оставить их в ядре), и создавай образ ram-диска командой
mkinitrd имя_диска.img
Потом этот образ указываешь в загрузчике.