Кросс-скомпилированный модуль ядра: неверный формат модуля - PullRequest
0 голосов
/ 12 апреля 2020

Я попытался кросс-компилировать модуль ядра Linux. Моя машина для разработки - Ubuntu, а цель - RaspberryPi с Raspbian. Я загрузил правильные заголовки ядра на свой Raspberry и скопировал их на компьютер с Ubuntu для кросс-компиляции модуля, который я там написал. Процесс компиляции сработал, и я связал файлы заголовков из Raspberry в Makefile.

Когда я пытаюсь запустить кросс-скомпилированный модуль ядра на Raspberry с insmod test.ko, появляется следующая ошибка: insmod: ERROR: could not insert module test.ko: Invalid module format

Я проверил, приняла ли кросс-компиляция правильную версию ядра. Когда я набираю uname -r на своей Raspberry, я получаю следующее: 4.19.75-v7+. И когда я набираю modinfo morse.ko, показываются следующие вермаги c: 4.19.75-v7+ SMP mod_unload modversions ARMv6 p2v8. Те же версии ядра.

В чем еще может быть проблема?

Редактировать: Я сравнил кросс-скомпилированный модуль с локально-скомпилированным модулем (modinfo), и есть небольшая разница в вермаги c переменная. Локально скомпилированный модуль использует ARMv7, а кросс-скомпилированный - только ARMv6. Как я могу правильно скомпилировать его?

...