在ubuntu上开发编译内核模块,并查看printk打印的消息

前端之家收集整理的这篇文章主要介绍了在ubuntu上开发编译内核模块,并查看printk打印的消息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

模块源码:

// 下面的是主要的内容
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>


MODULE_LICENSE("GPL");


static int year=2017;


int hello_init()
{
printk(KERN_WARNING "Hello kernel,it's %d!\n",year);
return 0;
}




void hello_exit()
{
printk("Bye,kernel!\n");
}


// 下面两个为关键的模块函数
module_init(hello_init);
module_exit(hello_exit);

Makefile:

ifneq ($(KERNELRELEASE),)


obj-m := helloworld.o


else


KDIR=/lib/modules/3.5.0-23-generic/build
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.ko *.o *.mod.c *.symvers
endif

执行makefile编译模块-》执行insmod helloworld.ko控制台不会显示printk打印的消息,应该使用 dmesg -c指令。成功看到打印的消息

root@ubuntu:/home/gec/driver# dmesg -c
[706893.639845] Hello kernel,it's 2017!

原文链接:https://www.f2er.com/ubuntu/351660.html

猜你在找的Ubuntu相关文章