1. 程式人生 > >關於NFS的在嵌入式開發中的使用

關於NFS的在嵌入式開發中的使用

1. NFS簡介
NFS是Network FileSystem的縮寫,NFS是由Sun開發並發展起來的一項用於在不同機器,不同作業系統之間通過網路互相分享檔案的技術。NFS可以讓你的PC通過網路將遠端的NFS 伺服器共享出來的檔案mount到自己的系統中,在客戶端看來使用NFS的遠端檔案就象是在使用本地檔案一樣。 使用NFS可以使應用程式的開發變得十分方便, 客戶端不需要大容量的儲存器,更不需要進行映像檔案的燒錄和下載,只要mount到伺服器端的特定目錄下,然後執行該目錄下的程式即可觀察到結果。建立NFS開發環境的工作分為兩個方面,配置NFS伺服器和配置客戶端。

2.配置NFS伺服器端

2.1確認主機安裝了NFS
服務方法是檢視/etc/rc.d/init.d目錄下是否有nfs檔案,如果有說明主機已經安裝了nfs服務。

2.2編輯/etc/exports檔案
伺服器端在檔案/etc/exports中設定允許被訪問的檔案、目錄以及訪問的許可權。設定格式如下:
欲分享出去的目錄 主機名稱 或者IP (引數1,引數2)
可以設定的引數主要有以下這些:
rw:可讀寫的許可權;
ro:只讀的許可權;
sync:資料同步寫入儲存器中。
async:資料會先暫時存放在記憶體中,不會直接寫入硬碟。
例如可以編輯/etc/exports為: /home/test  192.168.0.100(rw)

2.3使/etc/exports檔案的修改生效

在啟動了NFS之後又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs命令來使改動立刻生效,該命令格式如下: exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的資訊輸出到螢幕上。
具體例子: exportfs –rv這個命令列要求全部重新輸出一次。
在每次修改了/etc/exports檔案後都要執行一次該命令。

2.4啟動NFS服務
現在就可以啟動NFS服務了:/etc/rc.d/init.d/nfs start
如果要停止NFS服務:/etc/rc.d/init.d/nfs stop
重新啟動(停止後再啟動,在修改/etc/exports之後使用)命令:/etc/rc.d/init.d/nfs restart

3.配置客戶端 (ARM 板)

3.1配置核心
進入File Systems --->選項選中:

NFS file system support
Provide NFSv3 client support
3.2配置使用者選項
進入Network Applications ---> 選項選中:
portmap進入BusyBox --->選項選中:
mount
mount:support NFS mounts完成以上配置後,即可編譯產生映像檔案。


4.NFS的應用

4.1啟動portmap伺服器
用串列埠線和網線連線好主機和開發板。啟動資訊成功顯示後,輸入:/> portmap &
【portmap】NFS本身沒有提供資訊傳輸的協議和功能,但NFS卻能讓我們通過網路進行資料的分享,這是因為NFS使用了RPC(Remote Procedure Call遠端程式呼叫)的功能。客戶端通過網路傳送RPC到遠端電腦,請求服務。這裡,portmap是一個server,主要功能是將TCP/IP 通訊協議中的埠號轉換為RPC程式號,這樣客戶端才能完成RPC呼叫。

4.2掛載到主機
通過以下命令列,掛載到主機上:
/>mount –t nfs –o rsize=1024,wsize=1024,timeo=3,udp 192.168.253.1:/opt/uClinux-dist/user/Myapp /var/tmp
命令列的引數是必要的,能夠改善NFS下應用程式執行的速度。當出現下一個/>時,mount成功,接下來就可以按讀寫本地檔案的方式讀寫遠端檔案系統了 

我用的開發板是UP-netARM2410。我的配置以及遇到的問題的解決如下:

 在你的linux上nfs可以通過圖形化的方式設定,也可以直接對etc/exports進行編輯。
輸入 /arm2410dev   192.168.0.*(rw,sync,no_root_squash)
就是設定/arm2410dev 位共享目錄,並且允許192.168.0.*的所有機器都可以訪問,設定許可權為讀寫,

