Linux 设置旧内核的buildroot
我正在尝试设置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
/ # 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需要大量供应商支持才能升级内核。