Cra*_*ild 1 linux linux-device-driver linux-kernel
所以我正在学习编写设备驱动程序并编写了这个简单的驱动程序:
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
static int __init gotemp_init(void)
{
printk(KERN_DEBUG "Hello world");
return 0;
}
static void __exit gotemp_exit(void)
{
}
module_init(gotemp_init);
module_exit(gotemp_exit);
MODULE_AUTHOR("Abhinav Jain");
MODULE_DESCRIPTION("Simple driver");
MODULE_LICENSE("GPL");
Run Code Online (Sandbox Code Playgroud)
生成文件是这样的:
obj-m := hello.o
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
$(MAKE) -C $(KERNELDIR) M=$(PWD)
Run Code Online (Sandbox Code Playgroud)
但是 的输出dmesg不打印"Hello world". 我也尝试过,KERN_INFO但结果仍然相同,尽管lsmod显示hello正在加载模块。
那么为什么没有记录消息呢?
它应该工作得很好。有时,由于缓冲,消息可能会延迟到达。然后需要在字符串末尾添加换行符以刷新缓冲区。尝试做:
printk(KERN_DEBUG "Hello world\n");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1730 次 |
| 最近记录: |