UPDATE 之后,运行 MAKE 时出现“没有规则来构建目标”,为什么?

UPDATE 之后,运行 MAKE 时出现“没有规则来构建目标”,为什么?

我经常运行 Ubuntu更新管理器 在此处输入图片描述
之后每次我都需要重新make安装电视调谐器驱动程序(就像这里描述的一样

但那时,make会因错误而停止:
以下错误消息是从法语翻译而来的

$ make
make -C /lib/modules/3.2.0-53-generic-pae/build M= modules
make[1]: entering in folder « /usr/src/linux-headers-3.2.0-53-generic-pae »
make[2]: *** No rule to build the target « arch/x86/tools/relocs.c », needed for « arch/x86/tools/relocs ». Stop.
make[1]: *** [archscripts] Erreur 2
make[1]: exiting folder « /usr/src/linux-headers-3.2.0-53-generic-pae »
make: *** [all] Erreur 2

请问我该如何解决这个错误?


信息

  • Ubuntu 版本是12.04(精确的)
  • 内核 Linux 是3.2.0-53-通用-pae
  • 的内容/usr/src/linux-headers-3.2.0-53-generic/arch/x86/
    类似于/usr/src/linux-headers-3.2.0-52-generic/arch/x86/

  • 文件夹的内容/usr/src/linux-source-3.2.0

    $ ls -la /usr/src/linux-source-3.2.0
    total 78020
    drwxr-xr-x  4 root root     4096 sept. 21 08:44 .
    drwxr-xr-x 74 root root     4096 sept. 21 22:44 ..
    drwxr-xr-x 10 root root     4096 sept. 21 08:44 debian
    drwxr-xr-x  8 root root     4096 sept. 21 08:44 debian.master
    -rw-r--r--  1 root root 79874365 aug.  23 00:11 linux-source-3.2.0.tar.bz2
    

    $ find /usr/src/linux-source-3.2.0 -name "relocs.c"
    

    不返回任何内容

答案1

这个问题的线索是错误消息的这一部分:

使[2]:*没有规则来构建目标“arch/x86/tools/relocs.c”,而“arch/x86/tools/relocs”需要该规则。停止。

该 makefile 正在寻找名为 的代码模块relocs.c

现在,代码模块通常不存在于内核头文件中。您需要先提取内核源代码,然后 Makefile 才能进行处理。

我们开工吧。

导航到您的内核源文件夹:

cd /usr/src/linux-source-[version]

在你的情况下[版本]内核版本是3.2.0

列出文件夹的内容。您应该在其中看到一个名为的文件。NB 与之前替换一样linux-source-[version].tar.bz2[版本]您的内核版本号。

如果没有,请安装源:

sudo apt-get install linux-source

现在提取源代码:

sudo tar -jxvf linux-source-[version].tar.bz2

然后你就可以完成你的编译了。

答案2

所需的 i386 标头:

sudo apt-get install linux-headers-*(kernel version)*:i386

例子:

sudo apt-get install linux-headers-5.4.0-42:i386

相关内容