#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include "test.h"
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void) {
printk("DRIVER LOADED\n");
printk("DRIVER INIT\n");
printk("result : %d",add(12,234));
return 0;
}
static void hello_exit(void) {
printk("DRIVER REMOVED\n");
}
module_init(hello_init);
module_exit(hello_exit);
здесь вывод функции добавления не печатается с помощью printk, когда выдает insmod Я новый ldd lerner, plz может ли кто-нибудь помочь мне понять, почему это происходит?
мой test.c, содержащий следующее тело функции
int add(int a , int b){
return a+b;
}
и Makefile выглядит следующим образом
obj-m = initial.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
и мой вывод показывает:
Aug 16 11:15:44 beaglebone kernel: [13616.191741] DRIVER LOADED
Aug 16 11:15:44 beaglebone kernel: [13616.191758] DRIVER INIT
Aug 16 11:15:47 beaglebone kernel: [13616.191784] result : 246
Aug 16 11:15:47 beaglebone kernel: [13619.465555] DRIVER REMOVED
test.h
содержит определение функции, а не только объявление функции? - person KamilCuk   schedule 16.08.2018\n
) в конец печатной строки. Из-за этого напечатанное сообщение появляется в журнале с задержкой. - person Tsyvarev   schedule 29.08.2018