基本linux modules 设计
2015-07-18 18:07
330 查看
平台:ubuntu 15.04 32bit
最近再使劲学习嵌入式Linux,记录一些信息,供后来者参考。
内核模块基本构成图:
下面是基本的modules例子:
#include <linux/init.h>
#include <linux/module.h>
int static hello_init( void ) //模块加载函数
{
printk(KERN_WARNING"hello word\n");
return 0 ;
}
int static hello_exit( void ) //模块卸载函数
{
printk(KERN_INFO"goodbye!!\n");
return 0 ;
}
module_init(hello_init); //申明模块加载函数
module_exit(hello_exit); //申明模块卸载函数
MODULE_LICENSE("GPL"); //模块遵循协议
MODULE_AUTHOR("bmonky<1129584094@qq.com>"); //模块作者
MODULE_DESCRIPTION("a simple module "); //模块简单描述
下面是简单的Makefile:
obj-m:= hello.o
KDIR := /lib/modules/3.19.0-15-generic/build
all:
make -C $(KDIR) M=$(PWD) modules
编译完后生成:
模块加载命令与模块卸载命令:
insmod //模块加载命令
rmmod //模块卸载命令
加载hello:
sudo insmod hello.ko
显示打印信息:
dmesg | tail -5 //显示syslog最后5行信息
卸载hello模块
sudo rm hello
最近再使劲学习嵌入式Linux,记录一些信息,供后来者参考。
内核模块基本构成图:
下面是基本的modules例子:
#include <linux/init.h>
#include <linux/module.h>
int static hello_init( void ) //模块加载函数
{
printk(KERN_WARNING"hello word\n");
return 0 ;
}
int static hello_exit( void ) //模块卸载函数
{
printk(KERN_INFO"goodbye!!\n");
return 0 ;
}
module_init(hello_init); //申明模块加载函数
module_exit(hello_exit); //申明模块卸载函数
MODULE_LICENSE("GPL"); //模块遵循协议
MODULE_AUTHOR("bmonky<1129584094@qq.com>"); //模块作者
MODULE_DESCRIPTION("a simple module "); //模块简单描述
下面是简单的Makefile:
obj-m:= hello.o
KDIR := /lib/modules/3.19.0-15-generic/build
all:
make -C $(KDIR) M=$(PWD) modules
编译完后生成:
模块加载命令与模块卸载命令:
insmod //模块加载命令
rmmod //模块卸载命令
加载hello:
sudo insmod hello.ko
显示打印信息:
dmesg | tail -5 //显示syslog最后5行信息
卸载hello模块
sudo rm hello
相关文章推荐
- mac svn命令 linux同样适用
- 【Linux&Unix--文件描述叙事的性格和权柄】
- linux源码,list_entry阅读心得
- linux 下的netstat 简单学习
- Centos7 搭建hadoop2.6 HA
- error: failed to push some refs【Linux】【Git】
- 64位Linux系统编译32位汇编程序
- linux c 获取网卡状态(UP or DOWN)
- Linux-命令-gzip
- <转>如何在CentOS 5/6上安装EPEL 源
- Linux-6.4-UDP
- ElasticSearch之Windows和Linux安装及插件
- RHCE7进阶第一天安装排错
- linux编译动态库和静态库的makefile示例
- Build/Launch EDKII emulator in Windows and Linux:编译/运行Windows和Linux环境下EDKII模拟器[4]
- 深入理解Linux内核-内核同步
- linux页表pgd的含义
- SCOM2012R2 (4) MONITOR LINUX
- linux proc文件系统节点
- Linux 自旋锁