开发驱动的环境真心让人感到沮丧!!!
我已经卡在这里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天了...实在找不到办法了
所以想在这里求大大指点一下迷津
先谢过了 还是没人回答啊...
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. 本帖最后由 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/是我源码的目录。
回复 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-BUGStools
block firmwareKbuild mm samples usr
COPYING fs kernel modules.order scripts virt
CREDITS hello.c lib Module.symverssecurity vmlinux
crypto include MAINTAINERSnet sound vmlinux.o
Documentationinit Makefile README System.map
root@RYAN:/lib/modules/2.6.32.1/build#
和我的没区别。
那你试试/usr/src/kernels/2.6.18-164.el5-i686/
和你的源码目录 qq:2379374402 回复 5# wwxxxxll
谢谢大大的回复, 我后面发现用系统自带的内核树就可以编译了...
问题是我不明白为什么自己建的就不行
估计还是对
make oldconfig make make bzImage make modules make modules_install
这里东西的内在理解不透彻..
不管怎么样都很感谢大大
页:
[1]