Збірка ядра зі своєю конфігурацією

Вступ

Calculate Linux працює на ядрі Linux з тривалим терміном підтримки (longterm). Велика частина драйверів винесена в модулі, що дозволяє ядру залишатися компактним в розмірі без втрати функціоналу. Для серверів і десктопів використовується ряд параметрів і патчі. На відміну від інших ядер з портежей, пакет sys-kernel / calculate-sources. яка буде використовуватися під в дистрибутивах Calculate Linux, компілюється і встановлюється в систему, як і більшість інших пакетів, вивільняючи місце шляхом видалення за собою здебільшого вихідного коду.

Навіщо вам може знадобитися змінити налаштування ядра? Оптимізуючи ядро, ви можете добитися приросту продуктивності, підтримки свого заліза, вивільнення пам'яті, зниження енергоспоживання, а так само прискорення завантаження системи. Крім іншого, вивчення ядра дає непогані знання в розумінні пристрою роботи системи.

cl-kernel

Для збірки ядра служить скрипт cl-kernel, що входить до складу пакету sys-apps / calculate-toolkit. Програма написана на Bash і прозоро інтегрована з системою шаблонів утиліт Calculate.

  1. Підтримка збірки різних ядер: sys-kernel / calculate-sources. sys-kernel / gentoo-sources. sys-kernel / vanilla-sources і ін.
  2. Підтримка створення ядра, як з використанням initramfs, так і без нього.
  3. Створення шаблону налаштувань ядра з усіма внесеними змінами.
  4. Імпорт готових налаштувань ядра в шаблон.
  5. Прозора міграція налаштувань між версіями ядер.
  6. Інтеграція з утилітами Calculate для використання шаблонів налаштувань під час установки ядра calculate-sources.
  7. Створення резервних копій налаштувань.
  8. Локалізація на російську та французьку мови.

Перш ніж приступити до подальших дій, переконайтеся, що у вас достатньо вільного місця на диску. Вихідний код ядра розпаковується в директорію / usr / src. Подивитися вільне місце можна, виконавши:

Обов'язково подбайте про наявність резервної копії ядра, з якого завжди можна завантажити систему. Для цього експерименти зручно проводити з альтернативними пакетами ядер, або з ядром calculate-sources невстановленої версії.

збірка ядра

Виберіть будь-який з доступних в портежей ядро. Весь список з описами можна подивитися, виконавши:

Для прикладу зупинимо свій вибір на "ванільному" ядрі - оригінальної версії, яку підтримує Лінус Торвальдс.

Ядро в портежей відзначено маскою, тому знадобиться спершу її зняти:

USE-прапор "symlink" слід встановлювати, якщо ви використовуєте пропрієтарні пакети, такі як nvidia-drivers. ati-drivers. virtualbox-bin або broadcom-sta. У цьому випадку після установки ядра слід зібрати їх модулі, виконавши:

Перевірте, що ваше ядро ​​стало доступно:

Зверніть увагу на список. На відміну від calculate-sources (і інших ядер), ванільне ядро ​​не містить слова "vanilla". Червона зірочка зліва версії ядра означає, що встановлене ядро ​​не містить повної версії вихідного коду. Зірочка справа зазначає використовується за умовчанням ядро. Воно визначається за символічною посиланням / usr / src / linux.

Для першого запуску ви можете конвертувати настройки з поточної версії ядра, для цього виконайте:

Тут важливо зрозуміти особливість роботи cl-kernel і її відмінність від більш ранньої версії цієї програми.
  1. Скрипт cl-kernel працює з конфігураційних файлів ядра, отриманим з шаблону.
  2. По завершенні роботи програма проаналізує зміни, виконані користувачем, і створить новий призначений для користувача шаблон.
  3. Для ядер, відмінних від calculate-sources. немає шаблонів налаштувань, тому готовий шаблон буде містити відмінності від налаштувань ядра за замовчуванням.
  4. З опцією "--convert" програма візьме за основу настройки поточного ядра (з / boot або / proc), якщо в директорії з вихідним кодом ядра немає файлу ".config".

Під час виконання скрипта буде викликана настройка ядра (виклик make menuconfig), збірка і установка. Якщо не відключена опція CONFIG_BLK_DEV_INITRD. буде створено initramfs.

Після завершення не забудьте оновити необхідні модулі, виконавши:

Тепер можна перезавантажитися, щоб перевірити роботу нового ядра! Під час завантаження зверніть увагу, що завантажується нове ядро. Якщо ви нічого не змінили в вікні налаштувань, проблем із завантаженням виникнути не повинно.

оновлення ядра

Подивіться на перший рядок шаблону, який cl-kernel створив з вихідного файлу налаштувань ядра:

Перший рядок - це заголовок шаблону. У ній описано формат шаблону, ім'я настроюваного файлу, виконується перевірка на архітектуру системи, ім'я та версію ядра.

З шаблону видно, що він буде працювати для всіх ядер версії 3.19 і вище.

Для установки 3.19.1 ядра, після установки пакета досить буде виконати:

При переході до більшої версії ядра, наприклад 3.20 4.0.0, часто виникає необхідність подивитися перелік змін між настройками ядра (make oldconfig). Для цього виконайте:

Налаштування calculate-sources

На прикладі vanilla-sources ми навчилися встановлювати і збирати різні пакети ядра. Але як бути, якщо потрібно поставити оновлення ядра "на потік" з вашими змінами налаштувань і патчами? Немає нічого простіше!

1. Скиньте у ядра USE-прапор "minimal":

2. Встановіть вихідні ядра без компіляції:

3. Змініть настройки:

В останньому пункті немає посилання на версію ядра, тому що установка пакета переписала символічне посилання / usr / src / linux. Перевірити це можна, виконавши:

Якщо ви не впевнені, краще вказати ядро ​​явно:

Зверніть увагу, що навпроти версії ядра варто вже не червона, а зелена зірочка.

Поки ядро ​​збирається, подивіться на отриманий шаблон налаштування ядра: він буде містити тільки внесені вами зміни - відмінності від оригінальної версії налаштувань ядра.

Приклад шаблону після відключення підтримки ReiserFS:

Зверніть увагу, що повторне виконання cl-kernel враховує внесені вами зміни. Щоб скинути їх, видаліть створений вами шаблон.

оптимізація ядра

Використання патчів

для розробників

Схожі статті