NFS在嵌入式開發中安裝和使用

nfs在嵌入式開發中的使用場景:

1、使用nfs掛載ubuntu服務端目錄方便檔案傳輸和程式除錯

2、uboot啟動後,使用nfs讀取kernel和掛載rootfs,方便kernel和rootfs除錯

3、提取eMMC映象時儲存到nfs目錄中,供產線離線燒錄eMMC

ubuntu安裝nfs服務端安裝方法:

sudo apt-get install nfs-kernel-server nfs-common

修改檔案/etc/exports,在最後新增一行:

/home/tangyc *(rw,sync,no_root_squash,no_subtree_check)

NFS在嵌入式開發中安裝和使用

注意:上面/home/tangyc是我的$HOME目錄,換成你自己的目錄

重啟服務:

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

本地測試,執行:

showmount -e

Export list for tangyc-VirtualBox:

/home/tangyc *

NFS在嵌入式開發中安裝和使用

上面已經可以看出nfs共享資料夾/home/tangyc生效

開發板端nfs

編譯nfs工具

yocto下編譯nfs-utils使用:

bitbake nfs-utils

編譯目錄在

tmp/work/aarch64-poky-linux/nfs-utils/2。1。1-r0/image

板子下要用到如下的檔案:

/sbin/mount。nfs、/sbin/mount。nfs4、/usr/lib/libtirpc。so。*

檔案系統要有以上檔案

否則出現錯誤:

mount: /mnt: bad option; for several filesystems (e。g。 nfs, cifs) you might need a /sbin/mount。 helper program。

也可以使用buildroot編譯nfs-utils:

Target packages ——->

Filesystem and flash utilities ——->

[*] nfs-utils

將上面移植好的工具放到對應的目錄下就可以掛載server端nfs目錄了

開發板掛載NFS測試

開發板網線連線到主機ubuntu。ubuntu設定固定的IP地址192。168。2。2。開發板IP地址192。168。2。6,設定成同一網段並且可以相互ping通。

注意:開發板和pc機能相互ping通,說明物理連線沒問題;如果ping不通虛擬機器說明虛擬機器有問題

在開發板端輸入:

# mount -t nfs -o nolock 192。168。2。2:/home/tangyc/nfs /mnt

將主機端(192。168。2。2)共享目錄/home/tangyc/nfs掛載到開發板的/mnt目錄下,可以看到/mnt下已經能看到服務端檔案了

NFS在嵌入式開發中安裝和使用

解除安裝命令:

umount /mnt

如果mount出錯:

mount。nfs: an incorrect mount option was specified

mount。nfs: Protocol not supported

說明協議不支援,檢視下板子端nfs協議,如果是v4的

應該用(這裡我們板子是v4的,所以有這個也能掛載上):

mount -t nfs -o nolock,nfsvers=4,vers=4 192。168。2。2:/home/tangyc/nfs /mnt

如果是v3要用:

mount -t nfs -o nolock,nfsvers=3,vers=3 192。168。2。2:/home/tangyc/nfs /mnt