1. 程式人生 > >beaglebone black tftp與nfs掛載根檔案系統

beaglebone black tftp與nfs掛載根檔案系統

原文連結: http://blog.csdn.net/zy812248258/article/details/39291835

我的板子是beaglebone black  rev.c

啟動方式: 在win下用am335x-evm-01.00.00.00.img.zip裡的映象燒寫到tf卡里 從tf卡啟動

TI SDK版本:  http://software-dl.ti.com/sitara_linux/esd/processor-sdk/PROCESSOR-SDK-LINUX-AM335X/latest/index_FDS.html下的

ti-processor-sdk-linux-am335x-evm-01.00.00.00-Linux-x86-Install.bin

 

在linux下為sdk檔案新增執行屬性, 然後執行. 過程中會讓設定安裝路徑. 我使用的是預設路徑. 完成之後再執行 /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/setup.sh

這個指令碼執行之後(預設操作) 會設定好tftp服務和nfs服務.  

tftp路徑為 /tftpboot  這個資料夾下已經有了映象檔案  

nfs資料夾為: /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS 這下邊也已經有了所需要的檔案可以直接掛載

測試主機nfs是否有效:
http://book.51cto.com/art/200811/96860.htm

最後將交叉編譯鏈路徑新增到環境變數中即可:

vi ~/.bashrc 後面新增 export PATH=$PATH:/opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin 執行 . ~/.bashrc

下邊設定uboot引數讓板子從host下載Image 然後掛載網路檔案系統作為根檔案系統

其中我們需要的兩條語句為:

netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp 
netboot=echo Booting from network ...; setenv autoload no; dhcp; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}
只需要更改和填充這兩句中的變數就可以實現網路檔案系統的掛載

增加設定:
setenv console /dev/ttyO0,115200n8

setenv serverip 192.168.1.102  //這裡寫你的虛擬機器裡ubuntu的ip地址
setenv rootpath /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS  //sdk預設安裝之後, nfs資料夾的路徑, 如果你安裝時更改了路徑那麼就改成你自己的路徑

setenv ipaddr 192.168.1.103   //這個是bbb自身地地址
setenv gatewayip 192.168.1.1	
setenv device eth0
setenv autoconf off
//setenv ip ${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${device}:${autoconf}

//setenv netargs setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${device}:${autoconf}
setenv netargs setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${device}:${autoconf}
csdn貼上長程式碼竟然後邊顯示不全只能貼上成文字了...
setenv fdtfile am335x-boneblack.dtb //這個需要跟/tftpboot裡的檔名字相同
setenv bootfile zImage-am335x-evm.bin //如果你是make出來的zImage就直接寫 zImage, 不過要將zImage拷貝到tftp目錄下
saveenv
然後執行 run netboot 就可以自動下載核心, 掛載根檔案系統