啟動nfs服務
/sbin/service nfs start     確保NFS服務已經啟動
然後在用超級終端上連線arm板,執行命令:
mount -t nfs -o nolock 192.168.0.10:/arm2410dev  /host
然後退出/host
在進入/host 就可以看到主機/arm2410dev下的東西了

如果在超級終端上執行mount命令時出現一下錯誤:

mount:RPC:Unable to receive; eNrno=connetionF refused
mountS nfsmount faile:d: bad f le descriptor
mount program didn't pass remote address!
mount:mounting 192.168.0.10:/ on /tmp failed:invalid agument
請修改linux的安全級別為“無防火牆”

相關推薦

關於NFS的在嵌入式開發的使用

1. NFS簡介 NFS是Network FileSystem的縮寫,NFS是由Sun開發並發展起來的一項用於在不同機器,不同作業系統之間通過網路互相分享檔案的技術。NFS可以讓你的PC通過網路將遠端的NFS 伺服器共享出來的檔案mount到自己的系統中,在客戶端看來使用NF

嵌入式開發 make 出現錯誤 /bin/sh: -c: 行 0: 未預期的符號 `(' 附近有語法錯誤

  這是因為在Makefile檔案中 包含了帶有中文的檔案路徑  只需要把中文路徑名改成英文就OK啦  /bin/sh: -c: 行 0: 未預期的符號 `(' 附近有語法錯誤/bin/sh: -c: 行 0: `make -C /mnt/yaffs/UP4/

嵌入式開發對暫存器的位操作

在嵌入式開發中常常要對暫存器或者變數的位進行讀和寫,以下有幾個常用的tips。 開始之前,先複習一下C語言的位與(&)位或(|)運算。 # 假設 A 為暫存器上的某一位 A | 0 = A A

嵌入式開發的一些硬體設計上的坑

做嵌入式系統開發,經常要接觸硬體。做嵌入式開發對數位電路和類比電路要有一定的瞭解。這樣才能深入的研究下去。下面我們簡單的介紹嵌入式開發中的一些硬體相關的概念。 電平(Level) 在數位電路中,分為高電平和低電平,分別用1和0表示。一個數字電路的管腳,總是存在一

嵌入式開發i2c協議是怎麼玩的?波形

對於嵌入式開發的朋友來說,I2C協議實在是再熟悉不過了,有太多的器件,採用的都是通過I2C來進行相應的設定。今天,我們就隨便聊聊這個I2C協議。   I2C協議中最重要的一點是I2C地址。這個地址有7位和10位兩種形式。7位能夠表示127個地址,而在實際使用中基本上不會掛載如此多的

嵌入式開發三種作業系統的分析與比較

三種常用的嵌入式作業系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式作業系統,給出它們之間的 異同點及各自的適用範圍。 1 嵌入式系統與嵌入式作業系統 1.1 嵌入式系統 嵌入式系統是以嵌入式計算機為技術核心,面向使用者、面向產品、面向應用,軟硬體可裁減的,適用

嵌入式開發, \r和\r\n的區別

     在嵌入式開發中,經常會涉及到用UART去列印一些運算中間層資料作為除錯,或者是列印輸出結果。為了處理資料的方便性,經常會涉及到資料的換行操作。那麼在換行過程中\r和\r\n有什麼區別呢? 在windows系統中: '\r' 回車,回到當前行的行首,而不會換到下一

嵌入式開發 make 出現錯誤 /bin/sh: -c: 行 0: 未預期的符號 `(' 附近有語法錯誤

  這是因為在Makefile檔案中 包含了帶有中文的檔案路徑  只需要把中文路徑名改成英文就OK啦 /bin/sh: -c: 行 0: 未預期的符號 `(' 附近有語法錯誤/bin/sh: -c: 行 0: `make -C /mnt/yaffs/UP4/linux-2.6

理解嵌入式開發的一些硬體相關的概念

I/O埠     前面提到了外設(晶片)),現在是對外設進行分類的時候了。大體上外設分為兩類,一類是儲存器外設,而另一類是非儲存器外設,後者常被稱之為I/O裝置,這裡的I/O是Input/Output的簡寫,即輸入、輸出。可見,I/O外設是一個非常寬泛的概念。對於儲存器外設,其特點是,它所佔用的空間是連續

嵌入式開發關鍵字const、static、volatile的用法分析

【1】static: 1)限制變數或者函式的作用域 2)設定變數的儲存域 常見的有: (1)static全域性變數(2)static區域性變數(3)static函式 (1)static全域性變數:1、static全域性變數只初使化一次,防止在其他檔案單元中被引用;2、只在定

