linux-kernel之为 MIPS 编译 Linux 内核
我有一台 32 位 MIPS 机器,想在上面运行 Linux。我需要使用我的 Windows 7 机器将 Linux 交叉编译为 MIPS。我对如何去做这件事感到困惑。有人可以告诉我这是什么步骤,为什么?我不了解此过程中涉及的所有不同工具。谢谢。
请您参考如下方法:
操作系统问题
好吧,你可以(理论上)在 Windows 下构建内核和 BusyBox rootfs,参见 MIPS toolchain for Windows .但在 Windows 中准备正确的构建环境可能相当困难(可能是 Cygwin 或 MinGW,我不确定)。例如,在 Ubuntu 中,您可以开箱即用。
另一点是开发——使用 Linux 进行 Linux 内核开发更加容易和自然。我认识的每个从事 Linux 内核(包括 MIPS 架构)工作的人都在使用 Linux 进行开发和构建内核和 rootfs。
简而言之:Windows 对 Linux 开发来说是一个陌生的环境,尽量避免使用它。
所以我建议您安装 Linux 发行版并将其用于构建内核和 rootfs,并将构建的镜像刷写到您的设备。最新的 Ubuntu LTS 就可以了(现在是 Ubuntu 14.04)。
组件
首先,您需要弄清楚需要构建哪些组件。如果你有嵌入式系统——对于初学者,我建议你接下来做:
- 构建引导加载程序;我推荐U-Boot
- 单独构建 Linux 内核(
git clone
来自 here 的稳定版本) - 构建 BusyBox基于rootfs
- flash引导加载程序、内核和 rootfs 镜像到您的设备
现在您拥有最小的工作环境。
工具链
在构建任何东西之前,请确保您拥有 MIPS toolchain已安装并且您的环境(shell)已正确配置。有两种工具链:
- ELF工具链(名称中有
-elf
或-none-eabi
):用于 bare-metal程式。您应该使用它来构建引导加载程序和内核。 - GNU/Linux工具链(名称中有
-linux-gnu
或-linux-gnueabi
):依赖于 Linux system calls并且具有 C 标准库,因此它旨在构建在 Linux 下运行的用户空间应用程序。您应该使用它来构建 BusyBox,因为它是用户空间程序。
我可能会建议您查看 Sourcery CodeBench工具链。尤其是你感兴趣的下一个:
安装工具链后,您需要在工作环境 (shell) 中执行下一步操作。
更新您的
PATH
环境变量,将您的工具链的bin/
目录添加到其中:$ export PATH=/opt/path/to/your/toolchain/bin:$PATH
导出
CROSS_COMPILE
环境变量,其中应包含工具链的前缀。例如,如果您在工具链bin/
目录中看到mips-sde-elf-gcc
,那么您应该执行下一步:$ export CROSS_COMPILE=mips-sde-elf-
导出 ARCH 环境。变种。设置为您的架构:
$ export ARCH=mips
现在您可以像在 x86 上一样构建内核和 BusyBox:
$ make <target>
有用的阅读
正如评论中所建议的那样,可能值得研究 OpenWrt 项目,因为它适用于 MIPS 架构(它是各种路由器的非常流行的开源固件),并且广泛使用 MIPS 工具。看看OpenWrt build system文档以获取有关这些工具的一些线索。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。