5 Полезных Советов При Компиляции Собственного Ядра Linux

5 Kernel Tips 00 Featured Image

Ядро Linux — это блестящее произведение программной инженерии. С более чем миллионом строк кода, это, безусловно, одна из самых сложных программ, которая все еще активно разрабатывается сегодня. С конца 1990-х годов ядро Linux использовалось как в вычислительно интенсивных проектах, так и в простых встроенных приложениях.

Содержание

  • Что такое ядро и зачем его настраивать?
    1. Используйте систему помощи
    1. Отключите ненужную поддержку HID
    1. Отключите ненужную поддержку файловых систем
    1. Отключите ненужные графические драйверы
    1. Устанавливайте драйверы как модули
  • Часто задаваемые вопросы

Также читайте: 5 лучших дистрибутивов Linux-Libre для лучшей безопасности

Что такое ядро и зачем его настраивать?

Несмотря на все это, ядро Linux — это просто программа, которая служит связующим звеном между аппаратным обеспечением вашего компьютера и программным обеспечением, которое вы используете каждый день. Именно оно позволяет вам использовать широкий спектр устройств для программ, которые вы используете ежедневно.

Одним из примеров этой связи между аппаратным и программным обеспечением является Расширенная архитектура звука Linux (ALSA). ALSA — это фреймворк звуковых драйверов, встроенный в ядро Linux. Он позволяет вам, среди прочего, легко установить звуковую карту и настроить ее для немедленного использования с вашей любимой программой.

5 Kernel Tips 02 Alsamixer Window

Зная это, ядро Linux — это программа, которая в значительной степени неизвестна обычному пользователю. В большинстве случаев, когда вы устанавливаете дистрибутив, вы часто получаете ядро, которое работает сразу после установки. Это может быть полезно, если вы просто хотите, чтобы ваша система работала.

Тем не менее, если вы используете дистрибутивы, такие как Arch и Gentoo, возможность настройки вашего ядра будет полезна в долгосрочной перспективе. Например, включение только тех функций, которые вам нужны, может ускорить время загрузки.

С этой целью, эта статья нацелена на предоставление пяти полезных советов при компиляции собственного ядра Linux.

Примечание: Ознакомьтесь с этой статьей, чтобы узнать, как начать компиляцию собственного ядра.

1. Используйте систему помощи

Одной из самых полезных функций при настройке вашего ядра Linux является система помощи. Это встроенная функция, к которой вы можете получить доступ, находясь в меню конфигурации ядра. Это позволяет вам просматривать описание каждой функции и драйвера, которые вы можете установить в своем ядре.

5 Kernel Tips 03 Sample Kernel Help

Чтобы использовать эту систему, вам нужно просто нажать Shift + / при выделении определенного параметра ядра. После этого меню конфигурации выведет краткое описание того, что делает эта функция. Например, я могу нажать Shift + / на опции “Поддержка PCI”, чтобы посмотреть все параметры, которые мне нужно включить для ее использования.

5 Kernel Tips 04 Linux Pci Sample Help

Таким образом, вы также можете использовать ту же систему помощи для поиска информации о конкретных функциях ядра. Это может быть особенно полезно, если вы хотите узнать больше обо всех параметрах, которые требует конкретная функция.

Для этого вы можете нажать /, находясь в меню конфигурации. Это вызовет небольшую подсказку, в которую вы можете ввести название конкретного параметра. Например, я могу нажать / и ввести “PCI”, чтобы найти параметры, использующие флаг PCI.

5 Kernel Tips 05 Kernel Search Prompt

Также читайте: Что такое Gentoo Linux и как его установить

2. Отключите ненужную поддержку HID

Ядро Linux часто хвалится своей почти универсальной поддержкой аппаратного обеспечения. В этом случае вы можете быть уверены, что оно сможет управлять любым устройством, которое вы к нему подключите.

5 Kernel Tips 06 Sample Linux Hardware Support

