摘 要:隨著后PC時(shí)代的到來,嵌入式系統(tǒng)越來越流行,社會(huì)對(duì)掌握嵌入式開發(fā)相關(guān)技術(shù)的人員需求越來越大,而嵌入式技術(shù)初學(xué)者面臨較多需要解決的難題,本文旨在幫助嵌入式Linux開發(fā)人員解決在搭建嵌入式開發(fā)環(huán)境過程中Linux與windows資源共享的問題。
關(guān)鍵詞:嵌入式;Linux;虛擬機(jī);共享
中圖分類號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼: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)
隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,基于嵌入式應(yīng)用逐漸超過了傳統(tǒng)的基于PC機(jī)開發(fā),又由于Linux操作系統(tǒng)的巨大優(yōu)越性,越來越多的嵌入式系統(tǒng)都是基于Linux,包括Android系統(tǒng)。因而基于ARM的硬件,基于Linux的軟件變得越來越流行,由于嵌入式Linux開發(fā)通常是在交叉編譯的環(huán)境中進(jìn)行,而宿主機(jī)中往往安裝的是windows系統(tǒng),目標(biāo)機(jī)運(yùn)行的又是Linux系統(tǒng),所以需要在Linux環(huán)境下進(jìn)行配置和交叉編譯[1],目前Linux系統(tǒng)在PC領(lǐng)域做的還不夠完善,使用起來不如windows那么方便,如編輯文檔或源代碼,一般的做法是在windows里面編輯文檔和源代碼,然后在Linux下利用交叉編譯工具進(jìn)行編譯,編譯完后生成目標(biāo)代碼,在windows下用超級(jí)終端或者USB或者網(wǎng)口下載到目標(biāo)嵌入式開發(fā)板上運(yùn)行,這就涉及到三個(gè)系統(tǒng),一個(gè)windows宿主機(jī),一個(gè)Linux開發(fā)環(huán)境,一個(gè)目標(biāo)嵌入式Linux系統(tǒng),通常是采用一臺(tái)PC,安裝windows系統(tǒng),windows系統(tǒng)中安裝一個(gè)vmware虛擬機(jī),在虛擬機(jī)下安裝一個(gè)Linux系統(tǒng)建立Linux開發(fā)環(huán)境。這就涉及到我們本文重點(diǎn)討論的問題,剛開始學(xué)習(xí)嵌入式開發(fā)的人員,往往會(huì)遇到這樣一個(gè)問題,即Linux系統(tǒng)與windows系統(tǒng)間文件的共享[2]。
2 實(shí)現(xiàn)共享(Sharing)
實(shí)現(xiàn)Linux與windows間文件的共享方法較多,如tftp、nfs、smb、vmware tools等,比較起來前三種方法都需要設(shè)置兩個(gè)系統(tǒng)的IP地址,需要在同一個(gè)網(wǎng)段,需要建立服務(wù),操作起來比較麻煩,可能還會(huì)影響到PC本身的網(wǎng)絡(luò)等資源問題,而vmware tools這種方法則方便快捷,可靠好用,不會(huì)影響系統(tǒng)資源,所以本人建議采用這種方式,下面我詳細(xì)講述如何利用vmware tools來實(shí)現(xiàn)Linux與windows之間的文件共享。
(1)安裝vmware虛擬機(jī),版本5以上基本都可以,網(wǎng)上很方便就能下載,安裝虛擬機(jī)方法較為簡單,有些可能需要系列號(hào),默認(rèn)安裝就可以。
(2)安裝需要的Linux發(fā)行版本,可以是專業(yè)版enterprise系列或fedora系列或Ubuntu系列,需要注意的是內(nèi)核版本符合開發(fā)要求即可,自己習(xí)慣使用的版本較好,新建一個(gè)虛擬機(jī),做相應(yīng)的配置,選擇符合要求的Linux版本,導(dǎo)入ISO鏡像文件,開始安裝,選擇安裝的提示語言為簡體中文,然后按照提示一步步向下安裝,需特別注意的有以下兩點(diǎn):一是需要定制軟件包,默認(rèn)安裝只有辦公軟件,軟件開發(fā)需要特別加上,建議凡是與軟件開發(fā)相關(guān)的都勾選上;二是安裝接近尾聲的時(shí)候要關(guān)閉防火墻與SElinux。
(3)Linux系統(tǒng)安裝好后,開始安裝vmware tools了,在虛擬機(jī)中安裝過程如下:
方法一:tar包的安裝
點(diǎn)擊VM-Install VMware Tools在桌面上出現(xiàn)一張光盤包含三個(gè)文件,其中有一個(gè)是Vmware-tools-版本號(hào).tar.gz
a.將Vmware-tools-版本號(hào).tar.gz拷貝至tmp目錄下,命令:cp Vmware-tools-版本號(hào).tar.gz/tmp
b.切換至tmp目錄,命令:cd /tmp
c.解壓Vmware-tools-版本號(hào).tar.gz文件,命令:tar –zxvf Vmware-tools-版本號(hào).tar.gz
d.查看tmp目錄下所擁有的文件,命令:Ls
e.將目錄切換至vmware-tools-distrib,運(yùn)行的命令如下:cd vmware-tools-distrib,回車
f.執(zhí)行vmware-intall.pl腳本文件,運(yùn)行的命令如下:./vmware-install.pl,回車
之后一直回車,有YES敲YES,沒有YES敲回車,出現(xiàn)選擇屏幕分辨率輸入數(shù)字2 (800*600),再運(yùn)行一下vmware-tools-distrib目錄下的bin目錄下的腳本文件,命令為:cd /tmp/vmware-tools-distrib/bin./vmware-config-install.pl,運(yùn)行方法與運(yùn)行vmware-intall.pl腳本相同,重啟系統(tǒng)reboot。endprint
方法二:RPM包的安裝
點(diǎn)擊VM-Install VMware Tools在桌面上出現(xiàn)一張光盤包含3個(gè)文件,分別為manifest.txt;Vmware-tools-版本號(hào).rpm和Vmware-tools-版本號(hào).tar.gz
a.將Vmware-tools-版本號(hào).rpm拷貝至tmp目錄下
cp Vmware-tools-版本號(hào).rpm/tmp
b.切換至tmp目錄 cd /tmp
rpm -ivh Vmware-tools-版本號(hào).rpm
然后按提示設(shè)置分辨率為800*600
然后ctrl+alt+backspace 重啟桌面
(4)共享的設(shè)置,步驟如下:
然后切換到windows系統(tǒng)的桌面,按照如下步驟操作,首先選中vmwareworkstation虛擬機(jī)軟件菜單中的VM菜單,然后單擊Settings,單擊Options,單擊Shared Folders,選中Properties,然后點(diǎn)擊彈出的對(duì)話框右下的“add”按鈕,就會(huì)出現(xiàn)設(shè)置向?qū)У臍g迎界面,接著點(diǎn)擊NEXT按鈕,添加共享文件夾界面,在文本框“name”選項(xiàng)卡中輸入一個(gè)名字作為共享目錄名,在這里填寫的目錄名以后會(huì)在宿主機(jī)安裝的linux操作系統(tǒng)中顯示出同樣的共享目錄名,假設(shè)為share_temp;在“hostfolder”中填入宿主機(jī)中windows系統(tǒng)想要共享出來的目錄的詳細(xì)路徑,這里也可以在windows中新建一個(gè)文件夾作為共享目錄,然后點(diǎn)擊瀏覽按鈕選中指向所要共享的目錄,假設(shè)為F:\share,然后點(diǎn)擊“下一步”,進(jìn)入共享的方式選擇界面,Enable this share是指這個(gè)共享長期有效,目錄可讀可寫;Read-only方式是指這個(gè)共享長期有效,但是目錄只讀。一般情況下選擇Enable this share,然后點(diǎn)擊“完成”,linux系統(tǒng)下的mnt會(huì)多出一個(gè)hgfs文件夾,里面就是我們?cè)O(shè)置的共享文件夾的內(nèi)容了,shared folder目錄的使用,切換到宿主機(jī)的linux系統(tǒng),依次執(zhí)行如下命令:cd /mnt/hgfs,ls,可以看到share的目錄, 此目錄就是建好的共享目錄,并且可以用cp等指令實(shí)現(xiàn)windows到linux,linux到windows的讀寫操作了,兩個(gè)系統(tǒng)可以實(shí)現(xiàn)同步,在vmware軟件里添加一個(gè)sharedfolder或?qū)haredfolder的參數(shù)進(jìn)行修改是能夠立刻生效的,也就是說可以立刻在宿主機(jī)的linux系統(tǒng)中看到新加的共享目錄和體驗(yàn)到相應(yīng)參數(shù)的改變。需要注意的是,不可以同時(shí)使用多個(gè)應(yīng)用程序來打開一個(gè)文件。也就是說,不能同時(shí)用windows的一個(gè)應(yīng)用程序和Linux中的另外一個(gè)應(yīng)用程序打開同一個(gè)文件。有的時(shí)候,同時(shí)打開一個(gè)文件將會(huì)導(dǎo)致文件中的數(shù)據(jù)被破壞。另外,初級(jí)用戶大多是使用ftp,samba或者是nfs來實(shí)現(xiàn)文件的共享,在windows上裝microsoft service for Linux軟件即可實(shí)現(xiàn)nfs功能,采用vmware自帶的共享工具的方式比使用網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)文件共享要方便很多,并且對(duì)于新手來說,用cp命令拷貝文件比用ftp和smbmount命令也要簡單得多,便于新手使用[3]。
虛擬機(jī)共享設(shè)置好后,就可以很方便在windows系統(tǒng)下修改和編寫嵌入式ARM的配置文件、Linux系統(tǒng)的配置文件與相關(guān)代碼,Bootloader的代碼、應(yīng)用程序源碼、驅(qū)動(dòng)程序等,文件編寫好后,通過以上介紹的共享通道,在Linux交叉編譯環(huán)境下進(jìn)行編譯,生成目標(biāo)代碼,然后通過串口、USB口或者網(wǎng)口下載到目標(biāo)板上運(yùn)行,每次虛擬機(jī)使用完畢,將虛擬機(jī)掛起即可,下次啟動(dòng)就會(huì)很快啟動(dòng)Linux系統(tǒng)。需要注意的是,如果在VM->settings->options->shared folder設(shè)置成了disable,也就是選中了disable,共享功能將被禁用,如果系統(tǒng)是被掛起的,disable前那個(gè)“√”變成灰色,不可以選定,需要單擊虛擬機(jī)的poweroff按鈕后方可去掉此“√”,共享功能才正常。
3 結(jié)論(Conclusion)
以上給大家介紹了一種簡單易行的實(shí)現(xiàn)Linux與windows之間文件共享的方法,對(duì)剛開始學(xué)習(xí)嵌入式系統(tǒng)開發(fā)的人員希望能有所幫助,不足之處難免,敬請(qǐng)批評(píng)指正。
參考文獻(xiàn)(References)
[1] 張積紅,吳強(qiáng).嵌入式Linux研究及其在ARM上的移植[J].電腦知識(shí)與技術(shù),2005(08):45-48.
[2] 聶和平.基于ARM9的嵌入式Linux系統(tǒng)移植與驅(qū)動(dòng)開發(fā)[D].南京郵電大學(xué),2013.
[3] 王彥堂.基于ARM的嵌入式Linux系統(tǒng)研究與應(yīng)用[D].山東大學(xué),2007.
作者簡介:
周小仨(1980-),男,學(xué)士,講師.研究領(lǐng)域:嵌入式技術(shù)開發(fā).endprint