免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 546 | 回复: 0
打印 上一主题 下一主题

Linux 2.6.12内核上加载一个简单的模块 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-11 00:04 |只看该作者 |倒序浏览

运行环境:linux-2.6.12
编译环境:arm-linux-gcc(3.4.1)
运行平台:AT91RM9200
一、编写模块程序testmodule.c

#include
#include
#include
static int hello_init(void)
{
    printk("Hello! This is the first
test module!\n");
    return 0;
}
static void
hello_exit(void)
{
printk("Module exit! Bye Bye!\n");
   
return;
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");

二、编写Makefile

obj-m := testmodule.o
KDIR := /src/linux-2.6.12
PWD := $(shell
pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD)
modules
#################################################

注意:"$(MAKE)"前面要空一个"Tab"
KDIR 为内核的路径,这个内核要与AT91RM9200运行的内核先同(编译器也要相同的,要不运行不了)。
三、编译
在linux下执行:make CC=/src/3.4.1/bin/arm-linux-gcc
/*注释:/src/3.4.1/bin/arm-linux-gcc 为交叉编译环境的路径*/
生成testmodule.ko
四、运行
1、将testmodule.ko通过串口或者网口下载到AT91RM9200的板子上
2、执行:chmod +x testmodule.ko修改模块的属性将其设为可执行文件
3、执行:insmod testmodule.ko
Hello! This is the first test module!
执行:rmmod testmodule.ko
Module exit! Bye Bye!
        
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63379/showart_526376.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP