我正在尝试在英特尔x86主机上交叉编译用于ARM体系结构的helloworld内核(2.6.x)模块。

ARM的工具链位于:/home/vivek/ti-sdk-am335x-evm-05.07.00.00/linux-devkit/bin

内核源位于:/home/vivek/Arago

hellow.cMakefile位于/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

09-07 10:36