linux 2.6内核编程-Hello world程序
来源:互联网 发布:查公司数据的网站 编辑:程序博客网 时间:2024/05/22 03:33
/**************************************************************
module program:hello.c
**************************************************************/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int hello3_data __initdata= 3;
static int __init hello_3_init(void)
{
printk(KERN_INFO "Hello, world %d/n",hello3_data);
return 0;
}
static void __exit hello_3_exit(void)
{
printk(KERN_INFO "Goodbye,world 3/n");
}
module_init(hello_3_init);//insmod 调用
module_exit(hello_3_exit);//rmmod调用
/**************************************************************
Makefile
**************************************************************/
#指定内核的位置
KERNELDIR =/usr/src/kernels/2.6.31.12-174.2.3.fc12.i686.PAE/
#/home/laq/linux-2.6.32.7
# The current directory is passed to sub-makes as argument
# 表示当前源文件所在的目录
PWD := $(shell pwd)
#表示安装到哪里
INSTALLDIR=/lib/modules/$(shell uname -r)/build
#/lib/modules/2.6.31.12-174.2.3.fc12.i686.PAE/kernel/sound/core/
#表示编译器的位置
#CROSS_COMPILE=/home/tekkaman/working/crosstool-gcc410-k26222/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-
CC = $(CROSS_COMPILE)gcc
#表示生成的目标(2.6内核的目标文件为.ko)但写还是这样的
obj-m :=hello.o
#表示编译内核模块
modules:
$(MAKE) -w -C $(KERNELDIR) M=$(PWD) modules
#gcc -DMODULE -D__KERNEL__ -c hello1.c
modules_install:
# cp hello.ko $(INSTALLDIR)
#安装模块 模块实际是被安装在/lib/modules/$(shell uname -r)/extra下 注意这是/lib/modules/2.6.31.12-174.2.3.fc12.i686.PAE/modules.dep还没有变化,需要执行depmod命令
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install
depmod
#ifneq ($(KERNELRELEASE),)
# obj-m := HelloModule.o
#else
# KERNELDIR ?= /lib/modules/$(shell uname -r)/build
# PWD := $(shell pwd)
#default:
# $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
#endif
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
#一次可以执行多个
PHONY: modules modules_install clean
- linux 2.6内核编程-Hello world程序
- linux内核编程(hello world示例程序)
- Linux 内核模块编程 Hello World 模块
- linux内核编程之hello,world
- Linux内核编程入门hello,world!
- Linux 内核、驱动编程起步:Hello world
- 内核态程序hello world
- 内核编程的hello world!
- 内核模块编程---hello world
- Linux多文件的内核模块程序Hello World
- Linux内核编程初体验 —— hello world
- Linux内核模块编程入门——Hello World
- Linux内核编程初体验 —— hello world
- linux内核驱动模块编程框架---(hello world模块)
- Linux内核编程:从hello world 开始-(3)_run
- Linux内核模块编程——hello,world
- Linux内核编程初体验 —— hello world
- Linux Socket编程实例(一个Hello World程序)
- VC++ 的MFC 和ATL 及COM 是什么?
- 一场青岛式婚礼的诞生(青岛民俗)
- 项目管理
- 学习openvz虚拟机
- 在oracle中关于树的sql
- linux 2.6内核编程-Hello world程序
- 婚礼总管是怎样炼成的
- 2009
- 实例解说 fdisk 使用方法
- 初识XML
- linux 2.6内核编程-一个简单的字符驱动程序源码
- B/S C/S 优缺点比较 及 适应场合
- QT中的元对象系统(一):QVariant的简单说明
- zapata.conf配置参数说明