我正在尝试在ubuntu中构建一个简单的内核,以下是执行此操作时出现的错误。
make -C /lib/modules/3.13.0-52-generic/build M= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-52-generic'
make[1]: Makefile: No such file or directory
make[1]: *** No rule to make target `Makefile'. Stop.
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-52-generic'
make: *** [all] Error 2
我的Make文件:
obj-m := module1.o
KERNEL = $(shell uname -r)
all:
make -C /lib/modules/$(KERNEL)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KERNEL)/build M=$(PWD) clean
任何人都可以帮助我。
注意:我已经下载了内核源代码
答案 0 :(得分:1)
在使用之前,您应该在Makefile中设置PWD变量。 E.g。
PWD = $(shell pwd)
<强>更新强>:
另外,Makefile混合了两种模式:KBuild模式(obj-m := module1.o
)和普通makefile模式(所有其他行)。您应该区分模式(使用if
)或使用两种不同的文件用于两种模式:
生成文件:
KERNEL = $(shell uname -r)
PWD = $(shell pwd)
all:
make -C /lib/modules/$(KERNEL)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KERNEL)/build M=$(PWD) clean
的kbuild:
obj-m := module1.o