嵌入式開發使用DDD進行除錯

    GNU DDD是命令列除錯程式,如GDB、DBX、WDB、Ladebug、JDB、XDB、Perl Debugger或Python Debugger的視覺化圖形前端。它特有的圖形資料顯示功能(Graphical Data Display)可以把資料結構按照圖形的方式顯示出來。DDD最初源於1990年A

嵌入式開發學習之NFS掛載服務

/home/fei/nfs *(rw,sync,no_root_squash,no_subtree_check)執行命令:sudo /etc/init.d/portmap restart 重啟portmap服務。nfs是一個RPC程式,使用它前,需要對映好埠,通過portmap設定。

Qt與opencv在嵌入式開發環境的配置

1、在虛擬機器的Qt Creator開發環境裡,點選Tools-Options-Qt4,Qt Versions對話方塊裡顯示qmake的路徑,如果之前已經將QtEmbedded安裝好,並且新增進環境變數,會自動檢測到qmake的路徑。 2、進入目錄/usr/local/Tr

嵌入式系統開發,如何選擇適合的MCU平臺?

如今,嵌入式系統開發往往基於平臺模式。MCU平臺包括MCU及其相關器件(外延器件、配套器件等),

開發板通過nfs服務掛載虛擬機器檔案目錄的嵌入式開發方式

        在做嵌入式開發時,一般都是先在linux下交叉編譯工程,將生成的執行檔案拷貝到開發板上再執行,這樣很麻煩,現在介紹一種nfs檔案掛載的方式,只需要在嵌入式裝置和虛擬機器上安裝nfs服務,再做一些網路環境的配置,就可以直接把虛擬機器上工程檔案所在的目錄直接掛載到

嵌入式Linuxtftp和nfs的筆記

一、tftp 我用的ubuntu14.04已經安裝好tftp服務,這裡記錄下網上的安裝方法: 1、伺服器安裝tftp, apt-get install tftpd-hpa, tftp-hpa 我沒有安裝xinetd,能夠成功從伺服器下載檔案到開發板

前端開發的JS調試技巧

pre 整潔 選擇 輸入 越來越大 代碼執行 auto move ctr 前言:調試技巧,在任何一項技術研發中都可謂是必不可少的技能。掌握各種調試技巧,必定能在工作中起到事半功倍的效果。譬如,快速定位問題、降低故障概率、幫助分析邏輯錯誤等等。而在互聯網前端開發越來越重要的今

Unity3d修煉之路:遊戲開發,3d數學知識的練習【1】(不斷更新.......)

turn tor rdo pre 長度 scrip 縮放 unity3d float #pragma strict public var m_pA : Vector3 = new Vector3(2.0f, 4.0f, 0.0f); public var m_pB :

現代軟件開發現代軟件工程的合理運用

學技術 工程 一個 經濟 影響 都得 軟件開發 運用 必須 進入新時期以來,我國的社會經濟水平與科學技術發展水平都上升到了一個新的高度,不論是在社會生產中還是在日常生活中,計算機信息技術都得到了普遍的運用。而計算機信息技術主要是在軟件的支持下進行系統運行的現代科學技術,在現

Android開發有用工具之--Log工具類

util lena 日誌 日誌信息 stat 們的 常常 我們 imp 在開發的過程中。我們常常會使用Log來輸出日誌,幫助我們來調試程序 可是有時候並不能全然滿足我們的須要 ,比方我想知道這個日誌信息是來自於哪一個包 哪一個類 所以我們封裝一個這個Log類。方便我們的