基於虛擬機的網絡文件系統的掛載

一、硬件平臺

1.電腦

臺式機、筆記本或一體機

2.開發板

JZ2440MINI2440TQ2440

3.網線

建議使用交叉網線,即買開發板的時候送的網線,以便數據能夠正常的相互傳輸,也可以自己製作一條。當然,在用路由器和開發板相連時,可以使用直連線;如果是電腦和開發板相連,則必須用交叉線。

4.路由器
其實也可以不用路由器,直接將電腦和開發板用交叉網線相連,但是那樣就不能上網了,傳資料不太方便,所以建議配一個路由器。

5.mimiOTG線或者串口線(買開發板時自帶的)


二、軟件平臺

1.主機 windows 7 或者windows XP均可

2.客機 Vmware下的Linux,如ubunturedhat


三、主機和客機實現雙機互Ping

1.主機聯網設置

a.使用路由器,讓電腦可以正常上網。這點,無需多少,否則,也不會看到這篇文檔。注意,聯網設置好了之後,在本地連接中,選擇手動設置IP,如192.168.1.11,其他的會正常產生,如下圖:


在命令提示符中,輸入ipconfig,會顯示本機的IP改爲了192.168.1.11,如下圖:

b. 關閉電腦上的防護牆。至於怎麼關閉,自己上百度。(提示:到控制面板上面查找)

2.虛擬機Vmware設置

在虛擬機的ubuntu中,選擇橋接(也可以選擇NET模式,不過不太方便,這裏只介紹橋接bridge模式),虛擬機中的選擇:編輯à虛擬網絡設置à選擇“Host Virtual Network Mapping”,在VMnet0中選擇自己電腦對應的網卡,不要選擇自動獲取,即“Bridge to an automatically chosen adapter”,否則,互ping失敗。具體設置如下圖:

3.客機ubuntu聯網設置

ubuntu的命令終端中,輸入ifconfig查看系統的IP,看是否與主機windows下的IP處於同一網段(同一網段是指網絡號相同的一系列IP地址,對於此時主機IP192.168.1.11,因爲是一個C類地址,故我們只需要設置客機IP192.168.1.***即可,***1255之間,不爲11),我們設置爲192.168.1.108,可以使用命令或者圖形化界面配置,至於怎麼配置,大家上百度很簡單就搜到了。

設置好了之後,可以用ifconfig命令進行查看自己的IP,如下圖:

4.雙機互Ping

設置好了主機和客機的IP及其相關聯網配置之後,就可以實現雙機互Ping了。在windows的命令提示符下輸入ping + 客機IP ping 192.168.1.108 ,如果出現下圖所示的現象,則說明ping成功,否則失敗。

Linux的命令終端下輸入Ping + 主機IP,即ping 192.168.1.11,如果出現下圖所示,則說明ping 成功,否則失敗。


四、客機配置

爲了實現文件能正確的上傳,我們還得在客機ubuntu中開啓並配置一些相關的服務。

1.安裝、配置、啓動FTP服務

執行下列命令,安裝後即會自動運行:

sudo apt-get install vsftpd

修改vsftpd的配置文件/etc/vsftpd.conf,將下面幾行前面的“#”去掉。

#local_enable=YES//表示允許本地用戶登錄

#write_enable=YES //表示允許上傳文件

修改完畢之後,執行以下命令重啓FTP服務:

sudo/etc/init.d/vsftpdrestart

2.安裝、配置、啓動ssh服務

執行下列命令,安裝後即會自動運行:

sudo apt-get install openssh-server

使用默認配置即可。

3.安裝、配置、啓動NFS服務

執行下列命令,安裝後即會自動運行:

sudo apt-get install nfs-kernel-serverportmap

其配置文件爲/etc/exports,在裏面增加以下內容,以後通過網絡文件系統訪問/work/nfs_root/first_fs目錄。

/work/nfs_root/first_fs *(rw,sync,no_root_squash) 如下圖:

修改完畢之後執行以下命令重啓NFS服務:

sudo /etc/init.d/nfs-kernel-server restart

以上三個服務使用apt-get安裝之後已經啓動,並且以後每次都會開機啓動。如果想取消,則可以在Linux的啓動菜單執行“System”->“系統管理”->“網絡命令,在對話框中取消。

五、開發板配置

