리눅스 우분투 17.04에서 간단한 커널 모듈을 코딩하고 있습니다.이 커널 모듈은 문자열을 커널 로그에 출력합니다.내 커널 로그에 최신 출력이 표시되지 않는 이유는 무엇입니까?
#include<linux/module.h>
#include<linux/init.h>
#include<linux/moduleparam.h>
char* mystring = "hello world";
module_param(mystring ,charp ,S_IRUSR | S_IWUSR);
void display(void){
printk(KERN_ALERT "%s" ,mystring);
}
static int hello(void){
//printk(KERN_ALERT "hello module");
display();
return 0;
}
static void bye(void){
printk(KERN_ALERT "bye");
}
module_init(hello);
module_exit(bye);
나는 명령 make
을 실행하고 나는 insmod test.ko mystring="blahblahblah"
실행할 때 다음 모듈이 올바르게 삽입됩니다하지만 dmesg
을 실행할 때 그것은 "blahblahblah"를 표시하지 않습니다. rmmod test.ko
및 dmseg
을 실행 한 후 "blahblahblah"라는 표현이 터미널에 나타납니다. insmod test.ko mystring="blahblahblah"
을 다시 실행 한 다음 dmesg
을 쓰면 "blahblahblah"가 인쇄됩니다. 정확히 무엇이 문제입니까? 내 문제입니까 아니면 시스템입니까?