Ставимо ядро ​​2

Ставимо ядро ​​2.6, або Ядерна фізика для домогосподарки.

Качайте архів tar.bz2 - він менше за розміром. Назва файлу повинна бути приблизно таким - linux-2.6.0.tar.bz2. розмір файлу близько 33 Мбайт. Качайте завжди останнім стабільне ядро.

Якщо у вас вже є ядро ​​2.6.0. а вам потрібно поставити наприклад 2.6.2, то необов'язково качати знову 33 Мбайта, можна викачати заплатки [їх також називають ще "патчі", але давайте говорити російською] і оновити вихідні вашого ядра до останньої версії. В такому випадку вам потрібно викачати все заплатки по зростанню номерів версії від вашої версії до останньої. В даному прикладі це заплатки 2.6.1 і 2.6.2. Файли заплаток називаються так - patch-2.6.1.bz2. Їх може не бути на головній сторінці. пошукайте їх на ftp сервері.

Крім самого ядра нам можливо знадобиться викачати додаткові заплатки, що розширюють можливості ядра. Наприклад, в ядрі 2.6 немає підтримки lirc (пульти дистанційного керування). Щоб ця підтримка була, на ядро ​​потрібно накласти відповідну латку.

Для прикладу візьмемо такі заплатки:

Качати краще латочку для тієї версії ядра яку ви хочете поставити, якщо їх немає, то можна закачати для самої останньої з наявних. В такому випадку є ймовірність що латочка не поставили. Причому ймовірність цього тим більше, чим більше різниця в версіях ядер. Припустимо що ми ставимо ядро ​​2.6.1 і отримали такі файли

Добре. Тепер підготуємо папку, де будемо збирати ядро. В Лінуксі для збірки з вихідних є спеціальний каталог / usr / src. Однак за замовчуванням писати туди пересічному користувачеві заборонено, тому спочатку дамо собі права. Найпростіший спосіб - запустити консоль, отримати права root і командою chmod дозволити всім запис.

[Mike @ localhost mike] $ su -
Password:
[Root @ localhost root] # chmod a + w / usr / src
[Root @ localhost root] #

Копіюємо вихідні ядра (linux-2.6.0.tar.bz2) в папку / usr / src

Вийшов каталог linux-2.6.0. Перейменуйте його, наприклад, в linux-2.6.1-my

Копіюємо все заплатки туди і переходимо до наступного пункту.

2. Ставимо заплатки

Спочатку розпакуємо упаковані заплатки. У mc для цього файлу натисніть F2 а потім "y" (для .gz архіву) або "b" (для .bz2 архіву). У gentoo виділіть всі файли натисніть праву кнопку Дії-Розпакувати.

Тепер власне про встановлення латочок. Спочатку накладаємо закладку для оновлення версії ядра (patch-2.6.1), потім інші. У файловому менеджері Gentoo для установки можна просто натиснути правою кнопкою і вибрати Дії-Накласти. В консолі потрібно дати таку команду

У нашому прикладі це буде виглядати так

[Mike @ localhost linux-2.6.1-my] $ patch -p1 -i patch-2.6.1
patching file CREDITS
patching file Documentation / Changes
patching file Documentation / DocBook / kernel-locking.tmpl
.
patching file sound / sound_core.c
patching file sound / usb / usbaudio.h
patching file usr / gen_init_cpio.c

[Mike @ localhost linux-2.6.1-my] $ patch -p1 -i bootsplash-3.1.3-2.6.0-test9.diff
patching file drivers / char / keyboard.c
Hunk # 1 succeeded at +1052 (offset 7 lines).
patching file drivers / char / n_tty.c
patching file drivers / char / vt.c
patching file drivers / video / Kconfig
patching file drivers / video / Makefile
patching file drivers / video / bootsplash / Kconfig
patching file drivers / video / bootsplash / Makefile
patching file drivers / video / bootsplash / bootsplash.c
patching file drivers / video / bootsplash / bootsplash.h
patching file drivers / video / bootsplash / decode-jpg.c
patching file drivers / video / bootsplash / decode-jpg.h
patching file drivers / video / bootsplash / render.c
patching file drivers / video / console / fbcon.c
patching file drivers / video / console / fbcon.h
patching file drivers / video / vesafb.c
patching file include / linux / console_struct.h
patching file include / linux / fb.h
patching file kernel / panic.c

