博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写自己的内核模块
阅读量:7194 次
发布时间:2019-06-29

本文共 1206 字,大约阅读时间需要 4 分钟。

hot3.png

#include 
#include
#include
#include
static int sec = 5;module_param(sec,int,S_IRUGO|S_IWUSR);MODULE_PARM_DESC(sec,"set the interval.");static void mymod_timer(unsigned long data);static DEFINE_TIMER(timer,mymod_timer,0,0);static void mymod_timer(unsigned long data){ printk("mymod: timer \n"); mod_timer(&timer,jiffies + sec * HZ);}static int mymod_init(void){ printk("mymod: init \n"); if (sec <= 0) { printk(KERN_INFO,"Invalid interval sec = %d \n",sec); return -EINVAL; } mod_timer(&timer,jiffies + sec * HZ); return 0;}static void mymod_exit(void){ printk("mymod: exit\n"); del_timer(&timer);}module_init(mymod_init);module_exit(mymod_exit);MODULE_AUTHOR("db liu");MODULE_LICENSE("GPL");MODULE_DESCRIPTION("my first module");

源文件保存为:mymod.c

编写Makefile文件:

obj-m := mymod.oall:        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modulesclean:        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

安装模块

    insmod mymod.ko

查看安装的模块

    lsmod | grep mymod

检查安装模块是否安装成功

    dmesg | tail

mymod: init

mymod: timer

卸载模块

    rmmod mymod

检查是否卸载成功

    dmesg | tail

mymod: exit

转载于:https://my.oschina.net/shaxunyeman/blog/128975

你可能感兴趣的文章
流程DEMO-借款申请
查看>>
算法——分支限界法
查看>>
静态方法中不能new内部类的实例对象的总结
查看>>
PHP源码包编译安装错误及解决方法汇总
查看>>
RIP 路由汇总实验
查看>>
Git版本恢复命令reset(转载)
查看>>
运维第八单元
查看>>
实战 MDT 2012(二)---制作模板机
查看>>
学会这些, 让你的服务器远离攻击影响
查看>>
Memcached (二)YUM安装和编译安装
查看>>
Citrix 3D虚拟化解决方案之小结
查看>>
setTimeout与setInterval区别
查看>>
安装配置rabbitmq
查看>>
linux服务器运维 -- 路线、架构
查看>>
Sqoop数据分析引擎安装与使用
查看>>
linux学习:tail命令--监控日志
查看>>
polysh批量执行shell命令
查看>>
如何使用GNS3和Cisco IOU搭建路由交换实验-IOU篇
查看>>
keepalived 多实例
查看>>
mysql部分参数注解
查看>>