我正在尝试在英特尔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
时vivek@ubuntu:~/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
。