В-третьих, пошла, но пошла с ошибками!Olej писал(а): Во-вторых,
...
И сборка пошла...
Код: Выделить всё
[olej@xenix module_scan]$ make
make -C /lib/modules/4.11.10-200.fc25.x86_64/build SUBDIRS=/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan modules
make[1]: вход в каталог «/usr/src/kernels/4.11.10-200.fc25.x86_64»
Makefile:923: "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
CC [M] /home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.o
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c: В функции «write_to_file»:
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:9:44: ошибка: неявная декларация функции «get_fs» [-Werror=implicit-function-declaration]
#define BEGIN_KMEM { mm_segment_t old_fs = get_fs(); set_fs(get_ds());
^
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:18:5: замечание: in expansion of macro «BEGIN_KMEM»
BEGIN_KMEM;
^~~~~~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:9:44: ошибка: неверный инициализатор
#define BEGIN_KMEM { mm_segment_t old_fs = get_fs(); set_fs(get_ds());
^
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:18:5: замечание: in expansion of macro «BEGIN_KMEM»
BEGIN_KMEM;
^~~~~~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:9:54: ошибка: неявная декларация функции «set_fs» [-Werror=implicit-function-declaration]
#define BEGIN_KMEM { mm_segment_t old_fs = get_fs(); set_fs(get_ds());
^
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:18:5: замечание: in expansion of macro «BEGIN_KMEM»
BEGIN_KMEM;
^~~~~~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:9:61: ошибка: неявная декларация функции «get_ds» [-Werror=implicit-function-declaration]
#define BEGIN_KMEM { mm_segment_t old_fs = get_fs(); set_fs(get_ds());
^
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:18:5: замечание: in expansion of macro «BEGIN_KMEM»
BEGIN_KMEM;
^~~~~~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c: В функции «scan_start»:
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:43:20: ошибка: неверные операнды бинарной операции % («struct usb_device *» и «int»)
if(((urbp->dev % 0x400) == 0) &&
~~~~~~~~~ ^
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:50:27: ошибка: неявная декларация функции «kmalloc» [-Werror=implicit-function-declaration]
char* kbuf = (char *) kmalloc(sizeof(urbp->transfer_buffer), GFP_KERNEL);
^~~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:50:18: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
char* kbuf = (char *) kmalloc(sizeof(urbp->transfer_buffer), GFP_KERNEL);
^
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:53:12: предупреждение: ISO C90 запрещает смешение деклараций и кода [-Wdeclaration-after-statement]
char* newline = "\n";
^~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:58:20: ошибка: для функции «scan_end» задан неверный класс хранения
static void __exit scan_end(void){
^~~~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:58:1: предупреждение: ISO C90 запрещает смешение деклараций и кода [-Wdeclaration-after-statement]
static void __exit scan_end(void){
^~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:62:1: ошибка: слишком много аргументов в вызове функции «init_module»
init_module(scan_start);
^~~~~~~~~~~
In file included from /home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:4:0:
./include/linux/module.h:73:12: замечание: объявлено здесь
extern int init_module(void);
^~~~~~~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:63:1: ошибка: неявная декларация функции «exit_module» [-Werror=implicit-function-declaration]
exit_module(scan_end);
^~~~~~~~~~~
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:63:1: ошибка: expected declaration or statement at end of input
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:63:1: предупреждение: в функции, которая должна возвращать значение, отсутствует оператор return [-Wreturn-type]
На верхнем уровне:
/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.c:38:19: предупреждение: «scan_start» defined but not used [-Wunused-function]
static int __init scan_start(void){
^~~~~~~~~~
cc1: некоторые предупреждения считаются ошибками
scripts/Makefile.build:300: ошибка выполнения рецепта для цели «/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.o»
make[2]: *** [/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan/module.o] Ошибка 1
Makefile:1496: ошибка выполнения рецепта для цели «_module_/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan»
make[1]: *** [_module_/home/olej/WORK_2017/own.WORK/AntiHack/CapturingKeystrokes/Demon-master/module_scan] Ошибка 2
make[1]: выход из каталога «/usr/src/kernels/4.11.10-200.fc25.x86_64»
Makefile:13: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
Причём, ошибки то (по крайней мере некоторый) - простые!
Опять говённая небрежность: не указан где-то необходимый #include и т.д. ... возможно с разрядностью 32/64 нужно аккуратно посмотреть ... с версией ядра и его API...
В общем, это можно, похоже, довести до компиляции ... тем более, что код там элементарный, в общем...