频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源: 作者:佚名 出处:巧巧读书 2008-03-21 进入讨论组
访问地址 http://www.qqread.com/linux/2008/03/y402583.html

运行环境: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");

二、编写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!

更多文章 更多内容请看Linux集群技术体验Linux的音影世界Linux驱动大全专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章