linux-kernel之为 MIPS 编译 Linux 内核

哈哈 阅读:124 2024-05-06 11:43:44 评论:0

我有一台 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)已正确配置。有两种工具链:

  1. ELF工具链(名称中有 -elf-none-eabi):用于 bare-metal程式。您应该使用它来构建引导加载程序和内核。
  2. GNU/Linux工具链(名称中有 -linux-gnu-linux-gnueabi):依赖于 Linux system calls并且具有 C 标准库,因此它旨在构建在 Linux 下运行的用户空间应用程序。您应该使用它来构建 BusyBox,因为它是用户空间程序。

我可能会建议您查看 Sourcery CodeBench工具链。尤其是你感兴趣的下一个:

安装工具链后,您需要在工作环境 (shell) 中执行下一步操作。

  1. 更新您的 PATH 环境变量,将您的工具链的 bin/ 目录添加到其中:

    $ export PATH=/opt/path/to/your/toolchain/bin:$PATH 
    
  2. 导出 CROSS_COMPILE 环境变量,其中应包含工具链的前缀。例如,如果您在工具链 bin/ 目录中看到 mips-sde-elf-gcc,那么您应该执行下一步:

    $ export CROSS_COMPILE=mips-sde-elf- 
    
  3. 导出 ARCH 环境。变种。设置为您的架构:

    $ export ARCH=mips 
    

现在您可以像在 x86 上一样构建内核和 BusyBox:

$ make <target> 

有用的阅读

正如评论中所建议的那样,可能值得研究 OpenWrt 项目,因为它适用于 MIPS 架构(它是各种路由器的非常流行的开源固件),并且广泛使用 MIPS 工具。看看OpenWrt build system文档以获取有关这些工具的一些线索。


标签:linux
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号