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