SD系統(tǒng)啟動(dòng)卡+網(wǎng)絡(luò)方式啟動(dòng) 基于TFTP和NFS啟動(dòng)開(kāi)發(fā)板,是一種很便捷網(wǎng)絡(luò)啟動(dòng)和調(diào)試方式,避免用戶在開(kāi)發(fā)過(guò)程中,使用SD系統(tǒng)啟動(dòng)卡等方式拷貝啟動(dòng)文件到開(kāi)發(fā)板而造成的繁瑣工作。 本小節(jié)介紹從SD系統(tǒng)啟動(dòng)卡啟動(dòng)U-Boot,再通過(guò)TFTP加載設(shè)備樹(shù)文件、Linux內(nèi)核鏡像文件,最后使用NFS掛載遠(yuǎn)程文件系統(tǒng)。進(jìn)行以下操作前,請(qǐng)參照《TFTP開(kāi)發(fā)環(huán)境搭建》、《NFS開(kāi)發(fā)環(huán)境搭建》文檔搭建好TFTP和NFS開(kāi)發(fā)環(huán)境。 1.1 啟動(dòng)文件準(zhǔn)備 將AM57x開(kāi)發(fā)板對(duì)應(yīng)的設(shè)備樹(shù)文件和內(nèi)核鏡像文件,拷貝到Ubuntu搭建好的TFTP服務(wù)器工作目錄中。 本文以廣州創(chuàng)龍TL5728-EasyEVM開(kāi)發(fā)板為例,其對(duì)應(yīng)設(shè)備樹(shù)文件為am57xx-evm-reva3.dtb;網(wǎng)絡(luò)啟動(dòng)連接網(wǎng)口為RGMII ETH0. 平臺(tái)介紹: AM5728是TI Sitara系列高性能SOC,得益于異構(gòu)多核處理架構(gòu),CPU內(nèi)集成了多核DSP、多核PRU、IVA-HD、GPU等協(xié)處理單元,通過(guò)硬件加速的方式極大增強(qiáng)CPU的數(shù)據(jù)、多媒體處理能力,可滿足工業(yè)協(xié)議支持、大數(shù)據(jù)計(jì)算、實(shí)時(shí)控制等應(yīng)用需求,同時(shí)采用先進(jìn)的28納米生產(chǎn)工藝,極大降低處理器的功耗,能耗比更加突出。 TL5728-EasyEVM是一款廣州創(chuàng)龍基于 TI AM5728(浮點(diǎn)雙 DSP C66 x +雙 ARMCortex-A15)SOM-TL5728 核心板設(shè)計(jì)的開(kāi)發(fā)板,它為用戶提供了 SOM-TL5728 核心板的測(cè)試平臺(tái),用于快速評(píng)估 SOM-TL5728 核心板的整體性能。底板采用沉金無(wú)鉛工藝的 4 層板設(shè)計(jì),為客戶提供豐富的AM5728 入門教程,協(xié)助客戶進(jìn)行底板的開(kāi)發(fā),提供長(zhǎng)期、全面的技術(shù)支持,幫助客戶以最快的速度進(jìn)行產(chǎn)品的二次開(kāi)發(fā),實(shí)現(xiàn)產(chǎn)品的快速上市。 Ø 基于TI AM5728浮點(diǎn)雙DSPC66x+雙ARMCortex-A15工業(yè)控制及高性能音視頻處理器; Ø 強(qiáng)勁的視頻編解碼能力,支持1路1080P60或2路720P60或4路720P30視頻硬件編解碼,支持H.265視頻軟解碼; Ø 雙核PRU-ICSS工業(yè)實(shí)時(shí)控制子系統(tǒng),支持EtherCAT、EtherNet/IP、PROFIBUS等工業(yè)協(xié)議; Ø 外設(shè)接口豐富,集成雙千兆網(wǎng)、PCIe、GPMC、USB 2.0、UART、SPI、QSPI、SATA 2.0、I2C、DCAN等工業(yè)控制總線和接口,支持極速接口USB 3.0; 拷貝完成后,Ubuntu下TFTP服務(wù)器工作目錄包含的設(shè)備樹(shù)文件、內(nèi)核鏡像文件如下圖所示: 在Ubuntu的NFS共享目錄下,新建開(kāi)發(fā)板文件系統(tǒng)存放文件夾rootfs,并將光盤“Shell\Linux-4.4.19-mksdboot\filesystem”目錄下的開(kāi)發(fā)板文件系統(tǒng)壓縮包拷貝到Ubuntu。 進(jìn)入文件系統(tǒng)壓縮所在路徑,執(zhí)行如下指令解壓到此壓縮文件到NFS共享目錄rootfs文件夾: Host# sudo tar -vxfrootfs-03.01_v1.1.tar.gz -C /home/tronlong/nfs_share/rootfs 解壓完成后,NFS共享目錄下的rootfs文件夾內(nèi)容如下圖所示: 1.2 設(shè)置網(wǎng)絡(luò)啟動(dòng)環(huán)境變量 根據(jù)“表1”所示,將開(kāi)發(fā)板對(duì)應(yīng)網(wǎng)口和PC通過(guò)路由器或者交換機(jī)互聯(lián)。開(kāi)發(fā)板撥碼開(kāi)關(guān)選擇MMC1啟動(dòng):01000(1~5),開(kāi)發(fā)板上電后快速點(diǎn)擊任意鍵進(jìn)入U-Boot命令行。執(zhí)行如下命令,恢復(fù)系統(tǒng)默認(rèn)U-Boot環(huán)境變量,設(shè)置NFS服務(wù)器上的文件系統(tǒng)路徑: U-Boot> env default -f -a U-Boot> setenv rootpath /home/tronlong/nfs_share/rootfs/ 繼續(xù)執(zhí)行如下命令,設(shè)置網(wǎng)絡(luò)啟動(dòng)環(huán)境變量: U-Boot> setenv netboot 'echo Booting from network ...; run netloadimage; runnetloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}' U-Boot> setenv autoload no U-Boot> dhcp //自動(dòng)獲取IP地址 U-Boot> setenv serverip 192.168.1.157 U-Boot> setenv fdtfile am57xx-evm-reva3.dtb U-Boot> setenv bootcmd 'run netboot' U-Boot> saveenv U-Boot> run netboot 192.168.1.157為TFTP與NFS服務(wù)器IP地址,am57xx-evm-reva3.dtb為AM57x平臺(tái)開(kāi)發(fā)板使用的設(shè)備樹(shù)文件,請(qǐng)根據(jù)實(shí)際情況修改。設(shè)置成功后,執(zhí)行如下指令將從網(wǎng)絡(luò)啟動(dòng)內(nèi)核并掛載文件系統(tǒng),啟動(dòng)時(shí)開(kāi)發(fā)板會(huì)自動(dòng)獲取IP地址,如下圖所示: 開(kāi)發(fā)板啟動(dòng)成功,進(jìn)入文件系統(tǒng)執(zhí)行如下指令,可以查看到已經(jīng)成功掛載上遠(yuǎn)程NFS共享目錄rootfs文件夾下的文件系統(tǒng): Target# df SD系統(tǒng)啟動(dòng)卡+USB系統(tǒng)啟動(dòng)盤啟動(dòng) 本小節(jié)介紹從SD系統(tǒng)啟動(dòng)卡啟動(dòng)U-Boot,再通過(guò)USB系統(tǒng)啟動(dòng)盤啟動(dòng)Linux內(nèi)核并掛載文件系統(tǒng)。進(jìn)行以下操作前,請(qǐng)參照《Linux SD系統(tǒng)啟動(dòng)卡制作方法》文檔,制作好USB系統(tǒng)啟動(dòng)盤。 將制作好的USB系統(tǒng)啟動(dòng)盤連接到開(kāi)發(fā)板的USB3.0接口,開(kāi)發(fā)板撥碼開(kāi)關(guān)選擇MMC1啟動(dòng):01000(1~5)。開(kāi)發(fā)板上電,快速點(diǎn)擊任意鍵進(jìn)入U-Boot命令行。執(zhí)行如下命令,設(shè)置USB啟動(dòng)環(huán)境變量,啟動(dòng)過(guò)程打印信息如下圖所示: U-Boot> setenv bootcmd run usbboot U-Boot> saveenv U-Boot> reset 開(kāi)發(fā)板啟動(dòng)成功,進(jìn)入文件系統(tǒng)執(zhí)行如下指令,可以查看到開(kāi)發(fā)板文件系統(tǒng)掛載情況如下圖所示: Target# df 使用USB方式時(shí),內(nèi)核需要重新編譯,編譯時(shí)選擇支持USB加載文件系統(tǒng),然后使用編譯后的內(nèi)核鏡像替換USB啟動(dòng)設(shè)備文件系統(tǒng)分區(qū)boot目錄下的內(nèi)核鏡像文件。廣州創(chuàng)龍?zhí)峁┑淖钚聝?nèi)核已完成內(nèi)核的修改,直接支持USB方式啟動(dòng)系統(tǒng)。 |