免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2146 | 回复: 6
打印 上一主题 下一主题

开发驱动的环境真心让人感到沮丧!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-27 23:23 |只看该作者 |倒序浏览
我已经卡在这里3天了, 网上的攻略也不知道看了多少了,完全没有一点帮助 遇到的还是那些问题...

希望有熟悉这个过程的大大来讲解一下...

我用的是ubuntu 10.04  它自带的内核是2.6.32-38-generic

但是因为它没自带源代码, 所以我在kernel.org下载了 2.6.32.1的源代码

我解压到了/usr/src

然后make oldconfig

接着有攻略说可以make  也可以不make  我都试过了  都是一样的问题

然后就是make bzImage   ... make modules   ... make modules_install

有的说这样就可以了  还有的说需要make install 在/boot下面生成一下内核文件  当然还需要makeinitrd来生成initrd.img

这两种情况我也试过

我不知道是我的makefile写的有问题还是构建内核树的问题

我看书上写的最简单的那个hello.c   说可以写一个最简单的makefile  

obj-m:=hello.o

这个就可以了,  但是我make的时候就(已经把原来的makefile改名)会提醒 no target...

然后我又写复杂的  :
obj-m:=hello.o
KDIR:=/lib/modules/2.6.32.1/build
SRCPWD:=$(shell pwd)
all:
    $(MAKE) -C $(KDIR) M=$(SRCPWD) modules
clean:
    rm -rf hello.o

这里make也会出问题  
但是改$(MAKE) -C $(KDIR) M=$(SRCPWD) modules  为   
$(MAKE) -C $(KDIR) M=$(SRCPWD)/modules 就不会有错误
但是会一直提示进入/lib/modules/2.6.32.1/build 然后make
无限循环一样
之后又会提示waiting for unfinished jobs....
wait:no child processes...

我已经被这些问题纠缠了3天了...实在找不到办法了
所以想在这里求大大指点一下迷津
先谢过了

论坛徽章:
0
2 [报告]
发表于 2013-06-28 09:18 |只看该作者
还是没人回答啊...

obj-m:=hello.o
KDIR:=/lib/modules/2.6.32.1/build
SRCPWD:=$(shell pwd)
all:
    $(MAKE) -C $(KDIR) M=$(SRCPWD) modules
clean:
    rm -rf hello.o

按道理这个是对的  但是出现的问题是 no rule to make target 'module' stop.

论坛徽章:
0
3 [报告]
发表于 2013-06-28 09:34 |只看该作者
本帖最后由 wwxxxxll 于 2013-06-28 09:34 编辑

no rule to make target 'module' stop
你要看看/lib/modules/2.6.32.1/build下是否有内核文件。

还有一个地方有
/usr/src/kernels/2.6.18-164.el5-i686/下也有,可以试试,当然我用的是redhat。

还有你上面说了下载了内核源码,那要写的目录是你的源码的目录(你可能是这个问题),我写的:
obj-m := hello.o

LINUXROOT:=/home/wxl/s3c2440/osdrv/kernel/linux-3.2.36/
PWD:=$(shell pwd)

default:
        @make -C $(LINUXROOT) M=$(PWD) modules
clean:
        @make -C $(LINUXROOT) M=$(PWD) clean

/home/wxl/s3c2440/osdrv/kernel/linux-3.2.36/是我源码的目录。


论坛徽章:
0
4 [报告]
发表于 2013-06-28 10:56 |只看该作者
回复 3# wwxxxxll

ni hao , zhe shi wo de mulu

root@RYAN:/lib/modules/2.6.32.1/build# ls
arch           drivers   ipc          Makefile.bak    REPORTING-BUGS  tools
block          firmware  Kbuild       mm              samples         usr
COPYING        fs        kernel       modules.order   scripts         virt
CREDITS        hello.c   lib          Module.symvers  security        vmlinux
crypto         include   MAINTAINERS  net             sound           vmlinux.o
Documentation  init      Makefile     README          System.map
root@RYAN:/lib/modules/2.6.32.1/build#

论坛徽章:
0
5 [报告]
发表于 2013-06-28 11:19 |只看该作者
和我的没区别。
那你试试/usr/src/kernels/2.6.18-164.el5-i686/
和你的源码目录

论坛徽章:
0
6 [报告]
发表于 2013-06-28 11:20 |只看该作者
qq:2379374402

论坛徽章:
0
7 [报告]
发表于 2013-06-29 09:08 |只看该作者
回复 5# wwxxxxll

谢谢大大的回复, 我后面发现用系统自带的内核树就可以编译了...

问题是我不明白为什么自己建的就不行

估计还是对
make oldconfig    make   make bzImage    make modules   make modules_install   
这里东西的内在理解不透彻..

不管怎么样  都很感谢大大
            


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP