Когда вы компилируете драйверы устройств и некоторые модули, они требуют поддержки заголовков ядра, которые в основном представляют собой файлы на языке C, содержащие функции и структуры для удобного взаимодействия с ядром Linux. Заголовки ядра необходимы для установки и компиляции любого кода, который взаимодействует с ядром. При установке заголовков ядра важно убедиться, что версия заголовков ядра совпадает с версией ядра. В этой статье мы узнаем, как установить заголовки ядра в системах RHEL и CentOS Linux.
При установке заголовков ядра необходимо следовать тому же подходу, который использовался для обновления или установки базового ядра. То есть, если ядро было обновлено с помощью менеджера пакетов, вам нужно установить заголовки ядра с помощью менеджеров пакетов. Если ядро было установлено путем компиляции из исходного кода, необходимо установить заголовки ядра путем компиляции из исходного кода.
Как установить заголовки ядра в RHEL и CentOS
Ниже описаны шаги по установке заголовков ядра в RHEL и CentOS. В системах RHEL и CentOS заголовки ядра находятся в каталоге /usr/src/kernels/. Вы можете проверить это с помощью следующей команды.
1 2 | cd /usr/src/kernels/ ls -l |
Если приведенная выше команда отображает соответствующие заголовки ядра, вам не нужно продолжать и устанавливать их снова. В противном случае выполните следующую команду для установки заголовков ядра с помощью пакета kernel-devel.
CentOS/RHEL
1 | yum install kernel-devel |
Fedora 22+
1 | dnf install kernel-devel |
Вы увидите прогресс установки, как показано выше. После установки заголовков ядра вы можете проверить их, проверив содержимое каталога /usr/src/kernels.
1 | ls -l /usr/src/kernels/$(uname -r) |
Приведенные выше команды могут не установить заголовочные файлы ядра, используемые библиотеками типа glibc. Для этого необходимо установить пакет kernel-header.
CentOS/RHEL
1 | yum install kernel-headers |
Fedora 22+
1 | dnf install kernel-headers |
После установки правильных заголовков ядра вы можете использовать их для компиляции модулей ядра и драйверов устройств в соответствии с вашими требованиями. Заголовки ядра являются частью ядра и обычно устанавливаются или обновляются вместе с заголовками ядра. Поэтому в большинстве случаев явная установка заголовков ядра в системе не требуется. Однако если они были повреждены или случайно удалены, то вы можете выполнить описанные выше действия, чтобы установить заголовки ядра отдельно.
Заключение
Хотя заголовки ядра являются частью ядра, они распространяются отдельно, чтобы изменения в заголовках ядра не влияли на базовое ядро, а также для того, чтобы облегчить взаимодействие драйверов устройств и модулей с ядром.
Несколько ключевых моментов, о которых следует помнить, это установка версии заголовков ядра, которая соответствует версии вашего ядра, а также использование того же подхода, который использовался для установки или обновления ядра. Если вы использовали менеджер пакетов для обновления/установки ядра, то используйте менеджер пакетов для установки заголовка ядра. Если вы скомпилировали ядро из исходных текстов, вам нужно скомпилировать kernel-header из исходных текстов. Вы можете использовать описанные выше шаги установки в системах RHEL, CentOS, Fedora и SUSE Linux.