Linux设备驱动程序(LDD)第二章:Hello World模块

来源:互联网 发布:网络综艺节目收视率 编辑:程序博客网 时间:2024/06/06 00:42

简介

LDD第二章中以一个HELLO WORLD程序,阐述模块的安装与卸载。

前置内容关于内核编译树的构建请参考博文:Ubuntu 10.04内核源码树的编译和安装

源码编辑

源码同LDD书中内容
//hello.c #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, world\n"); return 0; } static void hello_exit(void) { printk(KERN_ALERT"Goodbye, cruel world\n"); } module_init(hello_init); module_exit(hello_exit); 

MakeFile编辑

obj-m := hello.oKERNELDIR := /lib/modules/2.6.35.14/buildPWD:=$(shell pwd)modules:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install:$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

注意make modules_install 与 insmod 还是有区别的,make modules_install是将模块复制到/lib/modules下,而insmod是将模块加载到内核可以运行
在源码所在目录下执行make即可。注意可能无法看到printk的消息,此消息保存在 /var/log/kern.log中



0 0
原创粉丝点击