Linux内核模块makefile问题

时间:2014-08-08 07:51:26

标签: linux compilation makefile kernel

我正在尝试学习一些关于Linux内核编程的知识,在尝试完一个教程之后我完全陷入困境。 我的makefile抱怨某种“命令未找到”错误(错误127),所以它不会编译它。 我试图寻找解决方案,但没有出现任何问题。所以我想我会试着在这里问一下。对不起,如果这是重复的。

以下是shell的错误输出:

malt@ubuntu:~/Documents/C$ make
C /usr/src/linux SUBDIRS=/home/malt/Documents/C; modules
/bin/sh: 1: C: not found
/bin/sh: 1: modules: not found
make: [default] Error 127 (ignored)

这是我的makefile:

# Makefile of My First Driver

# if KERNELRELEASE is defined, we've been invoked from the kernel build system
# and can use it's language
ifneq (${KERNELRELEASE},)
    obj-m := mfd.o

# otherwise we've been called directly from the commandline.
# invoke the kernel build system.
else
    KERNEL_SOURCE := /usr/src/linux
    PWD := ${shell pwd};

default:
    ${make} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules

clean:
    ${make} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean

endif

有没有人知道出了什么问题?

提前致谢!

2 个答案:

答案 0 :(得分:1)

将关键字制作更改为MAKE,如下所示

  

默认:
           $ { MAKE } -C $ {KERNEL_SOURCE} SUBDIRS = $ {PWD}模块
      清洁:
  $ { MAKE } -C $ {KERNEL_SOURCE} SUBDIRS = $ {PWD} clean

答案 1 :(得分:1)

增加Santosh A的变化

  1. ;中不应该PWD := ${shell pwd};。删除它将解决/bin/sh: 1: modules: not found错误。