Однако одна из проблем с этим подходом заключается в том, что включение каждой поддержки увеличивает общий размер и объем ядра. Это, в свою очередь, может привести к медленным бинарным файлам, которые злоумышленники могут легко эксплуатировать и взломать.

Один из способов справиться с этой проблемой — удалить поддержку аппаратного обеспечения, которое вы не используете в своем компьютере. Например, ядро Linux включает поддержку Firewire в своей стандартной конфигурации. Несмотря на это, большинство современных машин по умолчанию не имеют порта Firewire.

5 Kernel Tips 07 Linux Firewire Support

Зная это, быстрый способ посмотреть, какие аппаратные устройства вы можете отключить, — это пройти через раздел “Специальные драйверы HID”. Это категория, к которой вы можете получить доступ в разделе “Драйверы устройств” и “Поддержка HID” в меню конфигурации. Здесь ядро перечислит все редкие и необычные устройства, которые оно может поддерживать.

5 Kernel Tips 08 Special Hid Category

Таким образом, вы также можете использовать Shift + / и / для поиска каждого параметра, перечисленного в этом разделе. Например, я могу выбрать “Устройства ELECOM” и нажать Shift + /, чтобы узнать, что делает этот параметр.

5 Kernel Tips 09 Sample Elecom Help

Затем вы можете выбрать устройства, которые вы хотите, и нажать N, чтобы отключить их функции. В моем случае я отключу всю специальную поддержку HID, так как я не использую ни одно из этих устройств.

5 Kernel Tips 10 Disabled Special Hid Drivers

Также читайте: 5 лучших дистрибутивов Linux для разработчиков и программистов

3. Отключите ненужную поддержку файловых систем

Еще один быстрый способ уменьшить размер вашего ядра — удалить поддержку файловых систем, которые вы не используете. По умолчанию ядро Linux построено с опциональной поддержкой большинства типов файловых систем. К ним относятся старая BSD FFS, а также некоторые высокопроизводительные системы, такие как BTRFS.

5 Kernel Tips 12 Linux Filesystem Support

В большинстве случаев обычный пользователь использует всего несколько файловых систем для повседневного использования. Например, система Linux обычно использует EXT2, EXT4, FAT32 и NTFS для всего своего хранения данных. Таким образом, возможно удалить поддержку других файловых систем и получить разумное количество дополнительной производительности от ядра.

Чтобы удалить ненужную поддержку файловых систем в ядре, вам нужно перейти в категорию “Файловые системы”.

5 Kernel Tips 13 Kernel Filesystem Category

Оттуда вы можете выбрать файловые системы, которые хотите удалить из своей системы, выделив их и нажав N. В моем случае я оставлю поддержку только для EXT2, EXT3, EXT4 и JFS.

5 Kernel Tips 14 Few Linux Filesystems Enabled

4. Отключите ненужные графические драйверы

Помимо отключения поддержки как специальных HID, так и файловых систем, вы также можете использовать меню конфигурации, чтобы удалить любые графические драйверы, которые вы не используете. Это связано с тем, что ядро Linux объединяет поддержку большинства современных графических устройств. Это означает, что даже если ваша машина не использует графическую карту, ваше ядро все равно будет работать так, как будто у вас есть одна.

5 Kernel Tips 15 Linux Graphics Support

Аналогично вышеуказанному, это приводит к бинарному файлу ядра, который запускает функции, которые вам не обязательно нужны. Это, в свою очередь, может быть проблемой, если вы запускаете Linux на старом или слабом оборудовании.

Чтобы удалить ненужную графическую поддержку, вам сначала нужно перейти в раздел “Драйверы устройств” меню конфигурации. Оттуда вам нужно прокрутить вниз и выбрать “Поддержка графики”.

5 Kernel Tips 16 Kernel Graphics Category

После этого ядро отобразит список всего графического оборудования, для которого оно предоставляет драйвер. Отсюда вы можете нажать Y или N, чтобы включить или отключить конкретный драйвер.

