1. 程式人生 > >wlh- beagle bone 通過uboot tftp 載入zImage 裝置樹 及 nfs 掛載根檔案系統

wlh- beagle bone 通過uboot tftp 載入zImage 裝置樹 及 nfs 掛載根檔案系統

首先重啟Ubuntu 伺服器的 tftp 和nfs 

sudo /etc/init.d/xinetd restart 命令              重啟 xinetd  tftp服務

sudo /etc/init.d/nfs-kernel-server restart    重啟nfs

應該設定的環境變數

setenv serverip 192.168.1.100

setenv client_ip 192.168.1.103

setenv root_dir /home/topeet/targetNFS

setenv fdtfile am335x-boneblack.dtb
run nfsboot

 

==============================================================================

講解:

 -----run nfsboot-----

就是從指令碼的下面的語句開始執行

nfsboot=echo Booting from ${server_ip} ...; setenv nfsroot ${server_ip}:${root_dir}${nfs_options}; setenv ip ${client_ip}:${server_ip}:${gw_ip}:${netmask}:${hostname}:${device}:${autoconf}; setenv autoload no; setenv serverip ${server_ip}; setenv ipaddr ${client_ip}; tftp ${loadaddr} ${tftp_dir}${bootfile}; tftp ${fdtaddr} ${tftp_dir}dtbs/${fdtfile}; run nfsargs; bootz ${loadaddr} - ${fdtaddr}

nfsargs=setenv bootargs console=${console} ${optargs} ${cape_disable} ${cape_enable} root=/dev/nfs rw rootfstype=${nfsrootfstype} nfsroot=${nfsroot} ip=${ip} ${cmdline}

其中需要自己配置的環境變數有server_ip(ubuntu的ip)、root_dir(ubuntu中檔案系統的路徑)、client_ip(開發板ip)、fdtfile(裝置樹檔名),nfsroot(根檔案系統在ubuntu中的路徑),配置完之後如下:

nfsboot=echo Booting from 192.168.1.100 ...; 
setenv nfsroot 192.168.1.100:/home/topeet/targetNFS; 
setenv ip 192.168.1.103:192.168.1.100:192.168.1.1:255.255.255.0::eth0:off; 
setenv autoload no;
setenv serverip 192.168.1.100; 
setenv ipaddr 192.168.1.103; 
tftp 0x82000000 zImage;        //通過tftp伺服器下載zImage 到0x82000000
tftp 0x88000000 dtbs/am335x-boneblack.dtb;       //下載am335x-boneblack.dtb 到0x88000000
run nfsargs;      //載入跟檔案系統
bootz 0x82000000 - 0x88000000