Ядро Linux: Сборка модуля Out-of-Tree для ядра, но нет заголовков linux при поиске в apt-cache - PullRequest
0 голосов
/ 17 ноября 2018

Я занимаюсь разработкой ядра Linux и пытался создать свои собственные модули для целей тестирования. Однако для последних исходных кодов ядра заголовки linux не существуют. Он существует только для 4.9.0-7.

Я гуглил и нашел 1 метод, в котором мы make используем модуль по дереву исходного кода ядра, которое нам нужно (например, 4.18) make -C /home/prasad/linux-4.18/ M=$(PWD) который генерирует .ko для моего модуля. Однако, когда я загружаю свое ядро ​​и insmod оно, оно говорит

insmod: ERROR: could not insert module test.ko: Unknown symbol in module

Итак, как именно с моего хост-компьютера сгенерировать файл .ko, который можно вставить для ядра 4.18?

PS: Мое сомнение не является дубликатом , так как я не могу "установить" ядро ​​4.18 в свой виртуальный компьютер, я пытаюсь избежать этого. Мой вопрос более специфичен для генерации вставляемого модуля .ko и не нашел другого способа вставить его в 4.18.

1 Ответ

0 голосов
/ 20 ноября 2018

Вы не можете использовать модуль, созданный для 4.18 в ядре 4.9.

Если заголовки для версии ядра, для которой вы строите, недоступны через apt / yum / etc, вам нужно будет вручную загрузить исходный код с: https://www.kernel.org/

В make-файле дляВ вашем модуле вы укажете путь к исходному коду ядра, который вы скачали и распаковали.

Это позволит вам собрать модуль для нужной версии ядра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...