设备驱动程序。创建文件,外部模块
问题描述:
我正在尝试在intel x86主机上为ARM体系结构交叉编译helloworld内核(2.6.x)模块。设备驱动程序。创建文件,外部模块
用于ARM的工具链位于:/home/vivek/ti-sdk-am335x-evm-05.07.00.00/linux-devkit/bin
内核源位于:/home/vivek/Arago
的hellow.c
和Makefile
位于桌面上/home/vivek/Desktop/hellodriver
我已经给出了路径交叉编译为/home/vivek/ti-sdk-am335x-evm-05.07.00.00/linux-devkit/bin
我的Makefile如下: -
export ARCH=arm
export CROSS_COMPILE=arm-arago-linux-gnueabi-
obj-m =Hello.o
KDIR =/home/vivek/Arago
PWD = $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
上执行make
我越来越
[email protected]:~/Desktop/hellodriver$ make
make: Nothing to be done for `default'.
我在做什么错?
答
你的Makefile存在错误。由于您的源代码名称是hellow.c
,但在您的Makefile中它的编号为Hello.o
。
因此改变你的obj-m =Hello.o
到obj-m =hellow.o
还有一件事Etan Reisner
上面说要确保你using Tab for command in Makefile
。
+0
@Vivek Verma是你的问题解决了吗? –
$(MAKE)行是否缩进制表符或空格?使用空格会导致你所说的输出。 –
您正在使用哪个版本的Make? (如果您不确定,请尝试'make -v') – Beta
是的使用Tab可以很好地缩进。我正在使用gnu make 3.2 –