前言
本人所使用的環境為Win10筆記本+VMware15+Ubuntu18.04+I.MX6ULL開發板
一、網路配置
1、將開發板與電腦之間使用網線連接,開發板上電后在電腦的
網路和共享中心可以看到新增網路連接,

2、點擊查看詳細資訊,記住網卡描述、IP地址、網關、子網掩碼資訊,后面步驟會用到

3、打開
VMware-->編輯-->虛擬網路編輯器-->更改設定

4、先點擊
還原默認設定,然后將VMnet0配置為橋接模式并選擇橋接到步驟2中查看的網卡

5、設定Ubuntu網路資訊與步驟2中查看的網路為同一網段:打開
Ubuntu-->設定-->網路-->IPV4-->手動,填入網路資訊,點擊應用后將網路關閉再打開即可生效

6、設定開發板網路資訊與步驟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

7、互ping測驗,測驗開發板、Windows、Ubuntu三者之間網路能否ping通
- Windows與開發板、Ubuntu

- 開發板與Windows、Ubuntu

- Ubuntu與Windows、開發板

二、NFS服務搭建
1、Ubuntu安裝NFS服務
//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
2、測驗nfs服務
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

3、開發板與虛擬機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是否正常,
4、開發板掛載nfs檔案系統
1)Ubuntu的nfs共享服務目錄下創建rootfs檔案夾
2)將檔案系統rootfs.tar.bz2拷貝到rootfs檔案夾中并解壓tar -xjvf rootfs.tar.bz2

3)設定開發板uboot自啟動引數bootcmd和bootagrs
/*
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檔案系統啟動開發板,
三、TFTP服務搭建(補充)
-
在Ubuntu的
home/zz/work/目錄下創建tftp服務檔案夾:mkdir tftp -
修改檔案夾權限:
chmod 777 tftp -
安裝服務:
sudo apt-get install tftp-hpa tftpd-hpa -
修改組態檔:
sudo vim /etc/default/tftpd-hpa

-
啟動服務:
sudo service tftpd-hpa restart -
將 Linux 內核鏡像
zImage、設備數檔案topeet_emmc_4_3.dtb拷貝到 tftp服務檔案夾下 -
測驗:啟動開發板在uboot模式下輸入
tftp 0x80000000 zImage

至此,tftp服務搭建完成,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/233751.html
標籤:嵌入式
下一篇:全連接佇列和半連接佇列
