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