Просцесс пересборки ядра полягає в редагуванні конфігураційного файлу і подальшої компіляції ядра з опціями зазначеними в файлі конфігурації. Для збірки ядра нам знадобляться вихідні ядра, якщо вони не встановлені то встановити їх можна двома способами:
Установка початкових кодів ядра допомоги sysinstall
Входимо в систему в якості root, ставимо інсталяційний диск в привід і запускаємо sysinstall, в ньому вибираємо такі опції: Configure-> Distributions-> src-> sys:
Установка початкових кодів ядра за допомогою інсталяційного скрипта
Для установки початкових кодів нам доведеться змонтувати інсталяційний диск і виконати скрипт, який встановить зазначені вихідні коди в каталог / usr / src. Логіном як root, встановлюємо інсталяційний диск в привід і виконуємо:
# Mount / cdrom
# Cd /cdrom/7.2-RELEASE/src
# Mkdir / usr / src
# Sh install.sh sys
Першою командою монтуємо привід в каталог / cdrom, другою командою переходимо в каталог /cdrom/7.2-RELEASE/src, третин командою створюємо каталог src в каталозі / usr, четвертою командою запускаємо на виконання скрипт з аргументом sys, який помістить в / usr / src каталог sys з вихідними кодами. Якщо інсталяція відбудеться успішно то на дисплеї з'явиться повідомлення:
Extracting sources into / usr / src.
Extracting source component: sys
Done extracting sources.
Редагування конфіга ядра
Після того як вихідні тексти ядра знаходяться в / usr / src / sys можна приступати власне до процесу пересборки ядра. В якості мети пересборки оберемо можливість включення в ядро опцій для відображення консолі в графічному режимі. За замовчуванням консоль відображається в текстовому режимі. Для того щоб створити свій конфіг ядра зробимо наступне:
# Cd / usr / src / sys / i386 / conf /
# Cp GENERIC MYKERN
# Ee MYKERN
Першою командою ми переходимо в каталог / usr / src / sys / i386 / conf / (зверніть увагу на каталог i386, якби я використовував би дистрибутив системи іншої архітектури, припустимо amd64 то мені б треба було б переходити в соотв. Моєї архітектурі каталог) , потім копіюємо файл GENERIC в файл з назвою MYKERN, після чого редагуємо файл MYKERN. Фактично ми скопіювали конфиг стандартного ядра в файл MYKERN і виправляти будемо його а не GENERIC. Конфиг ядра складається з рядків із заданими параметрами:
Знаходимо в конфіги рядки:
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
ident GENERIC
І міняємо їх наступним чином:
cpu I686_CPU
ident MYKERN
Тобто рядки описують 486 і 586 типи процесорів видаляємо за непотрібністю, а в рядок ident вписуємо назву нашого ядра. Це потрібно для того щоб відрізняти наше ядро від GENERIC.
Потім слід блок описує які опції і пристрої будуть включені в ядро. Опції позначаються як options а пристрої як device. Нам буде потрібно додати в ядро дві опції - VESA і SC_PIXEL_MODE, помістимо їх в кінці першого блоку опцій:
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
#options KDTRACE_HOOKS # Kernel DTrace hooks
Після додавання:
.
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
#options KDTRACE_HOOKS # Kernel DTrace hooks
options VESA
options SC_PIXEL_MODE
На дисплеї з'явиться повідомлення:
Kernel build directory is. / Compile / MYKERN
Do not forget to do `` make cleandepend make depend ''
Після чого виконуємо:
# Cd. / Compile / MYKERN
# Make depend all install clean
Першою командою ми переходимо в каталог рівнем вище compile / MYKERN створений командою configure MYKERN і потім виконуємо збірку ядра, після складання відбувається чистка тимчасових файлів, що залишилися від збірки ядра. Після закінчення складання виконуємо перезавантаження системи і дивимося висновок команди uname -a:
Фактично це означає що ядро пересобран. І якщо виконати команди vidcontrol -i mode то ми побачимо додаткові VESA режими, які раніше були недоступні, до пересборки ядра.
У разі, якщо після перезапуску системи виникла проблема - не вантажиться зібране ядро, то завантажити дефолтний ядро GENERIC можна, використовуючи командний рядок завантажувача loader promt. Для цього в стартовому меню з вибором Виріанти завантаження вибираємо "Escape to loader promt" (пункт 6), після цього на дисплеї з'явиться пріглашніе до введення:
Щоб повністю вичистити з пам'яті завантажене ядро з усіма модулями слід ввести команду unload:
Ніякого підтвердження після введення на екрані не з'явиться, після цього вантажимо попереднє робоче ядро. Вводимо load /boot/kernel.old/kernel:
OK load /boot/kernel.old/kernel
Через кілька секунд ядро завантажиться і вводимо команду boot:
Ми завантажилися з робочим ядром :)
Щоб постійно вручну не завантажувати GENERIC, то перебуваючи в системі робимо наступне:
# Cd / boot /
# Mv kernel kernel.back
# Mv kernel.old kernel
Першою командою переходимо в каталог / boot, потім перейменовуємо каталог kernel в kernel.back (про всяк випадок), потім перейменовуємо kernel.old (в цьому каталозі і знаходиться попереднє робоче ядро GENERIC) в kernel (система за замовчуванням завантажує ядро з каталогу / boot / kernel).
P.S. Ознайомитися зі списком команд завантажувача можна запровадивши "?". Отримати інформацію по тій чи іншій команді потрібно ввести help імя_команди, наприклад: