Сборка модулей ядра для разных версий Linux

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

Поскольку для создания модуля ядра для конкретной версии ядра (скажем, 3.0.0-10, 10 — это номер патча) требуются заголовки ядра той же версии, поэтому кажется, что нужно установить заголовки ядра и начать разработку оттуда. Но заголовки ядра для пропатченной версии ядра недоступны. Поскольку у меня есть гостевое ядро ​​​​vmlinuz-3.0.0-10, работающее на машине, и при загрузке заголовков ядра оно говорит, что не найдено.

  • Другой подход заключается в том, чтобы получить исходный код для этого конкретного ядра, но опять же проблема заключается в том, что тот же исходный код для пропатченного ядра недоступен (нет необходимости получать исходный код linux-kernel-3.0.0-10 или даже linux-kernel- 3.0.0 и 10-й патч). В некоторых случаях можно получить исходники работающего ядра, но не всегда.

  • Другой вариант — собрать ядро, отличное от работающего ядра, и поместить собранное ядро ​​в машину. Но для этого требуется собрать модули этого ядра, что занимает много времени и места.

Таким образом, цель вопроса состоит в том, чтобы узнать, каковы предпочтения разработчиков драйверов ядра.Есть ли другие альтернативы?

Можно ли скомпилировать модуль ядра в одной версии и запустить в другой версии (хоть и будет выдавать ошибку, но есть ли обходной путь для этого?)

8
задан Paradoxis 11 January 2017 в 11:23
поделиться