通過nfs掛載主機目錄到開發板(jz2440)

網絡文件系統(NFS,Network File System)是一種將遠程主機上分區(目錄)經網絡掛載到本地系統的一種機制,通過對網絡文件系統的支持,用戶可以在本地系統上像操作本地分區一樣來對遠程主機的共享分區(目錄)進行操作。 
在嵌入式Linux 的開發過程中,開發者需要在Linux 服務器上進行所有的軟件開發,交叉編譯後,通用FTP 方式將可執行文件下載到嵌入式目標系統運行,但這種方式不但效率低下,且無法實現在線的調試。因此,可以通過建立NFS,把Linux 服務器(PC端)上的特定分區共享到待調試的嵌入式目標系統(開發板)上,就可以直接在嵌入式目標系統(開發板)上操作Linux 服務器(PC端),同時可以在線對程序進行調試和修改,大大的方便了軟件的開發。因此,NFS 的是嵌入式Linux 開發的一個重要的組成部分,本部分內容將詳細說明如何配置嵌入式Linux 的NFS 開發環境。

嵌入式Linux 的NFS 開發環境的實現包括兩個方面:

一是Linux 服務器端的NFS 服務器支持;

二是嵌入式目標系統的NFS 客戶端的支持。

因此,NFS 開發環境的建立需要配置linux 服務器端和嵌入式目標系統端。

一、Linux 服務器端NFS 服務器的配置

關閉防火牆:

編輯/etc/exports文件

以root 身份登陸Linux 服務器,編輯/etc 目錄下的共享目錄配置文件exports,指定共享目錄及權限等。


使exports目錄生效,並查看已生效目錄


重啓nfs服務,若你使用的linux是ubuntu的話,將報如下錯誤

myl@myl:~$ service nfs restart
nfs: unrecognized service

解決方法:在ubnutu10.10(8.04一樣)下就是沒有命令:service nfs start,取而代之的是:service nfs-kernel-server start
sudo service nfs-kernel-server restart


設置並查看本機ip(192.168.1.203)


二.開發板上的設置

板子啓動時迅速按任何鍵,進入uboot菜單,再按q進入shell模式


查看環境變量


修改/設置環境變量


重啓板子,此處記得ifconfig,查看下你的ip地址有沒變化,有可能重啓後板子又變成路由器自動分配的地址了。(此時一般報錯NFSmount failed, reason given by server: Permission denied ...)掛載nfs目錄,


以後在主機上編譯過的文件直接放在/root/nfs目錄下,在開發板就可以相應地從/mnt/nfs目錄中得到。

參考:

在開發過程中,來回輸入命令非常煩人,我寫了兩個簡單的腳本來完成nfs的啓動,掛載。

host啓動nfs:
snfs(腳本名)
#!/bin/bash
ifconfig eth0 192.168.1.203
/etc/rc.d/init.d/portmap start  //該命令在本人機器上無法運行
/etc/rc.d/init.d/nfs start

嵌入式目標機掛載nfs:
mnfs:(腳本名)
#!/bin/sh
mount -t nfs 192.168.1.203:/root/nfs  /mnt/nfs -o nolock
echo “nfs ok!”


當目標機出現 

nfs:server 172.168.1.22 not responding,still trying的問題解決方法

解決辦法: 
1   當目標機啓動後已經進入linux系統的情況下,使用以下mount命令:
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 59.70.245.216:/home/lizhao/rootfs  /mnt/nfs
(即添加了intr rsize=1024 wsize=1024 參數,參數的具體意義見下面註釋)
2   當目標機處在引導階段向內核傳遞命令行參數時,使用以下參數:
console=ttySAC0 root=/dev/nfs nfsroot=59.70.245.216:/home/lizhao/rootfs,
 flags=intr,rsize=1024,wsize=1024ip=59.70.245.222:59.70.245.216:59.70.245.216:255.255.255.0:leao:eth0:off           

參數解釋:
 
intr -- 當服務器宕機或者無法到達時,允許中斷NFS請求 nolock--禁用文件鎖。 rsize = 8192 和 wsize=8192  -- 通過設定大的同時傳輸的數據塊大小(bytes),以提高NFS讀寫的速度。改變這些值時要當心,一些舊的linux內核和網卡在大的塊大小不能正常工作。

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