没有规则来制作目标`arch / x86 / entry / syscalls / syscall_32.tbl',需要`arch / x86 / entry / syscalls /../../ include / generated / asm / syscalls_32.h'

时间:2016-08-23 17:54:32

标签: architecture linux-kernel

当我尝试在Ubuntu机器上启用PPP时,在menuconfig之后发生以下错误并尝试创建内核:

$ sudo make
  

make [1]:***没有规则来制作目标`arch / x86 / entry / syscalls / syscall_32.tbl',需要`arch / x86 / entry / syscalls /../../ include / generated /asm/syscalls_32.h”。停止。

     

make:*** [archheaders]错误2

使用了Ubuntu版本linux-headers-4.2.0-27-generic。

请帮我解决。

3 个答案:

答案 0 :(得分:5)

使用$(PWD)时,这可能是语法错误。考虑改变这个:

all: 
    $(MAKE) -C $(KDIR) M=$(PWD) modules

到此:

all: 
    $(MAKE) -C $(KDIR) M=$(shell pwd) modules

这解决了我的问题。

答案 1 :(得分:1)

简短版:

这不是您正在构建的完整内核。也许它只是标题,或其他不完整的东西。确保它是完整的内核源代码。

长版:

不确定在Ubuntu上这样做...看起来正常的方式对ubuntu不起作用,例如只是模块(不是你想要的):

apt-get install linux-headers-...
cd /lib/modules/$(uname -r)/build
make modules_prepare

或者对于你想要的整个内核,也不适用于我(Ubuntu 16.04):

apt-get install linux-source-...
cd /lib/modules/$(uname -r)/build
make menuconfig
make bindeb-pkg

(注意make bindeb-pkg不是纯粹的ubuntu / debian构建方式......你使用make-kpkg命令或其他东西)

他们没有为您制作构建链接,如果您在那里符号链接并复制.config文件,则构建将失败。所以这是我到目前为止的替代方案,例如。 ubuntu 16.04 with kernel 4.4.16):

cd /usr/src
apt-get source linux-image-4.4.0
cd linux-4.4.16
cp /boot/config-$(uname -r) .config
make modules_prepare

但是最后一个方法是针对与正在运行的内核不匹配的内核...我不知道这是否适合你(它不适合我,构建一个out of tree模块,所以我也make bindeb-pkgdpkg -i ../linux-...安装了结果)

使用apt-get source ...的替代方法,对于ubuntu源,您可以从kernel.org或git获取vanilla源作为tgz文件。

答案 2 :(得分:0)

在尝试为 ARM Raspberry Pi 构建 mt7610u WIFI 驱动程序时,我收到了类似的消息。阅读 README.md 并按照文件开头的说明进行操作。请注意,它在下载 linux 内核源代码然后构建它时确实需要大约 900Mb 的可用空间。

#prepare kernel source code
..if you get this error: no rule, for target „arch/arm/tools/syscall.tbl“, 
  needed from „arch/arm/include/generated/uapi/asm/unistd-common.h“

  For new kernel versions 5+ you need to download the latest rpi-sources to fix it:

$ sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source
$ sudo chmod +x /usr/bin/rpi-source
$ /usr/bin/rpi-source -q --tag-update
$ rpi-source

 if you get any question just answer with [y]