英文原文出现在
http://www.ibm.com/developerworks/linux/tutorials/l-embedded-distro/index.html
Summary: Learn how to build a custom Linux® distribution to use in an embedded environment, in this case to drive a Technologic Systems TS-7800 single-board computer. In this tutorial, you learn about cross-compiling, the boot loader, file systems, the root file system, disk images, and the boot process, all with respect to the decisions you make as you're building the system and creating the distribution.
概述:学习如何构建应用于嵌入式环境的定制的Linux发布包,在本例中,是驱动一个Technologic Systems TS-7800单板计算机。在本教程中,你会学习到交叉编译,boot loader,file systems,root file system,disk images,还有启动过程,所有这些都于在构建系统创建发布包时你所做出的选择相关。
Before you start
Objectives
This tutorial shows you how to install Linux on a target system. Not a prebuilt Linux distribution, but your own, built from scratch. While the details of the procedure necessarily vary from one target to another, the same general principles apply.
The result of this tutorial (if you have a suitable target) is a functional Linux system you can get a shell prompt on.
目标
本教程将向你展示怎么样在目标系统上安装Linux。不是预先构建好的Linux发布包,而是你自己的,从无到有构建出来的。具体的细节可能会因不同的目标对象而不同,基本的原理却是一致的。
本教程(如果你手边有合适的目标机的话)得到的结果是一个可以工作的并且能看到shell提示符的Linux系统。
About this tutorial
The tutorial begins with a discussion of cross-compilation issues, then discusses what the components of a Linux system are and how they are put together. Both the building and the installation and configuration of the target system are covered.
The specific target discussed, a Technologic Systems TS-7800, imposes its own default boot and bring-up behaviors; other systems will have other mechanics, and this tutorial does not go into great detail about every possible boot loader.
关于本教程
该教程从对交叉编译的讨论开始,之后讨论Linux系统的组件都有哪些,它们是怎么样发在一起的。这个过程中也提到了对目标系统的构建,安装和配置。
讨论的特定目标对象,Technologic Systems的一块TS-7800,有其自己默认的启动和bring-up的行为;其他的系统则会有其他的机制,本教程并不会对每一个可能的boot loader都进行深入。
Prerequisites and system requirements
Developers who are interested in targeting embedded systems, or who just want to learn more about what Linux systems are like under the hood, will get the most out of this tutorial.
The host environment used is Ubuntu, but other systems work as well. Users are assumed to have basic familiarity with UNIX® or Linux system administration issues. The tutorial assumes root access to a host system.
This tutorial assumes that your shell is a Bourne shell derivative; if you use a C shell derivative, the prompt will probably look different, and you will need to use different commands to set environment variables.
For cross-compiling (which is useful when targeting embedded systems), I used crosstool-ng version 1.1.0, released in May of 2008. You may download it from the distribution site (seeResources). Details follow on installing and configuring it.
前提和系统需求
对于嵌入式系统感兴趣,或者只是想更多的了解Linux系统是什么样的开发者而言,会从本教程中受益。
使用的主机环境是Ubuntu,其他的系统也可以。假定用户对UNIX或者Linux系统管理方面有基本的掌握。教程假定对主机系统有root访问权限。
本教程假定你的shell是类Bourne shell;如果你使用的是C shell的变种,提示符看起来可能会不同,并且在设置环境变量的时候,也需要使用不同的命令。
对于交叉编译而言(当面向嵌入式系统的时候,交叉编译是很有用的),我使用crosstool-ng 版本1.1.0,2008年5月份发布的。
About the target and architecture
Target
The target I chose is a Technologic Systems TS-7800 (see Resources for more detail). This is a small embedded ARM system, with both built-in and removable flash storage, as well as a SATA controller. This tutorial walks you through configuring this system to boot to a login prompt, without relying on prebuilt binaries.
目标
英文原文作者选择的目标是Technologic Systems的TS-7800。它是一个小型的嵌入式ARM系统,既有内嵌的也有外接的flash存储器件,还有SATA控制器。本教程带领你从配置该系统到启动到登录提示符,不依赖预先构建的二进制文件。
Architecture
I chose the ARM architecture to make it a little easier to check whether a given binary is host or target, and to make it easy to see when host pollution might be occurring. It is also nice having a machine that consumes a total of about 5W of power and runs completely silently.
架构