linux设备驱动的模块编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux设备驱动的模块编译相关的知识,希望对你有一定的参考价值。

您好!
我的开发板S3C2410 ,板上的GPC5、6、7 端口接了三个LED灯 ,开发板提供了实验的设备驱动 和 应用程序,我在原有的应用程序上进行更改, 变成流水灯,运行成功。可是当我找到驱动程序想进行内核外的模块编译,不知道为什么它说有些文件没有找到,前面没进行驱动程序模块编译时 已经成功了,是哪里的问题啊?
《Makefile》
TARGET = led
CROSS_COMPILE = arm-linux-

CC = $(CROSS_COMPILE)gcc
STRIP = $(CROSS_COMPILE)strip
#CFLAGS = -O2

ifeq ($(KERNELRELEASE),)
KERNELDIR ?= /up-Star2410/kernel/linux-2.6.24.4
PWD := $(shell pwd)

all: $(TARGET) modules

$(TARGET):
$(CC) -o $(TARGET) $(TARGET).c

modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions $(TARGET)

.PHONY: modules modules_install clean

else
obj-m := led.o
endif
先谢谢各位大侠了
有这方面的资料传一下好吗,谢谢了!qq526665621@163.com
我是初学着,被困于此,请各位大侠拯救。小弟不胜感激!!!

编译进内核和编译成模块,是在配置LINUX内核时选的,修改MAKEFILE好像不行吧? 还有,不管是编译进内核还是编译成模块,你都得把驱动放在内核源码包里面进行编译,因为有调用关系 参考技术A 你把出现的错误贴出来,大家好帮你看看是那里出现的问题

linux下怎么编译安装驱动?

r8168的网卡,windows环境下下载到了Linux的驱动,.bz2或.zip格式的文件,解压后是一些.c和.h文件和几个makefile文件。请问在Linux下如何编译然后安装?操作过程请详细说明,我是新手,刚学,刚装双系统还不能上网。
然后呢?一楼三楼的方法都试了,都OK了,但是还是不能上网,而且在网络配置的下拉列表里还是找不到我的网卡的型号。。。r8168的.o 和.ko文件都弄出来了。。。

linux 编译安装驱动有两种,动态加载与静态加载
动态加载
一,编译,在指点内核树下编译,生成.o文件或.ko文件
二,将生成的.o或.ko文件拷到相应目录,一般是/lib/module/kernel下面
三,用insmod命令加载,用rmmod命令卸载
静态加载
静态加载主要就是编译内核。就是将编写好的驱动放进内核相应的目录下面。然后编译内核。然后运行编译好的内核。
参考技术A 在LINUX下
1 tar -zxvf 解压文件
2 cd进入解压后的文件夹
3 编译
./config 具体的内容不一样 注意
make
make install
就OK乐
参考技术B 这篇文章说的很详细,供参考。
http://www.xxlinux.com/linux/article/accidence/install/20060825/3775.html本回答被提问者采纳
参考技术C 留言给我 我一步步教你

以上是关于linux设备驱动的模块编译的主要内容,如果未能解决你的问题,请参考以下文章

如何编译一个linux下的驱动模块

如何编译一个linux下的驱动模块

linux驱动开发-模块驱动

Linux驱动模块编译进内核中

linux 怎样插入一个驱动模块

驱动编译进内核和编译模块的区别