LINUX.ORG.RU

Добавление нового модуля в ядро

 


0

1

Всем добрый день! Пытаюсь добавить новый модуль в ядро ubuntu по иструкции из книги Linux Device Drivers.

Не получается как вы догадались.

текст модуля (имя файла W.c)

#include <linux/init.h>

#include <linux/module.h>

MODULE_LICENSE(«Dual BSD/GPL»);

static int hello_init(void)

{ printk(KERN_ALERT «Hello, world\n»);

return 0;

}

static void hello_exit(void)

{

printk(KERN_ALERT «Goodbye, cruel world\n»);

}

module_init(hello_init);

module_exit(hello_exit);

Текст make файла:

obj-m += W.o all: make -C /lib/modules/5.15.0-58-generic/build M=$(shell pwd) modules clean: make -C /lib/modules/5.15.0-58-generic/build M=$(shell pwd) clean

uname -r возвращает 5.15.0-58-generic

В папке usr/src следующее: linux-headers-5.15.0-46-generic linux-headers-5.4.0-137-generic linux-headers-5.15.0-58-generic linux-hwe-5.15-headers-5.15.0-58 linux-headers-5.4.0-137

sudo make отрабатывает.

sudo insmod W.ko выдает ошибку insmod: ERROR: could not insert module ./W.ko: Invalid module format dmesg | tail -1 выдает следующее: [ 5747.495112] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 00000000eabb6063, val ffffffffc097501d

Помогите разобраться что не так