В моем случае я включу только “Графику Intel 8XX” и “Intel GMA500 Framebuffer”, так как это единственные графические устройства, присутствующие в моем ноутбуке.

5 Kernel Tips 17 Intel Only Graphics Support

Также читайте: 9 лучших дистрибутивов Linux для пользователей Windows

5. Устанавливайте драйверы как модули

Наконец, одной из лучших функций ядра Linux является его способность удалять части себя и загружать их как модули. Этот подход не только уменьшает размер ядра, но и позволяет вам быть гибким с функциями ядра.

Например, вы можете превратить свой беспроводной драйвер в модуль, что позволяет вам обновлять его без повторной компиляции ядра. Таким образом, модули могут быть особенно полезны для пользователей, которые хотят иметь быстрое ядро, но также хотят сохранить отличную совместимость аппаратного обеспечения Linux.

5 Kernel Tips 18 Linux Module Files

Чтобы преобразовать встроенные функции в модули, вам нужно перейти в раздел и опцию, которые вы хотите преобразовать в модуль. Например, чтобы преобразовать мой беспроводной драйвер, мне нужно перейти в раздел “Поддержка сетей”, затем “Беспроводная”.

5 Kernel Tips 19 Kernel Wireless Category

Оттуда я могу нажать M на драйверах “cfg80211”, чтобы преобразовать их в модуль ядра.

5 Kernel Tips 20 Linux Kernel Module Feature

После этого вы можете нажать Esc шесть раз, чтобы выйти из меню конфигурации. Это вызовет подсказку, которая спросит, хотите ли вы сохранить изменения, которые вы внесли. В моем случае я выберу “Да”.

5 Kernel Tips 21 Save Kernel Configuration

С этим завершено, вы теперь можете скомпилировать версию ядра Linux с нужными вам функциями, выполнив следующую команду:

make&&make modules_install  
makeinstall

5 Kernel Tips 11 Linux Kernel Compile

Также читайте: 5 инструментов для легкого создания пользовательского дистрибутива Linux

Часто задаваемые вопросы

Возможно ли узнать, какие драйверы устройств нужны моему ядру Linux?

Да! Одним из препятствий для пользователей, которые только начинают компилировать свое собственное ядро, является знание точного типа аппаратного обеспечения, которое они используют. Хотя это может показаться сложной задачей, существует множество программ, которые вы можете использовать, чтобы упростить этот процесс.

Например, вы можете использовать как lspci, так и lsusb, чтобы посмотреть все подключенные аппаратные периферийные устройства в вашей машине. Кроме того, вы также можете выполнить команду sudo dmesg, чтобы проверить, правильно ли ядро считывает ваши устройства.

Возможно ли вернуть функцию, которую я удалил из ядра Linux?

Да! Возможно переустановить функцию, как только вы удалили ее из ядра Linux. Для этого вам нужно вернуться в меню конфигурации и нажать Y или M на функции, которую вы хотите повторно включить. Это скажет ядру включить эту конкретную функцию либо как встроенную, либо как модуль.

С этим завершено, вам нужно будет повторно скомпилировать ядро, чтобы создать бинарный файл со всеми новыми функциями. Для этого вам нужно сохранить и выйти из меню конфигурации, нажав Esc шесть раз. После этого вы можете начать повторную компиляцию ядра, выполнив make.

Когда мне следует устанавливать функцию ядра Linux как модуль?

Установка функций как модулей будет в значительной степени зависеть от того, что вам нужно от вашего ядра. Зная это, хорошее правило — создавать модули только для функций, которые не критичны для процесса загрузки.

Это связано с тем, что в своей основе ядро Linux зависит от возможности загрузки как единого образа. Например, удаление критических частей, таких как поддержка многопроцессорности, может привести к ситуации, когда ваше ядро становится не загружаемым.

Из-за этого компоненты ядра, которые обычно становятся модулями, — это либо графические и другие аппаратные драйверы, либо сетевые интерфейсы.

Кредит изображения: Unsplash