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 就可以自動下載核心, 掛載根檔案系統