Windows+VirtualBox的嵌入式Linux開發環境的搭建
最近一直在學習Linux的設備驅動編寫,一直是在物理機上安裝的Ubuntu進行的,但是在Ubuntu12.04的系統中,已經不能用以前的閱讀源碼的工具KScopse軟件了,閱讀源碼不方便,Linux驅動開發會用到Linux的很多頭文件,源碼樹,查看很不易,同時。linux下的vim編寫代碼的速度比windows下的notepad++要慢,個人感覺的。但是代碼編譯必須使用Linux系統,於是就想出了在虛擬機中搭建服務器,在windows中使用Source Insight編碼,寫完后拿到服務器編譯,在服務器上開啟nfs文件系統,開發板掛載nfs文件系統。網上很多開發環境都是用VMware建立的,我在VirtualBox中設置了很多次都失敗了,最后翻看了很多資料,建立了基於VirtualBox的開發環境。不過很希望讀者能先熟悉Linux物理機上的環境搭建與操作,最后轉到Windows下開發,這樣對學習更有利,筆者的環境是:
主機:windows8
虛擬機軟件:VirtualBox4.3.0,開源軟件,Oracle官網上有下載。
虛擬機系統:中文Ubuntu12.04 桌面版
配套需要的軟件:Secure CRT,cuteFTP
下面介紹過程:
第一步:首先在Windows上安裝VirtualBox虛擬機,這款虛擬機是Oracle公司的開源軟件。免費小巧,使用方便。安裝過程中當詢問網卡驅動時,需要注意要安裝Host-Only適配器驅動以便接下來可以使用Host-Only網絡連接。
第二步:配置虛擬機,VirtualBox和VMware差不多,略有區別,新建一台虛擬電腦,注意設置虛擬電腦的網絡時將網卡配置為NAT地址轉換,以便使用主機網絡,這時主機需要聯網。在虛擬電腦中安裝Ubuntu系統,這里默認為讀者會簡單的使用Linux系統,並會在虛擬機中安裝Linux,這些內榮百度到處都有,不過既然准備從事Linux嵌入式開發,必須會使用Linux系統,這是前提。
第三步:進入虛擬機的Ubuntu,安裝ftp服務,以便在Windows中使用cuteFTP與虛擬機交互文件,使用sudo apt-get install vsftpd,安裝完后,打開/etc/vsftpd.conf文件,去掉local_enable = YES和write_enable = YES前面的#號,重啟ftp服務,sudo /etc/init.d/vsftpd restart,接着安裝SSH服務,sudo apt-get install openssh-server,使用默認配置就好了,安裝nfs服務,sudo apt-get install nfs-kernel-server portmap,打開/etc/exports文件,修改配置文件,添加nfs文件共享目錄,比如我的目錄是:/home/wangzx/nfs_root,則添加:/home/wangzx/nfs_root *(rw,sync,no_root_squash),然后重啟nfs服務,sudo /etc/init.d/nfs-kernel-server restart,至此,虛擬機中的Ubuntu的網絡配置環境已經完成,如果有其他需要的軟件,自行安裝,接下來虛擬機不再需要主機的外網了。
第四步:關閉虛擬機,重設網絡,打開網卡1,配置如圖
該網卡以后為了開發板能掛接虛擬機中的網絡文件系統nfs。
打開網卡2,配置如圖:
這張網卡,將會完成虛擬機與物理機的交互,在這里提一個知識點,為什么使用兩張網卡,因為橋接網卡,是指將虛擬機的網卡和物理機的網卡處於同一網段,組成局域網,這樣就可以讓物理機和虛擬機通信並和開發板組網,但是橋接網卡的前提條件是,主機連網線並且已經建立了網絡連接,因此在開發板和主機尚未建立網絡連接時,虛擬機和物理機是不能進行網絡交互的,為了讓物理機和虛擬機在任何時刻都能文件交互,所以添加第二張網卡,使用Host-Only網卡,在你的網絡共享中心中:
這個網卡的IP地址被默認為192.168.56.1, 我們使用默認設置,而虛擬機如果開了這個網卡,則Ubuntu的該網卡的IP默認設置為192.168.56.101,
這些可以修改,在虛擬機配置網卡時修改,這里使用默認,打開虛擬機,我們ping一下192.168.56.1,
同樣,windows下也能ping虛擬機。
第五步:在windows中安裝cuteFTP,自己百度安裝,然后打開軟件,
輸入主機IP,登錄名,密碼,點連接按鈕,則建立了FTP連接,這樣就可以使用鼠標拖動文件進行上傳和下載,我們就使用這種方式在windows中編寫代碼,拖到虛擬機服務器中編譯。完了也可以拖回windows。
第六步:安裝SecureCRT軟件,新建一個SSH2連接:
完成后連接,則登陸上了服務器,
這樣就可以在終端中操作服務器。
第六步:開nfs服務,並使用開發板測試,將本地網卡的IP設置為和你的開發板虛擬機一個網段,我的開發板IP為192.168.2.100,所以將windows的IP設置為192.168.2.*,虛擬機中橋接的那張網卡一樣設置,注意不是Host-Only的那張,那張不要動。
這樣就配置好了第二張網卡,環境搭建好了,接下來測試。
打開開發板,接上網線和串口線,使用SecureCRT打開一個串口,啟動開發板,然后將內核鏡像文件拷貝到你的共享目錄,記得將共享目錄設置為777,使用chmod 777 共享目錄 -R,然后打開/etc/hosts文件,添加一行,“開發板IP nfs服務器目錄”比如我的是:192.168.2.100 /home/wangzx/nfs_root/這樣就好了,然后就可以使用開發板u-boot的nfs下載內核了,
下載成功,啟動內核:
最后nfs根文件系統掛載成功,這樣完整的開發環境搭建完成了。我們可以在windows中編寫代碼,也可以使用source insight查看代碼,編寫完后上傳到服務器編譯,掛載網絡文件系統,操作服務器使用終端,這樣一切操作都簡單了,學習什么的就更方便了。
原創聲明:本文屬原創,轉載請注明出處
冰雪王爵.obj
2014年2月3日