環境介紹:
Windows10
vmware+Ubuntu16.04
OK335xd+am3354(forlinx家的闆子)
操作目标、結果:
uboot:使用flash中的uboot引導核心
uImage:通過tftp使用Ubuntu中的/tftpboot中的uImage啟動
rootfs根檔案系統:通過NFS使用Ubuntu中的/nfs_rootfs中的根檔案系統(bin,dev,etc......)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL5lleNh3YE1kMNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLykTO4AjNzETMyEDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
操作前提:
1.闆子可以ping通Windows,Ubuntu
2.tftp服務可以使用
操作流程:
1.啟動闆子進入uboot-shell
2.設定環境變量
setenv serverip 192.168.0.210 (192.168.0.210為tftp伺服器的ip)
setenv ipaddr 192.168.0.215 (192.168.0.215為開發闆ip和伺服器的ip應該在一個網段中)
saveenv
setenv bootargs console=ttyO0,115200n8 root=/dev/nfs nfsroot=192.168.0.210:/nfs_rootfs,nolock rw ip=192.168.0.215:192.168.0.210:192.168.0.1:255.255.255.0::eth0:off screentype=R screensize=800x600-vga
(nfsroot=192.168.0.210:/nfs_rootfs 中的 192.168.0.210 為 ubuntu 伺服器 ip, /nfs_rootfs 為 ubuntu
下所建的存放檔案系統的路徑, 192.168.0.215 是開發闆的 ip)
setenv bootcmd "tftp 80000000 uImage;bootm 80000000"
save
備注:如果kernel啟動後資訊彙報VFS: Unable to mount root fs via NFS, trying floppy. 則很可能是以上環境變量設定不對,或者文 件系統有問題,或是核心中沒選支援NFS(forlink的已經選了)可以多設定幾次環境變量,錯誤提示如下
若核心中未選:File Systems -> Network File System中選擇 NFS client support 以及 Root file system on NFS。如果找不到Root file system on NFS 選項,要打開第一級菜單下的Networking support -> Networking options -> TCP/IP networking -> IP: kernel level autoconfiguration。如果NFS要使用DHCP,還得選上 IP: DHCP support。
3.核心啟動成功,闆子Linux輸入root擷取管理者權限,cd到/mnt,ls
Ubuntu中吧ledtest.o移入nfs_rootfs中的/mnt
闆子Linux再次ls,出現ledtest
闆子執行./ledtest
小燈閃爍