[Mike @ localhost linux-2.6.1-my] $ patch -p1 -i Kernel-Win4Lin3-2.6.0.patch
patching file kernel / exit.c
Hunk # 2 succeeded at 772 (offset 8 lines).
patching file kernel / fork.c
Hunk # 1 succeeded at 896 (offset 34 lines).
patching file kernel / sched.c
Hunk # 3 succeeded at 827 (offset 1 line).
patching file mm / vmscan.c
patching file arch / i386 / Kconfig
Hunk # 1 succeeded at 1167 (offset 43 lines).
patching file arch / i386 / kernel / apm.c
patching file arch / i386 / kernel / cpu / common.c
patching file arch / i386 / kernel / entry.S
patching file arch / i386 / kernel / head.S
patching file arch / i386 / kernel / process.c
patching file arch / i386 / kernel / signal.c
patching file arch / i386 / kernel / vm86.c
patching file arch / i386 / Makefile
patching file arch / i386 / mki / Makefile
patching file arch / i386 / mki / mki.c
patching file arch / i386 / mm / fault.c
patching file include / asm-i386 / desc.h
patching file include / asm-i386 / mki.h
patching file include / asm-i386 / mkiversion.h
patching file include / asm-i386 / segment.h
patching file include / asm-i386 / thread_info.h
patching file include / linux / init_task.h
patching file include / linux / sched.h
Hunk # 1 succeeded at 463 (offset -1 lines).

[Mike @ localhost linux-2.6.1-my] $ patch -p1 -i mki-adapter26_1_3_3.patch
patching file arch / i386 / Makefile
patching file arch / i386 / mki-adapter26 / LICENSE
patching file arch / i386 / mki-adapter26 / Makefile
patching file arch / i386 / mki-adapter26 / mki26.c
patching file arch / i386 / mki-adapter26 / mki-adapter26.h
patching file arch / i386 / mki-adapter26 / mkifunc.h
patching file arch / i386 / mki-adapter26 / mki-main.c
patching file arch / i386 / mki-adapter26 / mkivnet.c
patching file arch / i386 / mki-adapter26 / README
patching file arch / i386 / mki-adapter26 / timer.c
patching file arch / i386 / mki-adapter26 / vneteth.h
patching file arch / i386 / mki-adapter26 / vnetint-pub.h

Зверніть увагу на висновок команди patch

Якщо латочка ідеально підходить до ядра, то у висновку повинні бути тільки рядки patching file. . Якщо ви бачите рядок Hunk # 1 succeeded at. це означає що латочка накладена успішно, але місце накладення зрушено на деякий кількість рядків. Якщо ж ви побачите слово Failed - то значить латочка не підходить, потрібно шукати більш відповідну. В цьому випадку краще видалити наш каталог /usr/src/linux-2.6.1-my і почати все спочатку.

Отже, вихідні коди ядра готові і чекають коли їх скомпілюйте.

3 Компілюємо

3.1 Підготовка

Цим ви зможете завантажити графіком, але не зможете з таким драйвером грати в ігри. Щоб повернути все як було до наших експериментів, знайдіть на настановних дисках пакети (номер версії може бути інший)

NVIDIA_GLX-1.0-4363asp.i386.rpm
і один з
NVIDIA_kernel-2.4.20-9asp.i686.rpm
NVIDIA_kernel-2.4.20-9asp.athlon.rpm

в залежності від того ядра, яке у вас встановлено. Пакети ставте командою

Не забудьте виправити файл / etc / X11 / XF86Config

Подяки

Дякую всім, хто надав мені підтримку, допоміг у виправленні помилок:

Бібліотека Лінуксцентра. список розділів

Схожі статті