Linux 设置旧内核的buildroot

Linux 设置旧内核的buildroot,linux,makefile,kernel,cross-compiling,buildroot,Linux,Makefile,Kernel,Cross Compiling,Buildroot,我正在尝试设置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\u install未知 以下是Completat输出: ~/buildroot-2011.11$ make (cd /root

我正在尝试设置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\u install
未知

以下是Completat输出:

~/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和scripts目录

以下是输出:

# 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

不知道我现在能试什么。我该怎么办?

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


升级内核怎么样?

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

您必须将头文件\u install替换为install文件:

package/linux-fusion/linux-fusion.mk

有一条线

$(目标\配置\选择)$(生成)$(LINUX \融合\生成\选择)安装\修改\路径=$(暂存\目录)-C$(@D)头文件\安装


找到。

最简单的事情可能是切换到旧版本的Buildroot。嗨,ekire,我面临同样的问题,我需要基于内核2.6.10构建mipsel工具链。你是否设法绕过了这个问题?我希望能得到任何信息……不,我刚刚放弃了那个项目。我换成了RaspberryPi,“你可以尝试使用旧版本的Buildroot”——早期版本的Buildroot(例如20070706)没有构建Linux内核的能力;它只是按照它的名字来做:构建一个根文件系统。Buildroot-20080424可以编译Linux内核,但只能返回到2.6.20。“升级内核怎么样?”-对于具有专有IP硬件(如基带收音机、IP视频、网络处理器等)的嵌入式系统,此建议在一般情况下是不适用的。这些系统通常与专有固件和其他二进制BLOB一起出售,这些二进制BLOB需要大量供应商支持才能升级内核。