mcm*_*iln 2 mips cross-compiling linux-kernel
我有一个32位MIPS机器,并希望在其上运行Linux.我需要使用我的Windows 7机器将Linux交叉编译为MIPS.我很困惑如何解决这个问题.有人能告诉我这是什么步骤,为什么?我不了解这个过程中涉及的所有不同工具.谢谢.
好吧,你可以(理论上)在Windows下构建内核和BusyBox rootfs,参见Windows的MIPS工具链.但是在Windows中准备正确的构建环境可能相当困难(可能是Cygwin或MinGW,我不确定).例如,在Ubuntu中,您可以随心所欲地准备好所有内容.
另一点是开发 - 使用Linux进行Linux内核开发更加容易和自然.我认识的每个人都在使用Linux内核(包括MIPS架构),他正在使用Linux进行开发并构建内核和rootfs.
简而言之:Windows是Linux开发的外来环境,尽量避免使用它.
因此,我建议您安装Linux发行版并将其用于构建内核和rootfs,并将构建的映像刷新到您的设备.最新的Ubuntu LTS会做(现在是Ubuntu 14.04).
首先,您需要确定需要构建哪些组件.如果你有嵌入式系统 - 对于初学者我建议你做下一步:
git clone从这里开始的稳定版本)现在你的工作环境很少.
在构建任何内容之前,请确保已安装MIPS 工具链并正确配置了您的环境(shell).有两种工具链:
-elf或-none-eabi以其名义):用于裸机程序.您应该使用它来构建引导加载程序和内核.-linux-gnu或-linux-gnueabi在其名称中):它依赖于Linux 系统调用并具有C标准库,因此它用于构建在Linux下运行的用户空间应用程序.您应该使用它来构建BusyBox,因为它是用户空间程序.我可能会建议您查看Sourcery CodeBench工具链.特别是你对下一个感兴趣:
安装工具链后,您需要在工作环境(shell)中执行下一步操作.
更新PATH环境变量,将bin/工具链的目录添加到其中:
$ export PATH=/opt/path/to/your/toolchain/bin:$PATH
Run Code Online (Sandbox Code Playgroud)导出CROSS_COMPILE环境变量,其中应包含工具链的前缀.例如,如果您mips-sde-elf-gcc在工具链bin/目录中看到,那么您应该做下一步:
$ export CROSS_COMPILE=mips-sde-elf-
Run Code Online (Sandbox Code Playgroud)导出ARCH环境 变种.设置为您的架构:
$ export ARCH=mips
Run Code Online (Sandbox Code Playgroud)现在,您可以像使用x86一样构建内核和BusyBox:
$ make <target>
Run Code Online (Sandbox Code Playgroud)
正如评论中所建议的那样,看看OpenWrt项目可能是值得的,因为它适用于MIPS架构(它是各种路由器非常流行的开源固件),并且它广泛使用MIPS工具.查看OpenWrt构建系统文档以获得有关这些工具的一些线索.