零零社区|百姓的网上家园-互动交流平台!(0.0)=^_^=(00社区)

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz

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

2013-4-5 16:23| 发布者: 123456000000| 查看: 8| 评论: 0

摘要: 运行环境:linux-2.6.12 编译环境:arm-linux-gcc(3.4.1) 运行平台:AT91RM9200 一、编写模块程序testmodule.c #include linux/init.h#include linux/kernel.h#include linux/module.hstatic int hello_init(void){ ...
 

运行环境: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.oKDIR := /src/linux-2.6.12PWD := $(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!


路过

雷人

握手

鲜花

鸡蛋

相关阅读

发表评论

最新评论

相关分类


Archiver|手机版|小黑屋|00社区

GMT+8, 2023-1-31 10:50 , Processed in 0.042973 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部