2009-09-01 86 views
1

这些是我在我的机器上编译linux源码的步骤:
1.将配置文件从/ boot复制到/usr/src/kernels/2.6.29.4 -167.fc11.i586 /目录
2.化妆oldconfig这个
3.化妆
内核编译过程中出现`missing-syscalls'错误

步骤3失败,出现以下错误: 化妆[1]:***没有规则使目标`缺系统调用”。停止。

在x86机器上编译。 有什么建议吗? 如果它不属于这里,请随时关闭此问题。

回答

0

建立一个新的配置文件。也许老人不工作?

+0

尝试,也是如此。请参看新的配置文件相同的错误。 – vivekian2 2009-09-02 16:48:26

2

由于过时,因为它听起来似乎目前为了得到一个系统内核源代码,你必须手动选择你想要的来源。假设人们不会像以前那样经常构建内核,当然你可能想开发一个与你所运行的版本不匹配的内核。

因此,例如我想安装VBox我的CentOS 6.2盒子,虽然大多数内核模块可以在没有完整源代码的情况下编译,但这个更新失败

所以我发现了这个Wiki页面: http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

它不会列出6.2和命名约定对最终目录名称更改,以便让你去http://vault.centos.org/6.2/updates/Source/的6.2内核源代码,然后选择你的版本想。如果您需要其他版本的源代码,请转至http://vault.centos.org/并从此处导航。

文档建议不要在内核源代码上进行rpm构建。

0

由于内核3.x.x如果尝试构建仅具有单个Makefile的外部模块,则会出现此消息。

相反,根据this manual

分裂成的kbuild(其中所有的源文件中列出,例如):

obj-m := module_source.c

和简单生成文件(仅具有默认化妆指令,例子):

default: $(MAKE) -C $(KDIR) M=$$PWD

将解决该问题。

以防万一,外部模块编译指令是以下几点:

make -C <kernel source path> -M=<module source folder>

例如:make -C . -M=extra/