从头开始构建一个嵌入式 Linux 发行版.docVIP

从头开始构建一个嵌入式 Linux 发行版.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从头开始构建一个嵌入式 Linux 发行版

Peter Seebach , 自由作家, Plethora.net 2008 年 9 月 01 日 学习如何为嵌入式环境构建一个定制 Linux 发行版,本教程针对的是 Technologic Systems TS-7800 单板计算机。在这篇教程中,将学习交叉编译、启动装载器、文件系统、根文件系统、磁盘镜像和启动过程,您可以在构建系统和创建发行版时选择它们。 在本教程中 本教程首先讨论交叉编译问题,然后讨论 Linux 系统的组成部分,以及它们是如何结合在一起的。本教程还谈到了构建和安装,以及目标系统的配置。 本教程讨论一个特定的目标 Technologic Systems TS-7800,它使用自己的默认启动和 bring-up 行为;其他系统将使用其他的机制,本文不详细地讨论每种可能的启动装载器。 预备知识 本教程针对对目标嵌入式系统感兴趣,或者想学习更多关于 Linux 系统的开发人员。他们将从本教程获益不浅。 本教程使用的主机环境是 Ubuntu,但其他系统也可以。本教程假定用户基本熟悉 UNIX? 或 Linux 系统管理,并且有主机系统的根访问权限。 本教程假定您 shell 是 Bourne shell 的变体;如果您使用的是 C shell 变体,那么提示符可能会不同,需要使用不同的命令来设置环境变量。 对于交叉编译(在嵌入式系统中比较有用),我使用了 2008 年 5 月发行的 crosstool-ng version 1.1.0。您可以从发行站点下载它(参见参考资料)。后面有关于安装和配置它的详细信息。 学习如何构建一个在嵌入式环境中使用定制 Linux 发行版,以驱动 Technologic Systems TS-7800 单板计算机。在这篇教程中,将学习交叉编译、启动装载器、文件系统、根文件系统、磁盘镜像和启动过程,您可以在构建系统和创建发行版时选择它们。 开始之前 目标 本教程展示如何在一个目标系统上安装 Linux。这不是一个预先构建的 Linux 发行版,而是您从头构建发行版。虽然在不同目标系统上安装 Linux 的过程在细节上有差异,但总的原则是相同的。 本教程帮助您构建(如果您有一个合适的目标系统)一个有效的 Linux 系统,您可以在这个系统上使用 shell 提示符。 关于本教程 本教程首先讨论交叉编译问题,然后讨论 Linux 系统的组成部分,以及它们是如何结合在一起的。本教程还谈到了构建和安装,以及目标系统的配置。 本教程讨论一个特定的目标 Technologic Systems TS-7800,它使用自己的默认启动和 bring-up 行为;其他系统将使用其他的机制,本文不详细地讨论每种可能的启动装载器。 先决条件和系统需求 本教程针对对目标嵌入式系统感兴趣,或者想学习更多关于 Linux 系统的开发人员。他们将从本教程获益不浅。 本教程使用的主机环境是 Ubuntu,但其他系统也可以。本教程假定用户基本熟悉 UNIX? 或 Linux 系统管理,并且有主机系统的根访问权限。 本教程假定您 shell 是 Bourne shell 的变体;如果您使用的是 C shell 变体,那么提示符可能会不同,需要使用不同的命令来设置环境变量。 对于交叉编译(在嵌入式系统中比较有用),我使用了 2008 年 5 月发行的 crosstool-ng version 1.1.0。您可以从发行站点下载它(参见 参考资料)。后面有关于 安装和配置它 的详细信息。 关于目标和架构 目标 我选择的目标是一个 Technologic Systems TS-7800(详细信息请参阅 参考资料)。这是一个小型的嵌入式 ARM 系统,同时具有内置的和可移动的 flash 存储,还有一个 SATA 控制器。本教程引导您启动到一个登录提示符,而不需要依赖预先构建的二进制文件。 架构 我选择了 ARM 架构,这便于检查一个给定的二进制文件是主机还是目标,并且便于查看是否发生主机污染。使用一台总功率为 5W,能够安静运行的机器也不错。 交叉编译 什么是交叉编译? 交叉编译是在一个系统上使用编译器来开发在另一个系统上运行的代码。交叉编译对于偶尔使用 UNIX 的用户而言比较少见,因为在默认情况下,只在本系统上安装需要使用的编译器。然而,当以嵌入式系统为目标时,交叉编译就相当常见。即使主机和目标具有相同的架构,也必须区分它们的编译器。它们可能有不同版本的库,或者使用不同的编译器选项构建的库,所以用主机编译器编译的东西在目标系统上不能运行,或者不能像预期的那样运行。 获取交叉编译工具 理论上,可以自己构建一个交叉编译器,但这很不实际。因为所需的一系列启动阶段(bootstrap stage)很复杂耗时,而且常常需要构建一个非

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档