六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 37|回复: 0

Linux 内核模块hello world

[复制链接]

升级  72%

42

主题

42

主题

42

主题

秀才

Rank: 2

积分
158
 楼主| 发表于 2013-1-26 12:28:05 | 显示全部楼层 |阅读模式
hello.c:
#include <linux/module.h>#include <linux/init.h> #include <linux/moduleparam.h>#define DRIVER_AUTHOR "LeslieChu"#define DRIVER_DESC "test hello module"#define VERSION "1.0.0"#define ALIAS  "HeiMod"#define LICENSE "GPL"/*导出模块变量*/int abc = 3;int i = 0;module_param(abc,int,S_IRUGO);/*定义模块信息,通过modinfo查看*/MODULE_LICENSE(LICENSE);MODULE_AUTHOR(DRIVER_AUTHOR );        MODULE_DESCRIPTION(DRIVER_DESC );    MODULE_VERSION(VERSION);MODULE_ALIAS(ALIAS);/*加载模块*/static int __init first_init (void){    printk("the first mode insmod\n");    for(i=0;i<abc;i++)        printk("the i is : %d\n",i);    return 0;}/*导出模块函数符号*/static void haha(void){    for(i=0;i<abc;i++)    printk("+++++i=%d\n",i);    }/*卸载模块*/static void __exit first_exit (void){    printk("the first mode rmmod\n");}/*注册模块*/module_init(first_init);module_exit(first_exit);EXPORT_SYMBOL(haha);  

Makefile:

KERNELDIR=/usr/src/linux-headers-3.2.0-30-generic#/usr/src/linux-headers-$(uname -r)PWD:=$(shell pwd)obj-m:=hello.odefault:make -C $(KERNELDIR) M=$(PWD) modulesclean:rm -rf *.o  .cmd *.ko *.mod.c .tmp_versions *.order  *.sym*
安装 模块:insmod hello.ko
卸载模块: rmmod hello
查看模块安装卸载的log:tail /var/log/kernel.log -n 10
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表