1

我正在使用 CentOS 针对完整的内核树编译一个外部模块。我已经在 Beaglebone 上成功地修改、交叉编译、构建和启动了这个内核。我正在使用 linaro 工具(arm-gnueabihf-)。我使用相同的典型 Makefile 结构来编译自 2.6 发布以来我一直使用的模块。运行 make 规则时:

make ARCH=arm CROSS_COMPILE=${CC} -C $(KDIR) M=`pwd` modules

为我的工具链和内核 src 树正确设置的位置CC和位置,kbuild 正确地将 dir 更改为(kernel src) 目录,但是当返回(即处理)时,我收到以下错误:KDIR-CM

scripts/Makefile.build:44: /home/foo/bar/
Makefile: No such file or directory

/home/foo/bar实际上我当前的工作目录在哪里,即正确的结果pwd

直接将我的 pwd 路径写入M=或使用 make var 而不是调用会pwd产生相同的结果(不是语法问题)

任何想法?

4

1 回答 1

0

试试这个,因为我不知道你的make文件如何。

创造Makefile in /home/foo/bar

obj-m += hello.o
KERNELDIR=/home/vinay.hunachyal/build/clfs/sources/linux-3.9
all:
    make -C  $(KERNELDIR) M=$(PWD) modules

clean: 
    make -C $(KERNELDIR)  M=$(PWD) clean

在上面的 Makefile 中编辑 KERNELDIR=(path-to-kernel-source) 也改变 obj-m +=(your module)

在此之后,只需使用

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

于 2013-09-02T06:22:39.643 回答