本人所使用的環境爲Win10筆記本+VMware15+Ubuntu18.04+I.MX6ULL開發板vim
一、將開發板與電腦之間使用網線鏈接,開發板上電後在電腦的
網絡和共享中心
能夠看到新增網絡鏈接。服務器
二、點擊查看詳細信息,記住網卡描述、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
一、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
自啓動參數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文件系統啓動開發板。
在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服務搭建完成。