Прискорюємо завантаження Linux. компіляція ядра

Вітання! Страждаючи від неробства та низької швидкості завантаження ОС Linux як дистрибутива ArchLinux, задумався про те, як це виправити.. ні, не неробство.


Прискорення завантаження системи, Обмеження стосується лише назви «Arduino» — її не можна використовувати для обзивання не італійських плат (китайці, починається зі зменшення кількості демонів та програм, що запускаються із системою, але "Арч" не страждає зайвою кількістю таких, тому йдемо іншим шляхом…

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

Потрібне вміння працювати в терміналі без графічної оболонки!

Тепер вставляємо провід у потрібне за діаметром поглиблення, що ви робите, Ви робите на свій страх та ризик. Автор статті не несе відповідальності за виконані Вами дії!

Підготовка

Як отримати новітні вихідні джерела, пояснювати не буду, це описано у статті на вікі Ялівець. Почнемо відразу з конфігурації. Ось, що нам знадобиться:

зробити localyesconfig - магія втілити, бере всі конфігурації та модуді, які використовує запущене ядро ​​в системі та конфігурує їх компілювання в ядро ​​залишаючи пару модулів;

зробити nconfig – новий консольний кофігуратор, потрібен для виправлення деяких моментів.

Почнемо

  1. Отримали вихідники
  2. Тепер важливо, по можливості, підключити всі пристрої, які колись збираєтеся використовувати з вашим ПК, це підключить усі потрібні в майбутньому модулі.
  3. Запускаємо зробити localyesconfig, конфігуратор запитає про кілька нових конфігурацій, доданих у новій версії, дайте відповідь на свій розсуд або за умовчанням.
  4. зробити nconfig і читаємо далі.

Конфігурація

  1. Вибираємо розрядність майбутнього ядра в 3 пункті меню.
  2. Пункт Тип і особливості процесора -> Сімейство процесорів -> шукаємо сімейство вашого процесора, якщо не знаходимо, залишаємо як було.
  3. У пункті Підтримувані виробники процесорів можна прибрати з ядра підтримку процесорів інших виробників. Забирати починайте з останнього пункту.
  4. Далі Підтримка завантаження мікрокоду ЦП, якщо ваш процесор не підтримується пакетом ucode, можна вимкнути. Як дізнатися, написано в інтернеті.
  5. Якщо у Вас не EFI система, можна прибрати Підтримка служби виконання EFI
  6. Далі повертаємося на початок і йдемо в Драйвери пристроїв.
  7. В Загальні параметри драйвера -> Завантажувач прошивки є можливість вшити в ядро ​​необхідні драйверам файли (мікрокод). Повернемося до цього пункту пізніше.
  8. У пункті Підтримка пристроїв введення можна вимкнути підтримку непотрібних пристроїв введення. Я відключав планшет та сенсорний екран.
  9. Повертаємось і, якщо ви підключали USB HID пристроїв, тикаємо Підтримка HID -> Спеціальні драйвери HID і перемикаємо все, що активовано, на модуль.
  10. Повернемося до Драйвери пристроїв, йдемо в Підтримка USBt, після *** Драйвери USB Device Class *** вчитуємось і перемикаємо все на модуль.
  11. Далі можна випиляти підтримку Chrome заліза у пункті меню Драйвер пристрою - Підтримка платформи для апаратного забезпечення Chrome.
  12. Повертаємося на початок, налаштовуємо Файлові системи. Тут можна вибрати, крім основних, вже зазначених файлових систем, додаткові типи ЖИР, NTFS (Файлові системи DOS/FAT/NT(. Уважно читайте конфіги, можна відразу включить можливість запису в NTFS.

Фу, на цьому поки що все.

Компіляція

Далі це потрібно зібрати. Команда зробити без аргументів кинеться збирати вихідний код в одну грудку бінарного коду, але, за замовчуванням, використовуючи 1 потім, що досить повільно. Що б вказати їй кількість потоків, можна використовувати аргумент -j ось так:

зробити – j(у ядер + 1(

наприклад для 2-х ядерних процесорів пишемо так: зробити – j3

Встановлення

Після компіляції потрібно ядро ​​встановити. Як це зробити, детально на wiki. Я ж наведу приклад команд, які використовую сам:

cp arch/x86/boot/bzImage /boot/vmlinuz-linux-mainline - Копіюємо ядро
make modules_install - Встановлення модулів
grub-mkconfig -o /boot/grub/grub.cfg – оновлюємо конфіги Grub, щоб він знайшов нове ядро.

Перед конфігурацією Grub раджу вимкнути всі аргументи ядра.

Також відключіть запуск будь-якої графіки на старті systemd

Перший запуск

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

Якщо у вас, як у мене, стоїть драйвер ATI і графіка не запускається, може не вистачати мікрокоду, про який я говорив у п.7. Який файл потрібний драйверу, виводиться у логах ядра. Мікрокод ATI зберігається по дорозі /lib/прошивка/radeon. Наприклад ось мої настройки:

Після конфігурації необхідно повторити установку ядра. Достатньо видалити старе з /завантаження та скопіювати туди нове.

висновок

Знаю, багато хто може сказати, що це марення і приріст до швидкості завантаження та роботи системи в цілому настільки малий, що не варто таких зусиль. Але я цим займався не тільки через якусь вигоду. Мені було цікаво і, сподіваюся, Вам також буде цікава ця тема.

У групі я запущу опитування про те, чи допомогла компіляція ядра саме Вам.

Величезне спасибі, що прочитали цю статтю, сподіваюся, Вам сподобалось. До нових зустрічей! 👋🏼

Автор статті: Олександр Сорока