为旧的Linux内核设置Buildroot

时间:2014-12-19 20:27:46

标签: linux cross-compiling buildroot

我在尝试为旧的Linux内核设置交叉编译器时遇到了问题。

cp -dpRf package/config/buildroot-config /tmp/buildroot/buildroot-2009.02/project_build_mips/uclibc/buildroot-config
(cd /tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15; \
     /usr/bin/make -j1 ARCH=mips \
        HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" \
        HOSTCXX="/usr/bin/g++" \
        INSTALL_HDR_PATH=/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux headers_install; \
    )
make[1]: Entering directory `/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15'
Makefile:486: .config: No such file or directory
make[1]: *** No rule to make target `headers_install'.  Stop.
make[1]: Leaving directory `/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15'
make: *** [/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux/.configured] Error 2

注意make[1]: *** No rule to make target 'headers_install'. Stop.行。 我在stackoverflow上搜索并遇到了这个帖子: Setup buildroot for old kernels

那个人和我一样面临同样的问题。 答案,建议使用旧版本的buildroot。因此我使用buildroot-2009.02这是最老版本的buildroot,但仍然得到相同的结果。

请不要建议我将内核升级到更新版本,我必须特别使用此版本。

我很想得到关于它的内容的解释,也许有人可以帮我修复它。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您显示的错误似乎与构建内核无关,而是似乎是在工具链(=交叉编译器)构建期间。工具链需要安装内核头文件,C库使用它来创建系统调用。为此,buildroot使用' headers_install'内核的目标。

不幸的是,这个目标只在Linux 2.6.18中引入。因此,使用内核版本,您无法使用buildroot来构建交叉编译器。

我也不知道你应该如何为这样一个旧内核构建一个交叉编译器。您可以尝试使用原始的'crosstool'项目(不是crosstool-NG,也太现代了)。