摘 要:随着后PC时代的到来,嵌入式系统越来越流行,社会对掌握嵌入式开发相关技术的人员需求越来越大,而嵌入式技术初学者面临较多需要解决的难题,本文旨在帮助嵌入式Linux开发人员解决在搭建嵌入式开发环境过程中Linux与windows资源共享的问题。
关键词:嵌入式;Linux;虚拟机;共享
中图分类号:TP273 文献标识码:A
Abstract:With the arrival of PC era,the embedded system is more and more popular,people demand more and grasp of embedded development technology society is greater,and beginners embedded technology face more difficulties to solve,this thesis aims to help the embedded Linux development personnel to solve shared Linux and windows resources in the building of embedded development environment problems in the process of.
Keywords:embedded;linux;virtual machine;sharing
1 引言(Introduction)
随着计算机技术的迅速发展,基于嵌入式应用逐渐超过了传统的基于PC机开发,又由于Linux操作系统的巨大优越性,越来越多的嵌入式系统都是基于Linux,包括Android系统。因而基于ARM的硬件,基于Linux的软件变得越来越流行,由于嵌入式Linux开发通常是在交叉编译的环境中进行,而宿主机中往往安装的是windows系统,目标机运行的又是Linux系统,所以需要在Linux环境下进行配置和交叉编译[1],目前Linux系统在PC领域做的还不够完善,使用起来不如windows那么方便,如编辑文档或源代码,一般的做法是在windows里面编辑文档和源代码,然后在Linux下利用交叉编译工具进行编译,编译完后生成目标代码,在windows下用超级终端或者USB或者网口下载到目标嵌入式开发板上运行,这就涉及到三个系统,一个windows宿主机,一个Linux开发环境,一个目标嵌入式Linux系统,通常是采用一台PC,安装windows系统,windows系统中安装一个vmware虚拟机,在虚拟机下安装一个Linux系统建立Linux开发环境。这就涉及到我们本文重点讨论的问题,刚开始学习嵌入式开发的人员,往往会遇到这样一个问题,即Linux系统与windows系统间文件的共享[2]。
2 实现共享(Sharing)
实现Linux与windows间文件的共享方法较多,如tftp、nfs、smb、vmware tools等,比较起来前三种方法都需要设置两个系统的IP地址,需要在同一个网段,需要建立服务,操作起来比较麻烦,可能还会影响到PC本身的网络等资源问题,而vmware tools这种方法则方便快捷,可靠好用,不会影响系统资源,所以本人建议采用这种方式,下面我详细讲述如何利用vmware tools来实现Linux与windows之间的文件共享。
(1)安装vmware虚拟机,版本5以上基本都可以,网上很方便就能下载,安装虚拟机方法较为简单,有些可能需要系列号,默认安装就可以。
(2)安装需要的Linux发行版本,可以是专业版enterprise系列或fedora系列或Ubuntu系列,需要注意的是内核版本符合开发要求即可,自己习惯使用的版本较好,新建一个虚拟机,做相应的配置,选择符合要求的Linux版本,导入ISO镜像文件,开始安装,选择安装的提示语言为简体中文,然后按照提示一步步向下安装,需特别注意的有以下两点:一是需要定制软件包,默认安装只有办公软件,软件开发需要特别加上,建议凡是与软件开发相关的都勾选上;二是安装接近尾声的时候要关闭防火墙与SElinux。
(3)Linux系统安装好后,开始安装vmware tools了,在虚拟机中安装过程如下:
方法一:tar包的安装
点击VM-Install VMware Tools在桌面上出现一张光盘包含三个文件,其中有一个是Vmware-tools-版本号.tar.gz
a.将Vmware-tools-版本号.tar.gz拷贝至tmp目录下,命令:cp Vmware-tools-版本号.tar.gz/tmp
b.切换至tmp目录,命令:cd /tmp
c.解压Vmware-tools-版本号.tar.gz文件,命令:tar –zxvf Vmware-tools-版本号.tar.gz
d.查看tmp目录下所拥有的文件,命令:Ls
e.将目录切换至vmware-tools-distrib,运行的命令如下:cd vmware-tools-distrib,回车
f.执行vmware-intall.pl脚本文件,运行的命令如下:./vmware-install.pl,回车
之后一直回车,有YES敲YES,没有YES敲回车,出现选择屏幕分辨率输入数字2 (800*600),再运行一下vmware-tools-distrib目录下的bin目录下的脚本文件,命令为:cd /tmp/vmware-tools-distrib/bin./vmware-config-install.pl,运行方法与运行vmware-intall.pl脚本相同,重启系统reboot。endprint
方法二:RPM包的安装
点击VM-Install VMware Tools在桌面上出现一张光盘包含3个文件,分别为manifest.txt;Vmware-tools-版本号.rpm和Vmware-tools-版本号.tar.gz
a.将Vmware-tools-版本号.rpm拷贝至tmp目录下
cp Vmware-tools-版本号.rpm/tmp
b.切换至tmp目录 cd /tmp
rpm -ivh Vmware-tools-版本号.rpm
然后按提示设置分辨率为800*600
然后ctrl+alt+backspace 重启桌面
(4)共享的设置,步骤如下:
然后切换到windows系统的桌面,按照如下步骤操作,首先选中vmwareworkstation虚拟机软件菜单中的VM菜单,然后单击Settings,单击Options,单击Shared Folders,选中Properties,然后点击弹出的对话框右下的“add”按钮,就会出现设置向导的欢迎界面,接着点击NEXT按钮,添加共享文件夹界面,在文本框“name”选项卡中输入一个名字作为共享目录名,在这里填写的目录名以后会在宿主机安装的linux操作系统中显示出同样的共享目录名,假设为share_temp;在“hostfolder”中填入宿主机中windows系统想要共享出来的目录的详细路径,这里也可以在windows中新建一个文件夹作为共享目录,然后点击浏览按钮选中指向所要共享的目录,假设为F:\share,然后点击“下一步”,进入共享的方式选择界面,Enable this share是指这个共享长期有效,目录可读可写;Read-only方式是指这个共享长期有效,但是目录只读。一般情况下选择Enable this share,然后点击“完成”,linux系统下的mnt会多出一个hgfs文件夹,里面就是我们设置的共享文件夹的内容了,shared folder目录的使用,切换到宿主机的linux系统,依次执行如下命令:cd /mnt/hgfs,ls,可以看到share的目录, 此目录就是建好的共享目录,并且可以用cp等指令实现windows到linux,linux到windows的读写操作了,两个系统可以实现同步,在vmware软件里添加一个sharedfolder或对sharedfolder的参数进行修改是能够立刻生效的,也就是说可以立刻在宿主机的linux系统中看到新加的共享目录和体验到相应参数的改变。需要注意的是,不可以同时使用多个应用程序来打开一个文件。也就是说,不能同时用windows的一个应用程序和Linux中的另外一个应用程序打开同一个文件。有的时候,同时打开一个文件将会导致文件中的数据被破坏。另外,初级用户大多是使用ftp,samba或者是nfs来实现文件的共享,在windows上装microsoft service for Linux软件即可实现nfs功能,采用vmware自带的共享工具的方式比使用网络协议实现文件共享要方便很多,并且对于新手来说,用cp命令拷贝文件比用ftp和smbmount命令也要简单得多,便于新手使用[3]。
虚拟机共享设置好后,就可以很方便在windows系统下修改和编写嵌入式ARM的配置文件、Linux系统的配置文件与相关代码,Bootloader的代码、应用程序源码、驱动程序等,文件编写好后,通过以上介绍的共享通道,在Linux交叉编译环境下进行编译,生成目标代码,然后通过串口、USB口或者网口下载到目标板上运行,每次虚拟机使用完毕,将虚拟机挂起即可,下次启动就会很快启动Linux系统。需要注意的是,如果在VM->settings->options->shared folder设置成了disable,也就是选中了disable,共享功能将被禁用,如果系统是被挂起的,disable前那个“√”变成灰色,不可以选定,需要单击虚拟机的poweroff按钮后方可去掉此“√”,共享功能才正常。
3 结论(Conclusion)
以上给大家介绍了一种简单易行的实现Linux与windows之间文件共享的方法,对刚开始学习嵌入式系统开发的人员希望能有所帮助,不足之处难免,敬请批评指正。
参考文献(References)
[1] 张积红,吴强.嵌入式Linux研究及其在ARM上的移植[J].电脑知识与技术,2005(08):45-48.
[2] 聂和平.基于ARM9的嵌入式Linux系统移植与驱动开发[D].南京邮电大学,2013.
[3] 王彦堂.基于ARM的嵌入式Linux系统研究与应用[D].山东大学,2007.
作者简介:
周小仨(1980-),男,学士,讲师.研究领域:嵌入式技术开发.endprint