我在尝试为旧的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,但仍然得到相同的结果。
请不要建议我将内核升级到更新版本,我必须特别使用此版本。
我很想得到关于它的内容的解释,也许有人可以帮我修复它。
提前致谢。
答案 0 :(得分:1)
您显示的错误似乎与构建内核无关,而是似乎是在工具链(=交叉编译器)构建期间。工具链需要安装内核头文件,C库使用它来创建系统调用。为此,buildroot使用' headers_install'内核的目标。
不幸的是,这个目标只在Linux 2.6.18中引入。因此,使用内核版本,您无法使用buildroot来构建交叉编译器。
我也不知道你应该如何为这样一个旧内核构建一个交叉编译器。您可以尝试使用原始的'crosstool'项目(不是crosstool-NG,也太现代了)。