Linux内核版本若高于2.4,其驱动程序在高版本上移植开发,会有很多不同。
在2.4版本里面,可以简单的利用GCC生成。O文件,然后用insmod加载到内核中,但是在2.6版本上会不可以,会报
格式不正确的错误,如何解决这个问题,由于版本差异,在2.6版本上运行驱动程序是以.ko格式存在的
下面以那个经典的例子:
先在/home里创建一个新目录hello,里面有二个文件
一个是源文件:
//#ifndef __KERNEL__
//#define __KERNEL__
//#endif
//#ifndef _MODULE_
//#define _MODULE_
//#endif
#include<linux/kernel.h>
#include<linux/module.h>
#include<linux/init.h>
#include<linux/config.h>
int init_module(void){
printk("<1>Hello World");
return 0;
}
void cleanup_module(void){
printk("<1>clean up module");
}
//module_init(init_module);
//module_exit(cleanup_module);
另一个是Makefile
obj-m:=hello.o
KDIR:=/lib/modules/$(shell uname -r)/build
SRCPWD:=$(shell pwd)
all:
make -C $(KDIR) M=$(SRCPWD) modules
clean:
rm -rf hello.o
~
然后运行:make,
会发现在当前目录下生成很多文件,其中有一个是hello.ko
就可以,当然在挂接时要用hello.ko
如下所示:insmod ./hello.ko
分享到:
相关推荐
本书是linux设备驱动程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深入探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如pcmcia、i2c和usb等外部总线以及视频、音频、...
本文概括了在2.6内核下硬件驱动程序的变化及模 块搭建过程的变化。然而,如果用户正在手工维护现有的硬件驱动程序或开发新的硬件驱动程序,那么用户将需要认真的考虑2.6内核的变化,做出正确的选择。
《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么...
《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么...
347 16.4.1 gprs 347 16.4.2 cdma 349 16.5 当前趋势 350 第17章 存储技术设备 352 17.1 什么是闪存 352 17.2 linux-mtd子系统 353 17.3 映射驱动程序 353 17.4 nor芯片驱动程序 358 17.5 nand芯片驱动程序...
《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么...
《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么...
《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么...
第7章 Linux设备驱动程序开发 7.1 设备驱动概述 7.1.1 设备驱动和文件系统的关系 7.1.2 设备类型分类 7.1.3 内核空间和用户空间.. 7.2 设备驱动基础 7.2.1 设备驱动中关键数据结构 7.2.2 字符设备驱动开发 ...
《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么...
字符设备驱动程序是Linux系统最...的实时时钟设备DS1302驱动开发为例,详细分析了Linux 2.6下字符设备驱动程序的构建过程,并在 所设计的驱动程序的基础上,编写了一个简单的测试程序,实现了对该字符设备的读写操作
《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么...
《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么...
Ubuntu-Linux系统下的设备-核心-总线三层的I2C驱动架构,是合理、高效开发I2C设备驱动程序的重要参考框架。该文以结构化的视角深入分析了嵌入式Linux系统下I2C驱动的层次结构、数据结构、驱动流程等,并着重分析了2种...
《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux基础、基本操作命令讲起,为Linux初学者能快速入门提供了保证。...
本手册全面介绍了嵌入式 Linux 系统的开发过程中,各种驱动的源码获取、源码修改、配置和移植,驱动测试程序的编写,根文件系统的构造(包括移植 busybox 、 glibc 、制作映像文件等), DIY 自己的驱 动程序和测试...
Linux设备驱动程序学习(0...(3)《Linux2.6内核驱动移植参考》 URL:http://blog.chinaunix.net/u1/40912/showart_377391.html 以上就是我对《Linux设备驱动程序(第3版)》的《第二章 构造和运行模块》 的学习总结
2.1.2应用程序开发 2.2 Android代码目录结构 2.3 Android开发环境搭建 第二篇 勿于浮砂筑高台——Linux驱动基础篇 第3章Linux内核综述 3.1 OS基本概念 3.1.1多用户系统 3.1.2用户和组 3.1.3进程 3.1.4 Linux单核架构...