3

我正在尝试设置 buildroot 以交叉编译自定义应用程序。

/ # uname -a
Linux Venus 2.6.12.6-VENUS #323634 Wed May 25 13:40:36 CST 2011 mips unknown

到目前为止,我在 buildroot 中选择了内核版本2.6.12.6。现在我遇到了make命令失败并大喊规则headers_install未知的问题。

这是完整的输出:

~/buildroot-2011.11$ make
(cd /root/buildroot-2011.11/output/toolchain/linux-2.6.12.6; \
         /usr/bin/make -j2 ARCH=mips \
                HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" \
                HOSTCXX="/usr/bin/g++" \
                INSTALL_HDR_PATH=/root/buildroot-2011.11/output/toolchain/linux headers_install; \
        )
make[1]: Entering directory `/root/buildroot-2011.11/output/toolchain/linux-2.6.12.6'
Makefile:485: .config: Datei oder Verzeichnis nicht gefunden
make[1]: *** Keine Regel, um »headers_install« zu erstellen.  Schluss.
make[1]: Leaving directory `/root/buildroot-2011.11/output/toolchain/linux-2.6.12.6'
make: *** [/root/buildroot-2011.11/output/toolchain/linux/.configured] Fehler 2

我认为问题在于这个旧内核的makefile中没有这个选项。

我的下一个尝试是通过替换旧内核来使用新内核 3.2.6 的 Makefile 和脚本目录。

这是输出:

# make
(cd /root/buildroot-2011.11/output/toolchain/linux-2.6.12.6; \
         /usr/bin/make -j2 ARCH=mips \
                HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" \
                HOSTCXX="/usr/bin/g++" \
                INSTALL_HDR_PATH=/root/buildroot-2011.11/output/toolchain/linux headers_install; \
        )
make[1]: Entering directory `/root/buildroot-2011.11/output/toolchain/linux-2.6.12.6'
  CHK     include/linux/version.h
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/unifdef
Makefile:1059: *** Headers not exportable for the mips architecture.  Schluss.
make[1]: Leaving directory `/root/buildroot-2011.11/output/toolchain/linux-2.6.12.6'
make: *** [/root/buildroot-2011.11/output/toolchain/linux/.configured] Fehler 2

不知道我现在可以尝试什么。我该怎么办?

4

3 回答 3

5

所有构建交叉编译工具链的现代工具都依赖于实现headers_install目标的内核。因此,正如 Shawn 所建议的,您可以尝试使用较旧的 Buildroot 版本,但我认为我们已经使用headers_install了很长时间,所以您必须回到过去,并面临许多其他问题。

那么升级你的内核呢?

于 2012-05-11T13:03:53.143 回答
0

如果您从头开始使用 buildroot 工具链,您可以自定义工具链的头文件,然后自定义内核以匹配工具链,那很好。

于 2013-08-19T08:47:45.313 回答
0

您必须将headers_install替换为文件中的安装

包/linux-fusion/linux-fusion.mk

有线

$(TARGET_CONFIGURE_OPTS) $(MAKE) $(LINUX_FUSION_MAKE_OPTS) INSTALL_MOD_PATH=$(STAGING_DIR) -C $(@D) headers_install

在这里找到。

于 2015-06-23T14:50:23.570 回答