论文部分内容阅读
摘 要 本文的研究主要是简述ARM架构的嵌入式Linux系统的基本理论,解释了什么是嵌入式系统、Linux系统简介、嵌入式Linux系统、ARM架构的嵌入式Linux系统;从最基本理论入手,能引起初学者兴趣,培养基础知识;同时还简洁的阐述在WINDOWS操作系统下利用虚拟机技术,来建立一个Linux开发环境以及搭建ARM架构的嵌入式Linux系统移植环境应该注意的相关事项。
关键词 Linux系统移植 虚拟机 ARM架构
中图分类号:TP3 文献标识码:A
0引言
美国著名的未来学家尼葛洛庞帝在1999 年访华时曾预言,4~5 年后嵌入式系统将是继PC和Internet之后最伟大的发明。这个预言已经成为现实, 现在任何一个普通人都拥有着各种使用嵌入式技术的电子产品,小到MP3,智能手机等数字化产品,大到智能家电,车载电子设备。在工业和服务行业中,嵌入式的运用就更加广泛。目前,世界各项嵌入式系统正处于高速发展阶段。嵌入式系统设备在应用数量上已经替代了传统的通用计算机,甚至远远超过了传统计算机。正是因为嵌入式的应用越来越广泛,基于嵌入式系统的应用开发需求也就越来越多。
嵌入式系统主体是以应用为中心,以计算机技术为基础的系统。但是和通用计算机系统有着很大的不同,其本质区别在于系统的应用不同。嵌入式系统(Embedded system),是一种“嵌入机械或电气系统内部、具有专属功能的计算机系统”,通常要求实时计算性能。被嵌入的系统通常是包含硬件和机械部件的完整设备。这个对象可能是庞大的机器,也可能是小巧的手持设备,用户在使用的时候并不会关心这个计算机系统的存在;通用计算机如个人计算机则设计灵活,以满足广大终端用户的需求。
嵌入式设备上使用的系统和应用软件,其本身是不能在设备上进行开发或修改的,必须在主机上开发或修改好后才能移植到嵌入式设备上去使用的。前面提到嵌入式产品多种多样,硬件环境有很大的不同,所以在把应用移植到嵌入式设备上时,我们还要根据嵌入式设备的特殊要求对这些设计好了的软件系统和应用进行修改,使得其能够匹配在功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。
嵌入式系统的种类繁多,由于篇幅有限,本文中只能选用ARM架构下的Linux嵌入式系统,作为嵌入式移植环境搭建的测试平台。
1 ARM架构的嵌入式Linux系统移植环境搭建
由于目前的市场中PC机的操作系统还是以WINDOWS系统为主,所以本文主要介绍如何在WINDOWS操作系统下利用虚拟机,来建立一个Linux开发环境。目前市场上的虚拟机软件也很多,在这里我们采用VMware-workstation虚拟机。首先把VMware-workstation软件包复制到PC机的WINDOWS系统中,并且进行安装,和普通的软件安装一样,只需要按照安装步骤的提示装完软件,直到桌面出现软件图标。
安装好虚拟机以后,再进行Linux操作系统的安装。Linux操作系统存在着许多不同的版本,如Ubuntu,Fedora等,但它们都使用了Linux内核。根据开发的需要,可以在虚拟机中选择安装一种版本或多个不同的版本的Linux操作系统,整个安装过程都是在虚拟机中完成的,当选定了一种版本的Linux操作系统后,我们首要做的事就是从网上下载相关的操作系统安装包,由于Linux操作系统是免费的,所以在网上是可以下载到各种版本的Linux操作系统安装包的,而且不会违反版权法。
准备好了Linux操作系统的安装包后,我们还是先把它放到PC机的WINDOWS操作系统的本地硬盘中,然后打开虚拟机软件,进入到虚拟机软件后,可看见图2,并选择Creat a New Virtual Machine。然后按照提示进行Linux操作系统的安装,安装的详细过程就不在这里描述了。
2搭建环境时的常见问题及解决方法
在安装Linux操作系统时,可能会碰到很多的问题使得装好后的系统无法启动,或者启动后看不见登录窗口等等一些问题。在这里我们对一些常见的问题进行解释,比如在安装Linux系统时,如果PC机的性能不够好的话,则不要选取虚拟机中的3D Display选项,因为毕竟虚拟机是搭载在WINDOWS操作系统之上的,如果选择这个3D选项,可能会影响虚拟机中的操作系统的运行速度。还有些版本的Linux系统(如Fedora 9),安装完成以后,启动时会卡死在启动界面,有两种方法可以解决这个问题,一是在系统启动时按任意键进入到启动选择界面(如图3),选择“e”键进入到选择命令行启动方式,在Kernel开始的命令行后面加入“acpi=off”的参数,就可以解决启动卡死的问题,另一种方法则是在安装Linux操作系统是,直接把这个参数加到Kernel命令行后。出现这种问题的原因主要是和PC机的ACPI相关设备发生了冲突,如果能判断出是哪一个设备冲突,还可以有更具体的参数设置,当然一般情况采用“acpi=off”就能解决所有的ACPI相关设备发生冲突的问题。另外当启动后看不见登录窗口的问题,则可能是在安装操作系统时显示分辨率没有选择正确造成的,这个可以移动虚拟机窗口边的滚动条,找到登录窗口,进入到系统中后对显示分辩率进行修改。
在进行嵌入式程序开发时,经常会用到WINDOWS系统中的文件,由于虚拟机里的Linux系统和WINDOWS系统的文件环境不一样,所以两个系统中的文件不能直接交换。为了能让两个系统中的文件可以共享,我们可以采用两种方式可以进行设置,一种是要在虚拟机中使用网络连接,另一种是安装VMware tools来解决。要在虚拟机中使用网络,最简单的方式是设置“Guest”为“Bridges”方式的网络连接,要访问Windows系统中共享文件,首先要在Windows中设置共享文件夹,在Fedora9 系统中打开“connect to server”,在 Service type 列表中选择Windows share,输入所要共享 Windows 主机的IP 地址和共享文件夹的名字。直接点“Connect”即可,就可以看到Windows 共享文件中的内容了,在此就可以像操作其他目录一样来使用它。另一种方法是安装VMware Tools实现目录共享, VMwareTools软件一般会在虚拟机软件中自带,但是不同的Linux操作系统可能会不匹配,比如安装过程会出现很多的错误提示,对于Fedora9系统,经过实际安装测试VMwareTools-8.4.2-261024版本能和VMware-workstation9完美结合,所以选这这个版本的VMwareTools安装包进行安装,用U盘把VMwareTools-8.4.2-261024.tar.gz文件拷贝到Fedora系统的tmp目录中,选择“应用程序”->“系统工具”-> “终端”。 打开终端后,在光标后输入cd /tmp,进入到tmp目录,输入ls VM后用TAB键可以直接显示出该目录中以VM开头的文件(在终端中,TAB键是一个很好使用的技巧)。看到VMwareTools文件后,输入tar xvzf VMwareTools-8.4.2-261024.tar.gz进行解压,解压完后输入cd /vmware-tools-distrib,进入到解压完后的目录,用 ./vmware-install.pl进行软件安装,安装过程用回车通过,知道要选择分辨率的时候,可以自己选择合适的屏幕分辨率,安装完成后输入reboot或选择系统中的关机来重启机器。这时可以选择虚拟机菜单中的“VM”->“Settings”,选择弹出的窗口中的Options,如图,按照步骤操作。完成后启动虚拟机,打开终端,就可以在Fedora里看到Windows下设置的共享目录了,(如图4输入命令,soft为WINDOWS系统下设立的共享目录)。
到此一个能完成嵌入式应用程序开发的Linux操作系统平台就搭建完成了,当然要实现最终的开发还需要设立交叉编译环境,对于这一部分将在其它的文章中论述。另外还要注意的是,在整个基于虚拟机的Linux操作系统平台搭建过程中,会碰到很多不同的问题,这些都需要针对不同的操作系统版本,不同的环境进行解决。
参考文献
[1] 韩存兵.构建嵌入式LINUX系统. 中国电力出版社,2004.
[2] 孙纪坤.嵌入式Linux系统开发技术详解.人民邮电,2006.
[3] 孟宪栋,孙富春,周纬杰.嵌入式Linux集成开发环境研究与实现.计算机系统应用,2004.05.
[4] 郭兵,熊光泽,陈宇.嵌入式应用软件开发环境的构造.计算机应用,2000.07.
关键词 Linux系统移植 虚拟机 ARM架构
中图分类号:TP3 文献标识码:A
0引言
美国著名的未来学家尼葛洛庞帝在1999 年访华时曾预言,4~5 年后嵌入式系统将是继PC和Internet之后最伟大的发明。这个预言已经成为现实, 现在任何一个普通人都拥有着各种使用嵌入式技术的电子产品,小到MP3,智能手机等数字化产品,大到智能家电,车载电子设备。在工业和服务行业中,嵌入式的运用就更加广泛。目前,世界各项嵌入式系统正处于高速发展阶段。嵌入式系统设备在应用数量上已经替代了传统的通用计算机,甚至远远超过了传统计算机。正是因为嵌入式的应用越来越广泛,基于嵌入式系统的应用开发需求也就越来越多。
嵌入式系统主体是以应用为中心,以计算机技术为基础的系统。但是和通用计算机系统有着很大的不同,其本质区别在于系统的应用不同。嵌入式系统(Embedded system),是一种“嵌入机械或电气系统内部、具有专属功能的计算机系统”,通常要求实时计算性能。被嵌入的系统通常是包含硬件和机械部件的完整设备。这个对象可能是庞大的机器,也可能是小巧的手持设备,用户在使用的时候并不会关心这个计算机系统的存在;通用计算机如个人计算机则设计灵活,以满足广大终端用户的需求。
嵌入式设备上使用的系统和应用软件,其本身是不能在设备上进行开发或修改的,必须在主机上开发或修改好后才能移植到嵌入式设备上去使用的。前面提到嵌入式产品多种多样,硬件环境有很大的不同,所以在把应用移植到嵌入式设备上时,我们还要根据嵌入式设备的特殊要求对这些设计好了的软件系统和应用进行修改,使得其能够匹配在功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。
嵌入式系统的种类繁多,由于篇幅有限,本文中只能选用ARM架构下的Linux嵌入式系统,作为嵌入式移植环境搭建的测试平台。
1 ARM架构的嵌入式Linux系统移植环境搭建
由于目前的市场中PC机的操作系统还是以WINDOWS系统为主,所以本文主要介绍如何在WINDOWS操作系统下利用虚拟机,来建立一个Linux开发环境。目前市场上的虚拟机软件也很多,在这里我们采用VMware-workstation虚拟机。首先把VMware-workstation软件包复制到PC机的WINDOWS系统中,并且进行安装,和普通的软件安装一样,只需要按照安装步骤的提示装完软件,直到桌面出现软件图标。
安装好虚拟机以后,再进行Linux操作系统的安装。Linux操作系统存在着许多不同的版本,如Ubuntu,Fedora等,但它们都使用了Linux内核。根据开发的需要,可以在虚拟机中选择安装一种版本或多个不同的版本的Linux操作系统,整个安装过程都是在虚拟机中完成的,当选定了一种版本的Linux操作系统后,我们首要做的事就是从网上下载相关的操作系统安装包,由于Linux操作系统是免费的,所以在网上是可以下载到各种版本的Linux操作系统安装包的,而且不会违反版权法。
准备好了Linux操作系统的安装包后,我们还是先把它放到PC机的WINDOWS操作系统的本地硬盘中,然后打开虚拟机软件,进入到虚拟机软件后,可看见图2,并选择Creat a New Virtual Machine。然后按照提示进行Linux操作系统的安装,安装的详细过程就不在这里描述了。
2搭建环境时的常见问题及解决方法
在安装Linux操作系统时,可能会碰到很多的问题使得装好后的系统无法启动,或者启动后看不见登录窗口等等一些问题。在这里我们对一些常见的问题进行解释,比如在安装Linux系统时,如果PC机的性能不够好的话,则不要选取虚拟机中的3D Display选项,因为毕竟虚拟机是搭载在WINDOWS操作系统之上的,如果选择这个3D选项,可能会影响虚拟机中的操作系统的运行速度。还有些版本的Linux系统(如Fedora 9),安装完成以后,启动时会卡死在启动界面,有两种方法可以解决这个问题,一是在系统启动时按任意键进入到启动选择界面(如图3),选择“e”键进入到选择命令行启动方式,在Kernel开始的命令行后面加入“acpi=off”的参数,就可以解决启动卡死的问题,另一种方法则是在安装Linux操作系统是,直接把这个参数加到Kernel命令行后。出现这种问题的原因主要是和PC机的ACPI相关设备发生了冲突,如果能判断出是哪一个设备冲突,还可以有更具体的参数设置,当然一般情况采用“acpi=off”就能解决所有的ACPI相关设备发生冲突的问题。另外当启动后看不见登录窗口的问题,则可能是在安装操作系统时显示分辨率没有选择正确造成的,这个可以移动虚拟机窗口边的滚动条,找到登录窗口,进入到系统中后对显示分辩率进行修改。
在进行嵌入式程序开发时,经常会用到WINDOWS系统中的文件,由于虚拟机里的Linux系统和WINDOWS系统的文件环境不一样,所以两个系统中的文件不能直接交换。为了能让两个系统中的文件可以共享,我们可以采用两种方式可以进行设置,一种是要在虚拟机中使用网络连接,另一种是安装VMware tools来解决。要在虚拟机中使用网络,最简单的方式是设置“Guest”为“Bridges”方式的网络连接,要访问Windows系统中共享文件,首先要在Windows中设置共享文件夹,在Fedora9 系统中打开“connect to server”,在 Service type 列表中选择Windows share,输入所要共享 Windows 主机的IP 地址和共享文件夹的名字。直接点“Connect”即可,就可以看到Windows 共享文件中的内容了,在此就可以像操作其他目录一样来使用它。另一种方法是安装VMware Tools实现目录共享, VMwareTools软件一般会在虚拟机软件中自带,但是不同的Linux操作系统可能会不匹配,比如安装过程会出现很多的错误提示,对于Fedora9系统,经过实际安装测试VMwareTools-8.4.2-261024版本能和VMware-workstation9完美结合,所以选这这个版本的VMwareTools安装包进行安装,用U盘把VMwareTools-8.4.2-261024.tar.gz文件拷贝到Fedora系统的tmp目录中,选择“应用程序”->“系统工具”-> “终端”。 打开终端后,在光标后输入cd /tmp,进入到tmp目录,输入ls VM后用TAB键可以直接显示出该目录中以VM开头的文件(在终端中,TAB键是一个很好使用的技巧)。看到VMwareTools文件后,输入tar xvzf VMwareTools-8.4.2-261024.tar.gz进行解压,解压完后输入cd /vmware-tools-distrib,进入到解压完后的目录,用 ./vmware-install.pl进行软件安装,安装过程用回车通过,知道要选择分辨率的时候,可以自己选择合适的屏幕分辨率,安装完成后输入reboot或选择系统中的关机来重启机器。这时可以选择虚拟机菜单中的“VM”->“Settings”,选择弹出的窗口中的Options,如图,按照步骤操作。完成后启动虚拟机,打开终端,就可以在Fedora里看到Windows下设置的共享目录了,(如图4输入命令,soft为WINDOWS系统下设立的共享目录)。
到此一个能完成嵌入式应用程序开发的Linux操作系统平台就搭建完成了,当然要实现最终的开发还需要设立交叉编译环境,对于这一部分将在其它的文章中论述。另外还要注意的是,在整个基于虚拟机的Linux操作系统平台搭建过程中,会碰到很多不同的问题,这些都需要针对不同的操作系统版本,不同的环境进行解决。
参考文献
[1] 韩存兵.构建嵌入式LINUX系统. 中国电力出版社,2004.
[2] 孙纪坤.嵌入式Linux系统开发技术详解.人民邮电,2006.
[3] 孟宪栋,孙富春,周纬杰.嵌入式Linux集成开发环境研究与实现.计算机系统应用,2004.05.
[4] 郭兵,熊光泽,陈宇.嵌入式应用软件开发环境的构造.计算机应用,2000.07.