当前位置:  技术问答>linux和unix

helloworld 驱动程序编译的问题?

    来源: 互联网  发布时间:2016-05-05

    本文导语:  一个简单的驱动程序例子,怎么编译都不行,请指教。源代码和makefile 如下: 我的机器: winxp +vmware /*                                                                        ...

一个简单的驱动程序例子,怎么编译都不行,请指教。源代码和makefile 如下:
我的机器: winxp +vmware






/*                                                                                                           
  *   $Id:   hello.c,v   1.5   2004/10/26   03:32:21   corbet   Exp   $   
  */                                                                                                         
#include    
#include    
MODULE_LICENSE( "Dual   BSD/GPL "); 

static   int   hello_init(void) 

printk(KERN_ALERT   "Hello,   worldn "); 
return   0; 


static   void   hello_exit(void) 

printk(KERN_ALERT   "Goodbye,   cruel   worldn "); 


module_init(hello_init); 
module_exit(hello_exit); 



makefile:

ifeq ($(KERNELRELEASE),)
KDIR ?= /lib/modules/$(shell uname -r)/build 
PWD  := $(shell pwd) 
modules:
$(MAKE) -C $(KDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KDIR) M=$(PWD) modules_install 
clean: 
rm -rf *.ko *.o *.mod.c 
.PHONY:modules modules_install clean
else
obj-m := hello.o 
endif



出错信息如下:

make -C /lib/modules/2.6.21-1.3194.fc7/build  M=/tonny/test/chapter12/hello  modules
make[1]: Entering directory `/usr/src/kernels/2.6.21-1.3194.fc7-i686'
scripts/Makefile.build:17: /tonny/test/chapter12/hello/Makefile: No such file or directory
make[2]: *** No rule to make target `/tonny/test/chapter12/hello/Makefile'.  Stop.
make[1]: *** [_module_/tonny/test/chapter12/hello] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.21-1.3194.fc7-i686'
make: *** [modules] Error 2


|
你的kernel source还在吗?
检查一下usr/src/kernels/2.6.21-1.3194.fc7-i686里面,
有的话应该没问题,没有就下载一个放到那里

|
将你的 makefile 文件名改为 Makefile

|
是kernel的源码不存在。是不是vmware里根本就没有内核的源码

|
makefile和Makefile都可以的
看看你的kernel的源码在不在?

|
编译linux驱动程序是要依赖内核源码的,看看你的这个目录下是否有内核源代码存在.
/usr/src/kernels/2.6.21-1.3194.fc7-i686

|
编译的路径有问题吧

|
第一,首先确保你的linux系统中有内核源码树,你的应该是FC7,而FC7默认是没有的,这就是上面几位所说的。解决方法是下载内核包,再编译内核。
第二,我看你KDIR ?= /lib/modules/$(shell uname -r)/build  我也刚学, 但是我的是 :=
你可以试下下面这个简单一点的
obj-m:=hello.o
KERNELDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
modules:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

不知道你是那一种问题。上面的makefile是能够使用的。

|
进入内核源码树,没有发现MAKEFILE文件
前面各位仁兄都说过了,没有内核源码树

    
 
 

您可能感兴趣的文章:

  • helloworld编译成功,但是运行的时候出错。
  • 自编译的helloworld程序不能同时在两个linux系统中执行????
  • 急救!!!简单的HELLOWORLD程序,编译痛不过
  • 编译javac HelloWorld.java通过后生成class文件,但运行时总出现noclass错误!
  • MINIGUI 编译HELLOWORLD出错 找不到库文件。。。
  • 一个简单的Module——helloworld编译通过,为什么没有输出?
  • Eclipse下无法成功编译示例helloworld
  • 在运行最简单的helloworld程序时,编译出现了这样的错误,我看不懂,请大家帮助。
  • 内核HelloWorld,编译出错!!
  • 在JCreator pro里编译HelloWorld是出现这个错误,为什么?
  • 很菜鸟的问题: 请看我的servlet的helloworld.java程序编译时为什么出现这些错误??我用的是jdk,环境变量里面已经设置了servlet包。
  • 我在编译helloworld.java时出错,请教各位大侠!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎么向arm开发板上移植linux设备驱动上的helloworld驱动模块
  • 菜鸟问题:HelloWorld 也会出
  • HelloWorld的问题
  • 加载内核模块运行helloworld与应用程序helloworld执行过程的区别?
  • 第一个Java程序HelloWorld居然错了。
  • 菜鸟级问题:HelloWorld程序运行出错???
  • java helloworld出错
  • 我 的helloworld程序遇到下面的错误是怎么回事?
  • 最入门级的java问题,如何运行HelloWorld.java
  • 运行helloworld时出现错误,怎么回事?
  • HelloWorld问题?
  • Android的社交网络 HelloWorld goes mobile
  • gcc helloworld 出现错误......
  • 请教Linux下C程序HelloWorld运行问题(初级)
  • Linux 下 HelloWorld 问题
  • JAVA菜鸟提问了,HELLOWORLD通不过!!
  • Exception in thread "main" java.lang.NoClassDefFoundError:d:javahelloworld是怎么回事
  • ejb新手入门,生成helloworld.jar之后该做什么!
  • 请问如何在jb7里执行一个经典的helloworld(指无窗口的)程序呢?
  • 关于helloworld模块的输出问题。
  • ----为什么没有"helloworld"?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3