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
- Linux设备驱动程序(LDD)第二章:Hello World模块
- Linux设备驱动程序(LDD)第二章:内核符号表
- Linux设备驱动程序学习(0)-Hello, world!模块
- Linux设备驱动程序学习(0)-Hello, world!模块
- Linux设备驱动程序学习(0)-Hello, world!模块
- Linux设备驱动程序学习(0)-Hello, world!模块
- Linux设备驱动程序学习(0)-Hello, world!模块
- Linux设备驱动程序学习(0)-Hello, world!模块
- Linux设备驱动程序学习(0)-Hello, world模块
- 第二章 第二节 Linux设备驱动程序之--我的第一个程序 Hello World
- Linux设备驱动程序,个人学习,第一个模块hello world
- Linux设备驱动程序学习(0) -设备驱动介绍& Hello, world!模块
- Linux设备驱动程序学习(0)-设备驱动介绍& Hello, world!模块
- <linux设备驱动程序>hello world 模块——不用main函数的hello world
- .Linux设备驱动程序学习(0)——设备驱动介绍& Hello, world!模块 内核参数传递
- Linux设备驱动程序0-hello world
- ldd(linux设备驱动程序)scull驱动
- Linux设备驱动--Hello World模块
- iOS多线程开发其实很简单
- 滚动条最底部设置
- 递归之汉诺塔问题
- 使用java jacob转换office到pdf
- Tomcat 的热部署和加载
- Linux设备驱动程序(LDD)第二章:Hello World模块
- 3. Inversion of Control (IoC)
- rdiff-backup:一个 Linux 中的远程增量备份工具
- 【Linux学习】Linux文件和目录管理
- 互斥锁mutex的使用方法
- hadoop2.7.2学习笔记05-hadoop文件系统API定义-本文档使用到的专用符号
- Android studio debug调试大全
- Libsvm使用说明(一)
- Sql Server STUFF与FOR XML PATH