为旧内核设置buildroot [英] Setup buildroot for old kernels
问题描述
我试图安装的buildroot为交叉编译自定义应用.
I'm trying to setup buildroot for cross-compiling a custom app.
/ # 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 .现在,我已经得到了问题的
So far I chose kernel version 2.6.12.6 in buildroot. Now I've got the problem that the make
command fails yelling that the rule headers_install
is unknown.
以下是完整的输出:
~/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中没有此选项.
I think the problem is that this old kernel doesn't have this option in its makefile.
我的下一个尝试是通过替换旧内核,使用新内核3.2.6的Makefile和scripts目录.
My next try was to use the Makefile and the scripts directory of the new kernel 3.2.6 by replacing the old one.
下面是输出:
# 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
不知道我现在可以试试.我应该怎么办?
No idea what I can try now. What should I do?
推荐答案
所有构建交叉编译工具链的现代工具都依赖于实现headers_install
目标的内核.因此,如Shawn所建议的,您可以尝试使用较旧的Buildroot版本,但我认为我们已经使用很长时间了,因此很久以前就必须使用headers_install
,因此您必须面对很多其他问题.
All modern tools that build cross-compilation toolchains rely on the kernel implementing the headers_install
target. So as suggested by Shawn, you can try with an older Buildroot version, but I think we have been using exclusively headers_install
since quite a long time, so you would have to go way back in the past, and face many other problems.
该如何升级内核呢?
这篇关于为旧内核设置buildroot的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!