# Debian і ядро

## Чи можу я встановити та скомпілювати ядро без специфічних для Debian вдосконалень?

Так.

Є лише одна поширена пастка: C-бібліотеки Debian компонуються з найновішими стабільними версіями заголовків ядра. Якщо у вас виникне потреба скомпілювати програму з новішими заголовками, вам буде потрібно або оновити пакунок, що містить заголовки (`libc6-dev)`, або використовувати нові заголовки з розпакованого найновішого ядра. Тому, якщо джерельні коди ядра розташовані в `/usr/src/linux`, то ви повинні додати параметр `-I/usr/src/linux/include/` до вашого командного рядка під час компіляції.

## Які інструменти пропонує Debian для компонування нестандартних ядер?

Користувачі, котрі хочуть (або повинні) збирати нестандартні ядра, можуть завантажити пакунок `kernel-package`. Він містить скрипт для створення пакунка з ядром та забезпечує можливість створити Debian-пакунок `kernel-image-`версія`` простим запуском команди

    make-kpkg kernel_image

у верхній теці джерельних кодів ядра. Довідка є доступною шляхом виконання команди

    make-kpkg --help

та на сторінці підручника

make-kpkg

1.

Користувачі повинні окремо завантажити джерельні коди найсвіжішого ядра (або іншого, за їхнім вибором) з їхнього улюбленого сайту Linux-архіву, якщо пакунок `kernel-source-`version`` чомусь недоступний (де `version` означає версію ядра).

Детальні інструкції щодо використання пакунку `kernel-package` подано у файлі `/usr/share/doc/kernel-package/README.gz`. Якщо коротко, то вам потрібно:

- Розпакувати джерельні коди ядра та перейти у новостворену теку.

- Налаштувати конфігурацію ядра за допомогою однієї з команд:

  - `make config` (для чисто текстового інтерфейсу „один-рядок-за-раз“).

  - `make menuconfig` (для псевдографічного інтерфейсу, що базується на бібліотеці ncurses). Зауважте, що при цьому у вас має бути встановлений пакунок `libncurses5-dev`.

  - `make xconfig` (для інтерфейсу X11). Ця опція відповідно вимагає встановлених пакунків X, а також Tcl/Tk.

  Будь-який з цих кроків створює новий файл `.config` у верхній теці джерельних кодів ядра.

- Виконати команду: `make-kpkg -rev Custom.`N` kernel_image`, де N — це номер редакції, що вказується користувачем. Цим буде сформовано новий архівний файл Debian з версією перегляду Custom.`N`, наприклад, `kernel-image-2.2.14_Custom.1_i386.deb` для Linux-ядра 2.2.14 і архітектури i386.

- Встановити створений пакунок.

  - Запустити `dpkg --install ../kernel-image-`VVV`_Custom.`N`_i386.deb`, щоб встановити ядро. Встановлювальний сценарій:

    - при необхідності запустить завантажувач (grub, LILO чи якийсь інший),

    - встановить нестандартне ядро в `/boot/vmlinuz_`VVV`-Custom.`N``, та створить необхідні символічні відсилачі до попередніх версій ядра.

    - запитає користувача, чи створювати завантажувальну дискету. Ця дискета міститиме лише ядро (див. custombootdisk).

  - Щоб використати другий завантажувач, `loadlin`, скопіюйте цей образ в інше місце (наприклад, розділ `MS-DOS`).

## Як мені створити нестандартну завантажувальну дискету?

В розв'язанні цієї задачі вам дуже допоможе пакунок `boot-floppies`, що знаходиться в секції `admin` FTP-архіву Debian. Сценарії оболонки, що знаходяться у цьому пакунку, формують завантажувальні дискети у форматі `SYSLINUX`. Це дискети, відформатовані під `MS-DOS`, чиї завантажувальні сектори були модифіковані таким чином, що вони можуть завантажити Linux (чи будь-яку іншу операційну систему, що описана у файлі `syslinux.cfg`). Інші сценарії в цьому пакунку створюють відновлювальні диски, або навіть можуть перестворювати базові.

Більше інформації ви зможете знайти у файлі `/usr/doc/boot-floppies/README` після того, як встановите пакунок `boot-floppies`.

## Які особливі можливості пропонує Debian для роботи з модулями ядра?

Пакунок `modconf` забезпечує сценарій (`/usr/sbin/modconf`), котрий може використовуватись для налагодження конфігурації модулів. Цей сценарій пропонує меню-подібний інтерфейс, запитуючи користувача про деталі завантажуваних драйверів пристроїв у системі. Відповіді користувача використовуються для налаштування файлу `/etc/modules.conf` (в ньому перелічені псевдоніми та інші аргументи, що повинні використовуватись разом з різноманітними модулями) через файли в `/etc/modutils/` та `/etc/modules/` (де перераховуються модулі, що мають завантажитись при ввімкненні системи).

Пакунок `modconf`, як і (нові) файли Configure.help, котрі зараз доступні для підтримки в конструюванні власних ядер, поставляється з набором файлів довідки (в `/usr/lib/modules_help/`), де подано детальну інформацію про аргументи, котрі можна передати будь-якому з модулів.

## Чи можу я безпечно видалити старий пакунок ядра, і якщо можу, то як?

Так. Скрипт `kernel-image-`NNN`.prerm` перевіряє, чи ядро, котре у вас зараз запущено, не є тим самим, яке ви збираєтесь видалити і намагається видалити вказане ядро. Таким чином ви можете видалити небажані пакунки образів ядра за допомогою такої команди:

    dpkg --purge --force-remove-essential kernel-image-NNN

(NNN, звісно, потрібно замінити версією та номером редакції вашого ядра).