本篇翻译自奥莱里出版社的
《Building Embedded Linux Systems》byKarim Yaghmour 其著作权归原作者所有
2.1 主机的种类
在第三章,我会讲述到在嵌入式linux开发板中硬件。每个可能的目标板都可能在各种不同的系统上进行开发。下面,我将讨论常用的几个主机。它们的细节,同时,利用它们,我们怎杨轻易的开发嵌入式linux系统。
2.1.1 linux工作站
这是用来开发linux嵌入式系统最常用的一种主机了。也是我推荐的。因为,开发嵌入式linux系统,要求你非常熟悉linux ,当然没有比你天天使用它更好了。
一个标准的个人电脑是你最有可能获得的linux工作站,但是不要忘记,不只局限于个人电脑,linux运行在很多种不同的硬件之上。举个例子,我平时使用一台苹果电脑来运行linux来进行开发嵌入式linux.它少个RS232(一种串口协议,学嵌入式的不能不知道)串口。但是,加上个usb串口是很容易的一件事情。
你可能在你主机上使用任何一种linux的发行版,比如debian,mandrake,redhat,suse,或者yellow dog 。事实上,贯穿本书,我假定你使用的是linux最常用的发行版。正如我在第一章所讲。你并不需要一个嵌入式linux发行版来开发嵌入式linux系统。这本书将为我们提供构建我们开发环境必要的信息。
note: 虽然我尽力保持主机的独立性。但是,在序言种,还是有点倾向于redhat发行版。你可能要做稍微的修改针对一些命令。依赖于安装在你电脑上的linux发行版。无论在什么情况下,版本独立性都是目标。
当然,最新以及最快的硬件是每个工程师的梦想。拥有最快的机器可以更好的帮助你的工作。但是,你得仍然使用合适的机器以及适当的ram来开发,记住,linux擅长于最大限度的利用可获资源。比如,我通常使用奔2 350,128M RAM 来开发。
在数量上你需求最大的存储空间。包括盘片和ram。另外你发行版所使用的。你必须得计划2--3G左右的空间。来构建你的开发环境以及工程。比如说,一个未解压的linux内核,通常是在你的工程中必须的一个组件。在编译前,占有100M 左右的空间。编译以后,会增加很多。如果你正在同时做3--4个以上的内核实验,你就很轻易的使用完500M的空间,单独为kernel.
谈到ram,一些GNU 工具连的编译步骤不要大量的ram,特别是编译c库。我推荐128M,ram,128的交换空间。
2.1.2 unix工作站
依赖于你的环境,你可能被要求使用传统的unix工作站,比如。solaris工作站,在电信解决方案中比较流行。尽管比使用linux工作站开发嵌入式系统的人少的很多。它仍然是可行的。
因为linux本身非常类似于unix,大部分能适用于linux,也能使用于unix。这是真的,因为它们是由GNU 工具连编译的。因为,主要的GNU工具链比如编译器,c库,还有二进制utilities,是用传统的unix系统上,那时还没有linux.
但是,接下来本书的描述也将可以很好的运行在任何一台unix工作站上。(说“将”因为它们可能会存在一点不同,你必须自己解决其中的差异。以上建议,我送给了Linux的工作站关于存储空间同样适用于UNIX工作站)
2.1.3 windows(2000,NT ,98,etc )工作站
十年前,嵌入式系统开发倾向于windows 工作站。很多开发者已经习惯于使用windows工作站来工作,并且,很多新的开发者们也被传授怎么利用它来进行开发。这样或那样的理由让一些开发者们将继续使用windows工作站来开发嵌入式linux系统。
初看之下,好像获取&使用GNU工具连在这种开发平台是一个很大的问题。但是,这不是一个问题。因为,redhat 提供了Cygwin(能虚拟很多硬件平台,有心的可以到网站去找相关资料),一个能在windows下编译的GNU工具连。而且还有人用它来构建交叉编译工具。Mumit Khan详细的介绍了在windows构建i386 ,linux交叉编译开发工具连。http://www.nanotech.wisc.edu/~khan/software/gnu-win32/cygwin-to-linux-cross-howto.txt。
尽管试图用这个方法没有经官方报道。但是,没有理由它会失败。
如果你还要继续使用windows,这有一个很轻易的方法,让你工作在linux环境下来构建linux目标板。你可以使用竞争或者虚拟软件,比如VMware(很出名的一个虚拟机,不要告诉我你没听说过哦 ),或者Connectix。这样,你可以在linux的虚拟环境下工作,同时你实际运行在windows。