网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > 系统管理 > 内核技术 > Linux 2.6.12内核上加载一个简单的模块  

Linux 2.6.12内核上加载一个简单的模块

2008-03-21  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

运行环境:linux-2.6.12

编译环境:arm-linux-gcc(3.4.1)

运行平台:AT91RM9200

一、编写模块程序testmodule.c

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>

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"); 
中国网管论坛bbs.bitsCN.com

二、编写Makefile

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

网管下载dl.bitscn.com

注意:"$(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! 网管下载dl.bitscn.com


TAGs   简单   模块   一个   运行   testmodule.ko   执行   编译   Bye   环境      
 上一篇:没有了   下一篇:2.6.24内核编译 initrd-2.6.24.img分析
Linux 2.6.12内核上加载一个简单的模块 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: