я не могу получить, почему insmod дает Invalid parameters
ошибку (не вижу ничего в dmesg
):Невозможно insmod модуль hello_world ядра в Debian 8
$ sudo insmod hello.ko
insmod: ERROR: could not insert module hello.ko: Invalid parameters
$ sudo insmod /hello.ko
insmod: ERROR: could not load module /hello.ko: No such file or directory
У меня нет никаких параметров в моем модуле. Это просто приветственный пример.
Моя среда:
$ uname -r
3.16.0-4-amd64
Я установил все возможные заголовки ядра пакетов:
linux-headers-3.16.0-4-all
linux-headers-3.16.0-4-all-amd64
linux-headers-3.16.0-4-amd64
linux-headers-3.16.0-4-common
linux-headers-amd64
Мой код:
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
int init_module(void)
{
printk(KERN_INFO "Hello world 1.\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
MODULE_LICENSE("GPL");
Я использую следующие Makefile
:
obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
make
выход:
$ сделать
make -C /lib/modules/3.16.0-4-amd64/build M=/home/user/c.driver/driver-1 modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
CC [M] /home/user/c.driver/driver-1/hello.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/user/c.driver/driver-1/hello.mod.o
LD [M] /home/user/c.driver/driver-1/hello.ko
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64'
Update: тот же результат с 14.04.1-Ubuntu
вы пробовали insmod hello.ko не insmod ./hello.ko? – Maquefel
Обычно причины сбоев при загрузке модуля объясняются в сообщениях 'dmesg'. Проверь это. – Tsyvarev
@ Цыварев я знаю, но ничего не связано с модулями ядра. Последний - 'Parallels Linux файловой системы с файлами общей папки 1.2.1 загружен'. Может ли это быть вызвано Parallels? VM работает под Parallels Desktop. – avasin