“make”在安装 tty0tty(空调制解调器模拟器)期间停止

“make”在安装 tty0tty(空调制解调器模拟器)期间停止

我试着安装 tty0tty 一个空调制解调器仿真器就像链接的安装指南中一样,但我在“3.从提供的源构建内核模块”时遇到问题:

user@linux-bmne:/run/media/.../Downloads/tty0tty-1.2/module> make
make -C /lib/modules/3.16.7-29-desktop/build M=/run/media/.../Downloads/tty0tty-1.2/module modules
make[1]: Entering directory '/lib/modules/3.16.7-29-desktop/build'
make[1]: *** No rule to make target 'modules'. Stop.
make[1]: Leaving directory '/lib/modules/3.16.7-29-desktop/build'
Makefile:26: recipe for target 'default' failed
make: *** [default] Error 2

是的,makefile 位于文件夹中module。也/lib/modules/3.16.7-29-desktop/build退出(在 I 之后mkdir build3.16.7-29-desktop。你可以看看tty0tty的文件夹结构这里(这很简单)。我也尝试过sudo make,但没有什么区别。

这个问题No rule to make target似乎很常见,但在这种情况下我没有找到匹配的解决方案。我不知道这是否有帮助,但我的系统已打开 suse 13.2 x86_64。

我将非常感谢你的帮助。

答案1

要构建内核模块,您需要一些在构建主内核映像期间生成的头文件。 makefile 期望这些头文件在由运行的内核确定的/lib/modules/3.16.7-29-desktop/build位置下可用3.16.7-29-desktop。与头文件一起,还有一个可用于构建第三方模块的 makefile。中的 makefilemodule调用该 makefile,但它不存在于您的系统上。

您需要为您的系统安装内核头文件。在 OpenSUSE 上,这就是kernel-devel包裹。在大多数发行版上,是指向内核头树所在位置的符号链接。我不知道 OpenSUSE 是否这样做;如果没有,则创建符号链接或将标头的实际位置(包含文件和以及子目录和 的目录)作为参数传递给/lib/modules/VERSION/buildMakefileModule.symversincludearchmake

make KERNELDIR=/path/to/kernel-headers

如果您想要为当前运行的内核版本之外的内核版本构建模块,则需要使用后一种方法。

相关内容