Збираємо ядро ​​linux

Відео: Компіляція ядра в linux

Найголовнішим компонентом операційної системи Linux є ядро. Саме ядро ​​виступає проміжною ланкою між одними програмами і обладнанням комп`ютера. У всіх бінарних дистрибутивах нам не потрібно піклуватися про складання та настроювання ядра, все вже зробили за нас розробники дистрибутива. Але якщо ми хочемо зібрати свій дистрибутив самі або встановити найсвіжішу версію ядра, нам доведеться збирати ядро ​​вручну.

Перший варіант раніше був актуальний для тих хто хотів отримати максимальну продуктивність від свого обладнання, але зараз, з огляду на стрімке збільшення потужності комп`ютерів збільшення продуктивності при складанні ядра зовсім непомітно. Зараз збірка ядра може знадобитися користувачам не бінарних дистрибутивів, таких як Gentoo, тим, хто хоче внести деякі зміни в ядро, отримати нову найсвіжішу версію ядра і, звичайно, ж тим, хто хоче повністю розібратися в роботі своєї системи.

У цій інструкції ми розглянемо як зібрати ядро ​​Linux. Перша частина розповість як налаштувати ядро ​​в автоматичному режимі. Так би мовити, для тих хто не хоче розбиратися як воно працює, кому потрібно лише отримати на виході готовий продукт - зібране ядро. У другій частині ми розглянемо основні етапи ручної настройки ядра, це процес складний, і нешвидкий, але я спробую дати основу, щоб ви могли з усім розібратися самі.

Отримання початкових кодів ядра

Найперше що потрібно зробити - це завантажити вихідні ядра. Вихідні тексти кращі брати з сайту вашого дистрибутива, якщо вони там є або офіційного сайту ядра: kernel.org. Ми розглянемо завантаження початкових кодів з kernel.org.

Перед тим як завантажувати вихідні нам потрібно визначитися з версією ядра яку будемо збирати. Є дві основні версії релізів - стабільні (stable) і кандидати в релізи (rc), є, звичайно, ще стабільні з тривалим періодом підтримки (longterm) але важливо зараз розібратися з першими двома. Стабільні це, як правило, не найновіші, але зате вже добре протестовані ядра з мінімальною кількістю багів. Тестові - навпаки, найновіші, але можуть містити різні помилки.

Отже коли визначилися з версією заходимо на kernel.org і викачуємо потрібні вихідні в форматі tar.xz:

kernel6

У цій статті буде використана найновіша на даний момент нестабільна версія 4.4.rc7.

Отримати вихідні ядра Linux можна також за допомогою утиліти git. Спочатку створимо папку для початкових кодів:

$ Git clone https://github.com/torvalds/linux

Розпакування исходников ядра

Тепер у нас є збережені вихідні. Переходимо в папку з вихідними кодами:

$ Mkdir linux_sources $ tar xf linux *

І переходимо в папку з розпакованим ядром, у мене це:

Відео: Linux - Компілюємо ядро ​​на Ubuntu 15.04

$ Zcat /proc/config.gz gt; .config

А далі запускаємо скрипт адаптації налаштувань:

$ Make menuconfig

Відкриється ось утиліта з інтерфейсом ncurses:




kernel5

Як бачите, деякі обов`язкові опції вже включені, щоб полегшити вам процес налаштування. Почнемо з самих основних параметрів. Щоб включити параметр натисніть y, щоб включити модулем - m, для переміщення за допомогою клавіш стрілок і Enter, повернутися на рівень вгору можна кнопкою Exit Відкрийте пункт General Setup.

Тут встановлюємо такі параметри:

Local Version - локальна версія ядра, буде збільшуватися при кожній збірці на одиницю, щоб нові ядра при установці не замінювали собою старі, встановлюємо значення 1.

kernel1

Automatically append version information to the version string - додавати версію в назву файлу ядра.

Відео: Урок 15 Компіляція ядра Linux

Kernel Compression Mode - режим стиснення образу ядра, найефективніший lzma.

Default Hostname - ім`я комп`ютера, що відображається в запрошенні введення




POSIX Message Queues - підтримка черг POSTIX

Support for paging of anonymous memory - включаємо підтримку swap

Control Group support - підтримка механізму розподілу ресурсів між групами процесів

Kernel .config support і Enable access to .config through /proc/config.gz- включаємо можливість витягти конфігурацію ядра через /proc/config.gz

Тут все, повертаємося на рівень вгору і включаємо Enable loadable module support, ця функція дозволяє завантаження зовнішніх модулів, далі відкриваємо його меню і включаємо:

kernel3

Module unloading - підтримка відключення модулів

Forced module unloading - примусове відключення модулів

Знову повертаємося назад і відкриваємо Processor type and features:

Processor family (Opteron / Athlon64 / Hammer / K8) - вибираємо свій тип процесора.

Знову повертаємося і переходимо в розділ File systems, тут встановіть всі необхідні галочки.

kernel4

обов`язково вкажіть The Extended 3 (ext3) filesystem і The Extended 4 (ext4) filesystem - для підтримки стандартних ext3 і ext4 файлових систем

Повертаємося і йдемо в Kernel hacking.

тут включаємо Magic SysRq key - підтримка магічних функцій SysRq, річ не першої необхідності, але часом корисна.

Залишився ще один пункт, найскладніший, бо вам його доведеться пройти самому. Device Drivers - потрібно пройтися по розділах і повключали драйвера для свого обладнання. Під обладнанням я маю на увазі нестандартні жорсткі диски, мишки, USB пристрої, веб-камери, Bluetooth, WIFI адаптери, принтери і т д.

Подивитися яке обладнання підключено до всієї системи можна командою:

$ make make modules

Тепер можете йти пити каву або гуляти, тому що процес складання довгий і займе близько півгодини.

Установка нового ядра

Коли ядро ​​і модулі будуть зібрані нове ядро ​​можна встановлювати. Можна вручну скопіювати файл ядра в папку завантажувача:

$ Sudo make install sudo make modules_install

Після установки не забудьте оновити конфігурацію завантажувача Grub:

$ Sudo reboot

висновки

От і все. У цій статті ми детально розглянули як зібрати ядро ​​Linux з початкових кодів. Це буде корисно всім бажаючим кращі зрозуміти свою систему, і тим, хто хоче отримати найновішу версію ядра в своїй системі. Якщо залишилися питання, задавайте коментарі!

Поділися в соціальних мережах:

Схожі
Розробка ядра linuxРозробка ядра linux
Як дізнатися версію дистрибутива ubuntuЯк дізнатися версію дистрибутива ubuntu
Драйвери пристроїв для linux, 3-е виданняДрайвери пристроїв для linux, 3-е видання
Установка драйверів в linuxУстановка драйверів в linux
Віртуальна флешка в linuxВіртуальна флешка в linux
Синій екран смерті 0x00000109Синій екран смерті 0x00000109
Як видалити старі ядра ubuntuЯк видалити старі ядра ubuntu
Arm анонсувала мобільні ядра cortex-a73 і графічний прискорювач mali-g71Arm анонсувала мобільні ядра cortex-a73 і графічний прискорювач mali-g71
Як оновити ядро ​​до 4.1 в ubuntuЯк оновити ядро ​​до 4.1 в ubuntu
Що таке ядро ​​linuxЩо таке ядро ​​linux
» » Збираємо ядро ​​linux