1.確保開發板的內核中帶有網卡驅動,而且可以正常使用。注意,這點尤爲重要。在這個上面,我花了很長時間,要不是有羣裏面的兄弟和韋老大的幫忙,估計現在我還在弄那個什麼網絡文件系統。如果你的內核中沒有網卡驅動,則會出現,在u-boot下可以ping通客機,但是到了文件系統階段,就ping不通了,就會一直卡在那兒不動,如圖:

2.設置u-bootIP地址即serverip,並進行Ping客機的IP

u-boot下輸入print命令,查看u-bootipserver,將ip設置爲同一網段,這裏設置爲192.168.1.110,將serverip設置爲客機的ip,即192.168.1.108,執行下列命令完成:

setipaddr192.168.1.110

setserverip192.168.1.108

save

然後,在u-bootping 客機和主機,如ping主機windows有:

Ping 客機ubuntu有:

至此,開發板,主機,客機三機可以通信了。但是注意(以下語句,來自韋老師聊天記錄)

如果windows有多網卡,那麼這些網卡的IP的網段一定不能相同。

vmware用橋接的話,把windows網絡連接裏的vmnet1,vmnet8禁止掉

請確定你選用哪一個網卡來連接開發板,選擇的網卡、VMWARE LINUXIP、開發板IP,三者設爲同一網段。

VMWAER裏,選擇上述所選的網卡用作橋接。方法如下:

vmwareEdit菜單->Virtual Network Editor->Host Virtual NetworkMapping->VMnet0, 在此選擇網卡。不要選擇Bridge to an automatically chosen adapter, 一定要選中某個網卡。

windows裏,你選用的網卡"如果是斷開狀態"的話,是無法PING通的如果開發板正在運行UBOOT,它是在使用網絡命令的時候才使能網卡,其他時候是不使能網卡的。這意味着在UBOOT階段沒有使用網絡命令時,即使你已經接了網線,但是windows的網卡仍然是斷開狀態。要想解決這個問題。

建議使用一個HUB或路由器,讓PC、開發板的網線都接到HUB或路由器上去。UBOOT是不迴應PING包的,這意味着開發板運行UBOOT時,它可以PING通別人,但是別人PING不通開發板。

3.PC機上測試下是否可以自已掛接自已:

4.單板掛接

在單板上創建一個掛接目錄,再掛接。這樣在服務器上改變那個目錄下的文件時,單板上掛接的這個目錄裏也會改變。

這種方法是開發板啓動之後去掛載的。

直接讓開發板從 nfs 啓動。修改命令行參數。

要求:

服務IP、目錄。

開發板IP

linux內核的Documention\nfsroot.txt中有說明用法。

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>noinitrdroot=/dev/nfsnfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>


[<server-ip>:] 服務器IP

<root-dir> 服務器上哪個目錄設置成被單板掛載。

[,<nfs-options>] 用中括號表示的參數可以省略。尖括號的不可省略。

<client-ip> 表示單板的IP

<server-ip> 服務器IP

<gw-ip> 網關,單板和服務器同一網段。

<netmask> 子網掩碼

<hostname> 不關心這個,不要。

<device> 網卡,如 eth0\eth1

<autoconf> 自動配置,這個不需要。寫成 off

u-boot下執行以下命令:

set bootargs=noinitrd root=/dev/nfsnfsroot=192.168.1.108:/work/nfs_root/first_fsip=192.168.1.110:192.168.1.108:192.168.1.1:255.255.255.0::eth0:offinit=/linuxrc console=ttySAC0

設置後重啓單板。

在文件系統下ping客機ubuntu,測試可不可以ping通:

ping 192.168.1.108,則出現:

說明可以ping通。然後重啓單板,在文件系統下,執行ls命令,就會看到客機ubuntu上面的/work/nfs_root/first_fs裏面的文件了,如下圖:


至此,網絡文件系統掛在成功。


六、聲明

以上資料,來源於自己的學習總結和韋老大及羣裏面的兄弟的幫助。在這裏,謝謝你們,如果沒有你們最真摯,最耐心的幫助,我想,我早就放棄了。嵌入式的學習有時候很枯燥,希望大家可以堅持下去,每天進步一點,不久,就會有很大的收穫。

對於以上內容,歡迎大家批評指點,如有疑問,可以來韋老師的羣裏,我們共同討論,一起學習。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章