電腦與Linux開發板搭建NFS文件系統——網線直連

前言

本人所使用的環境爲Win10筆記本+VMware15+Ubuntu18.04+I.MX6ULL開發板vim

1、網絡配置

一、將開發板與電腦之間使用網線鏈接,開發板上電後在電腦的網絡和共享中心能夠看到新增網絡鏈接。服務器

二、點擊查看詳細信息,記住網卡描述、IP地址、網關、子網掩碼信息,後面步驟會用到網絡

三、打開VMware-->編輯-->虛擬網絡編輯器-->更改設置async

四、先點擊還原默認設置,而後將VMnet0配置爲橋接模式並選擇橋接到步驟2中查看的網卡編輯器

五、設置Ubuntu網絡信息與步驟2中查看的網絡爲同一網段:打開Ubuntu-->設置-->網絡-->IPV4-->手動,填入網絡信息,點擊應用後將網絡關閉再打開便可生效ide

六、設置開發板網絡信息與步驟2中查看的網絡爲同一網段。開發板上電進入Uboot模式,依次執行如下命令設置網絡相關信息測試

//設置服務器的IP地址(Ubuntu) 
setenv serverip 192.168.2.145 
//設置網關 
setenv gatewayip 192.168.2.1 
//設置開發板的IP地址 
setenv ipaddr 192.168.2.250 
//設置子網掩碼 
setenv netmask 255.255.255.0 
//設置網口MAC地址(若是在同一網段有多個開發板要保證每一個開發板的ethaddr不一樣)
setenv ethaddr 08:07:03:A0:03:22 
//保存環境變量 
saveenv 
//重啓
reset 

//重啓後進入Uboot使用如下命令查詢網絡信息
printenv serverip ipaddr gatewayip netmask ethaddr

七、互ping測試,測試開發板、Windows、Ubuntu三者之間網絡可否ping通3d

  • Windows與開發板、Ubuntu

  • 開發板與Windows、Ubuntu

  • Ubuntu與Windows、開發板

2、NFS服務搭建

一、Ubuntu安裝NFS服務rest

//1-安裝nfs服務
sudo apt-get install nfs-kernel-server
//2-建立NFS服務器共享目錄
mkdir nfs
//3-更改文件夾權限
chmod 777 nfs
//4-更改配置文件
sudo vi /etc/exports
文件末尾添加: /home/zz/work/nfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
//5-重啓NFS服務
sudo /etc/init.d/nfs-kernel-server restart
//6-查看NFS服務掛載目錄
showmount -e

二、測試nfs服務code

1-將zImage放在nfs目錄下
2-啓動開發板進入uboot
3-uboot中使用`? nfs`查看nfs使用方法`nfs [loadAddress] [[hostIPaddr:]bootfilename]`
4-測試nfs(將nfs服務器目錄中在Image下載到開發板80800000地址):
nfs 80800000 192.168.2.145:/home/zz/work/nfs/zImage

三、開發板與虛擬機nfs服務版本不一樣致使下載、掛載失敗解決方法(提示"Loading: *** ERROR: File lookup fail"、"VFS: Unable to mount root fs via NFS, trying floppy."等)

問題緣由:Ubuntu 18.04的nfs默認爲協議V3和協議V4,開發板uboot默認啓動的是協議V2的形式,從而致使uboot不能在nfs服務器中找到文件。

解決方法:讓Ubuntu中的nfs兼容協議V2,修改/etc/default/nfs-kernel-server 文件。

1)打開文件:sudo vim /etc/default/nfs-kernel-server (注意必定要sudo或者root權限)

2)修改如圖:

3)保存退出:ESC --> :wq --> Enter

4)重啓NFS服務器:sudo service nfs-kernel-server restart

至此問題解決,能夠從新執行nfs測試驗證nfs是否正常。

四、開發板掛載nfs文件系統

1)Ubuntu的nfs共享服務目錄下建立rootfs文件夾

2)將文件系統rootfs.tar.bz2拷貝到rootfs文件夾中並解壓tar -xjvf rootfs.tar.bz2

3)設置開發板uboot自啓動參數bootcmdbootagrs

/* 
1-設置bootcmd
	zImage爲內核鏡像,經過tftp下載到首地址爲0x80800000的內存空間
	topeet_emmc_4_3.dtb爲設備樹
	bootz根據內核鏡像地址和設備樹地址加載啓動
*/
setenv bootcmd 'tftp 80800000 zImage; tftp 83800000 topeet_emmc_4_3.dtb; bootz 80800000 - 83800000’


/* 
2-設置bootargs
	nfsroot後的參數爲Ubuntu的nfs文件夾路徑;格式爲:nfsroot=NFS服務器IP:文件系統的絕對路徑.
	ip後的參數爲開發板網絡信息:ip=開發板IP:服務器IP:網關,子網掩碼::eth0:off. 
*/
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.2.145:/home/zz/work/nfs/rootfs ip=192.168.2.250:192.168.2.145:192.168.2.1:255.255.255.0::eth0:off’


/* 3-保存環境變量 */
saveenv

4)輸入boot命令啓動開發板

至此,成功掛載nfs文件系統啓動開發板。

3、TFTP服務搭建(補充)

  1. 在Ubuntu的home/zz/work/目錄下建立tftp服務文件夾:mkdir tftp

  2. 修改文件夾權限:chmod 777 tftp

  3. 安裝服務:sudo apt-get install tftp-hpa tftpd-hpa

  4. 修改配置文件:sudo vim /etc/default/tftpd-hpa

  1. 啓動服務:sudo service tftpd-hpa restart

  2. 將 Linux 內核鏡像 zImage、設備數文件topeet_emmc_4_3.dtb拷貝到 tftp服務文件夾下

  3. 測試:啓動開發板在uboot模式下輸入tftp 0x80000000 zImage

至此,tftp服務搭建完成。

相關文章
相關標籤/搜索