Рейтинг:0

Не удается вставить модуль через sudo insmod ' в Ubuntu 20.04.3 LTS

флаг cn

У меня есть простой модуль Linux, который я хочу собрать и вставить в ядро, но у меня возникли проблемы с частью «sudo insmod <module_name>». Ubuntu работает на хосте Win10 через VirtualBox.

Два других друга проделали те же шаги, и у них это сработало. У одного версия ядра 5.11.0-40, а у другого такая же, как у меня, 5.11.0-41.

Модуль linux_module.c выглядит так:

#include <linux/kernel.h>
#include <linux/module.h>

MODULE_LICENSE("GPL");

__init int init_module(пусто)
{
    printk (KERN_INFO "Привет, мир из linux_module\n");
    вернуть 0;
}

__exit недействительным cleanup_module (недействительным)
{
}

Makefile: объект-м = obj-m += linux_module.o

KVERSION = $(имя оболочки -r)

модули все:
        make -C /lib/modules/$(KVERSION)/сборка модулей M=$(PWD)
чистый:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) очистить

Использование «сделать все» возвращает мне это:

make -C /lib/modules/5.11.0-41-generic/build M=/home/soberflow/Documents/BS/KernelModule/LinuxModule модули

make[1]: Вход в каталог '/usr/src/linux-headers-5.11.0-41-generic'

CC [M] /home/soberflow/Documents/BS/KernelModule/LinuxModule/linux_module.o

MODPOST /home/soberflow/Documents/BS/KernelModule/LinuxModule/Module.symvers

CC [M] /home/soberflow/Documents/BS/KernelModule/LinuxModule/linux_module.mod.o

LD [M] /home/soberflow/Documents/BS/KernelModule/LinuxModule/linux_module.ko

make[1]: Выход из каталога '/usr/src/linux-headers-5.11.0-41-generic'

Я получаю следующую ошибку:

insmod: ОШИБКА: не удалось вставить модуль linux_module.ko: неверный формат модуля

С 'modprobe <имя_модуля>' он говорит следующее:

modprobe: FATAL: модуль linux_module.ko не найден в каталоге /lib/modules/5.11.0-41-generic

Кто-нибудь знает, в чем проблема?

Bodo avatar
флаг pt
Где находится файл `linux_module.ko`? Вы установили файл модуля ядра в `/lib/modules/5.11.0-41-generic`? См. https://www.kernel.org/doc/html/latest/kbuild/modules.html.
флаг cn
`linux_module.ko` находится в том же каталоге, что и `linux_module.c` и `Makefile` в `/home/soberflow/Documents/BS/KernelModule/LinuxModule/` Я вообще не устанавливал файл модуля ядра, но, думаю, я мог бы попробовать. Единственная странность в том, что двум другим друзьям не нужно было делать этот шаг, если это моя проблема. Но все равно попробую, спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.