Я новичок в написании модулей ядра, поэтому столкнулся с несколькими нетехническими проблемами.
Поскольку для создания модуля ядра для конкретной версии ядра (скажем, 3.0.0-10, 10 — это номер патча) требуются заголовки ядра той же версии, поэтому кажется, что нужно установить заголовки ядра и начать разработку оттуда. Но заголовки ядра для пропатченной версии ядра недоступны. Поскольку у меня есть гостевое ядро vmlinuz-3.0.0-10, работающее на машине, и при загрузке заголовков ядра оно говорит, что не найдено.
Другой подход заключается в том, чтобы получить исходный код для этого конкретного ядра, но опять же проблема заключается в том, что тот же исходный код для пропатченного ядра недоступен (нет необходимости получать исходный код linux-kernel-3.0.0-10 или даже linux-kernel- 3.0.0 и 10-й патч). В некоторых случаях можно получить исходники работающего ядра, но не всегда.
Другой вариант — собрать ядро, отличное от работающего ядра, и поместить собранное ядро в машину. Но для этого требуется собрать модули этого ядра, что занимает много времени и места.
Таким образом, цель вопроса состоит в том, чтобы узнать, каковы предпочтения разработчиков драйверов ядра.Есть ли другие альтернативы?
Можно ли скомпилировать модуль ядра в одной версии и запустить в другой версии (хоть и будет выдавать ошибку, но есть ли обходной путь для этого?)