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
分享到:
相关推荐
Linux2.6内核设备驱动程序架构研究.pdf
这本书是著名的《linux设备驱动程序》的第三版(英文版).它函盖了linux2.6内核的驱动程序编程.是linux下驱动开发者的
该文档详细的描述了linux2.4和2.6的内核版本的不同,方便开发人员在将2.4内核移植到2.6版本内核时快速有效的执行
完整的2.6的网卡驱动程序,直接放到环境里面可以编译通过,,是绝好的例子
用户常常由于提高系统性能、增加系统功能、实现系统单一化和标准化等原因对内核...然而,如果用户正在手工维护现有的硬件驱动程序或开发新的硬件驱动程序,那么用户将需要认真的考虑2.6内核的变化,做出正确的选择。
S3C2410开发平台上linux2.6内核移植以及其驱动程序开发
触摸屏驱动芯片ADS7843在LINUX2.6内核下的驱动程序.zip
基于嵌入式Linux2.6的CAN设备驱动程序设计.pdf
PCI2.6字符驱动 linux2.6内核程序 可直接运行,在终端先MAKE一个,生成,.KO文件,用INSMOD加载到内核,cat/proc/devices 再MKNOD 测试一下就可以了。
LINUX2.6.26.6内核下的第一个LED驱动程序测试成功! 驱动程序gpio_driver.c:
官方提供的驱动都是2.4内核的,开发很不方便,这个可以工作在2.6内核下
全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深人探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等外部总线以及视频、音频、无线连网和闪存等驱动程序的开发,并讲解了相关的...
本书是经典著作《Linux 设备驱动程序》的第三版。该版本已针对 Linux 内核的 2.6.10 彻底更新过了。内核的这个版本针对常见任务完成了合理化设计及相应的简化,比如即插即用,利用sysfs 文件系统和用户空间交互,...
《Linux设备驱动开发详解》是一本介绍Linux设备驱动开发理论、框架与实例的书,《Linux设备驱动开发详解(第2版)》基于LDD6410开发板,以Linux2.6 版本内核为蓝本,详细介绍自旋锁、信号量、完成量、中断顶/底半部、...
全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深人探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如PCMCIA、I2C和USB等外部总线以及视频、音频、无线连网和闪存等驱动程序的开发,并讲解了相关的...
本文的目的为基于linux2.6.30.4 framebuffer移植LCD驱动到FL2440开发板。本文内容大致分为以下几个部分: 1、 LCD硬件及显示原理介绍; 2、 s3c2440 LCD控制器介绍; 3、 内核LCD驱动机制framebuffer(帧缓冲技术)...
基于Linux Kernel 2.6.25.4的驱动程序代码,开发驱动程序时可以参考。
基于linux2.6内核的字符设备驱动程序设计.pdf