- Завантаження початкових кодів ядра.
- Підготовка каталогів з кодами ядра.
- Конфігурація ядра.
- Компіляція ядра і установка модулів.
- Переміщення ядра.
- Налагодження та запуск lilo.
- Налагодження та запуск Grub.
Для нормальної зборки і компіляції ядра слід виконувати всі етапи по порядку.
2. Підготовка каталогів з кодами ядра.
Для початку компіляції нового ядра виконай команду:
На цьому етапі доведеться вибрати опції, які будуть використовуватися в новому
ядрі. Не обов'язково вникати в подробиці маси опцій. У більшості з них
можна скористатися налаштуваннями за замовчуванням.
Існують три методи створення файлу конфігурації, що використовується при складанні
нового ядра:
- make config
- make menuconfig
- make xconfig
make config - це найбільш простий покроковий сценарій.
make menuconfig - це більш зручний метод (вимагає наявність ncurses).
make xconfig - це графічна утиліта для настройки ядра. Перед тим, як їй
скористатися необхідно перейти в середу X Window.
Для кожної з представлених опцій є 3 настановних параметра: y, m, n.
y (yes) - Включає або вбудовує опцію в ядро.
m (module) - Створює щодо вибраного параметра завантаження в динамічному режимі
модуль (без reboot'a). Існує не для всіх опцій.
n (no) - Вимикає підтримку опції.
Для використання конфігуратора на базі X в системі повинні буть встановлено
бібліотеки TCL / TK.
4. Компіляція ядра і установка модулів.
У свою чергу цей етап ділиться на кроки:
1 Підготовка
-> Make dep
-> Make clean
2 Безпосередньо збірка ядра
-> Make bzImage | bzdisk | bzlilo
3 Складання та встановлювання модулів
-> Make modules
-> Make modules_install
Перший з них - make dep і make clean - є типу підготовкою. після
виконання make dep створюються файли залежностей (.depend), які располаются
в кожному з підкаталогів древа вихідних кодів. Якщо немає порушень в розташуванні
компонентів древа, то процес пройде спокійно. Далі використовується команда
make clean, яка видалить всі зайві (допоміжні) файли, створені від
попередніх процесів компіляції.
Далі йде крок, при якому необхідно безпосередньо зібрати ядро. для збірки
ядра доведеться вибрати одну з 3-х команд: make bzImage, make bzdisk або make
bzlilo. Кожна з команд виконує фактично одну і ту-ж операцію, тільки
дві останні виконують одне додаткове дію.
Розглянемо докладніше кожну з команд:
make bzImage - стандартна операція, при якій буде тільки скомпільовано
ядро. Якщо все пройшло без проблем, то створене в результаті компіляції ядро
буде розташовано в каталозі / usr / src / linux / arch / i386 / boot. В цьому випадку ядру
присвоюється ім'я bzImage. Диспетчер завантаження lilo | grub повинен знайти це ядро і
завантажити його. Для цього достатньо скопіювати файл bzImage і виконати команду
lilo для переустановлення диспетчера завантаження.
Третім кроком є складання та встановлення модулів ядра.
Після завершення процесу складання тобі необхідно інсталювати як ядро, так
і його map-файл в каталог, де вони будуть постійно перебувати (/ boot).
Скопіюй (або перетягни) файл System.map в каталог / boot, додавши номер версії
ядра в кінець рядка:
cp System.map /boot/System.map-2.X.X
Потім точно так-же скопируй (або перетягни) і саме ядро:
cp arch / i386 / boot / bzImage /boot/bzImage-2.X.X
Коли ядро і map-файл будуть на своєму новому місці проживання тобі залишиться
виконати тільки два коротких дії, після яких ти зможеш перезавантажитися
вже з новим ядром (або зі старим, якщо виникнуть трабли =)).
старий lilo.conf, останні 6 рядків)
image = / boot /<Уже стоящее в системе ядро>
lable = linux
root = / dev / hda1
vga = 274
read-only
append = «debug = 2 noapic nosmp»
Покоцать (Модифікований lilo.conf с)
image = / boot /<Уже стоящее в системе ядро>
lable = linux.orig
root = / dev / hda1
vga = 274
read-only
append = «debug = 2 noapic nosmp»
image = / boot /<Новое ядро>
lable = linux
root = / dev / hda1
vga = 274
read-only
append = «debug = 2 noapic nosmp»
Зверни увагу на lable = linux.orig (це мітка старого ядра).
Після конфігурації файлу /etc/lilo.conf слід пеановіть диспетчер
початкового завантаження системи. Для цього виконай наступні команди:
# lilo
Added linux *
Added linux.orig
Усе. Якщо все пройшло без помилок, то пора перезавантажити систему.
У разі, якщо нове ядро є причиною некоректної роботи системи у
час її завантаження, то ти можеш скористатися вихідним ядром. Для завантаження
системи необхідно ввести ім'я мітка бажаного образу завантаження. щоб вивести
на екран перелік доступних позначок натиснути на клавішу
Прописуємо нове Ядров конфиг (/boot/grub/menu.lst)
title linux 2.6.28
kernel (hd0,4) /boot/bzImage-2.6.28 BOOT_IMAGE = linux_2.6.28 root = / dev / hda5 resume = / dev / hda1 splash = silent vga = 788
initrd (hd0,4) /boot/initrd-2.6.28.img
тому без initrd у мене не запускалося, створюємо його так:
/ Sbin / mkinitrd /boot/initrd-2.х.хх.img 2.х.хх
Тепер можна перезавантажуватися і завантажувати новий ядро.
все ... Сподіваюся що все вищеописане в статті вам як-небудь чином допоможе ...
З цієї інструкції оновлював ядро на CentOS 5.5 але при завантаженні видавало що не може змонтувати / dev / root (mount: could not find filesystem '/ dev / root')
в конфіг додана опція