1 SD系統(tǒng)啟動卡說明 SD卡啟動是開發(fā)板系統(tǒng)啟動方式的一種。SD系統(tǒng)啟動卡共有boot分區(qū)、rootfs分區(qū)和rootfs-backup分區(qū)三個分區(qū),其中boot分區(qū)為FAT32格式、rootfs分區(qū)和rootfs-backup分區(qū)為EXT4格式。FAT32格式分區(qū)在Windows系統(tǒng)下可見,EXT4格式分區(qū)在Windows系統(tǒng)下不可見,三個分區(qū)在Linux系統(tǒng)下均可見。boot分區(qū)存放U-Boot、內(nèi)核、設(shè)備樹等;rootfs分區(qū)存放文件系統(tǒng);rootfs-backup分區(qū)用于備份文件系統(tǒng),系統(tǒng)固化時將其拷貝并固化到eMMC。 開發(fā)板出廠時已經(jīng)提供一個正常使用的Linux SD系統(tǒng)啟動卡。以下步驟是Linux SD系統(tǒng)啟動卡的制作過程。 l 操作環(huán)境: Ubuntu 14.04.3 64bit l 制作文件說明 制作文件為光盤“Shell\Linux-4.4.19-mksdboot.tar.gz”壓縮包,基于Linux-4.4.19內(nèi)核,適用于TL5728-EasyEVM、TL5728-IDK。 根據(jù)制作文件制作的SD卡默認(rèn)支持TL5728-EasyEVM開發(fā)板,若要支持其它型號開發(fā)板,需要設(shè)置系統(tǒng)啟動的U-Boot環(huán)境變量。 2 SD系統(tǒng)啟動卡制作步驟2.1 拷貝啟動卡制作文件到Ubuntu打開Ubuntu,執(zhí)行如下命令創(chuàng)建“/home/tronlong/AM57xx/Linux-4.4.19-mksdboot”目錄,將光盤“Shell\Linux-4.4.19-mksdboot.tar.gz”壓縮包復(fù)制到該目錄下,進(jìn)入制卡壓縮包所在路徑執(zhí)行如下指令將其解壓到當(dāng)前目錄: Host# mkdir -p /home/tronlong/AM57xx/Linux-4.4.19-mksdboot Host# cd /home/tronlong/AM57xx/Linux-4.4.19-mksdboot Host# tar -xvf Linux-4.4.19-mksdboot.tar.gz -C . 解壓后的Linux-4.4.19-mksdboot文件夾內(nèi)容結(jié)構(gòu)大致如下圖: boot目錄: 該目錄下的MLO、u-boot.img和uEnv.txt文件會復(fù)制到SD卡的boot分區(qū),該目錄下的zImage文件和dtb目錄下的全部文件會復(fù)制到SD卡rootfs分區(qū)的boot目錄下。 Ø MLO:U-Boot一級啟動鏡像; Ø u-boot.img:U-Boot二級啟動鏡像; Ø zImage:Linux內(nèi)核鏡像; Ø dtb目錄:存放.dtb設(shè)備樹文件,由內(nèi)核編譯步驟產(chǎn)生。 filesystem目錄: 該目錄存放了將要復(fù)制到SD卡rootfs分區(qū)的文件系統(tǒng)。 Ø modules目錄:內(nèi)核驅(qū)動壓縮包,和內(nèi)核版本對應(yīng); Ø product-test目錄:生產(chǎn)測試壓縮包,會解壓到rootfs分區(qū)的opt目錄下; Ø rootfs目錄:存放根文件系統(tǒng)壓縮包; Ø tools目錄:tools目錄里存放著部分shell腳本,會被復(fù)制到SD啟動卡的boot分區(qū); Ø mksdboot.sh:Linux SD系統(tǒng)啟動卡制作腳本。 以上文件如需替換,務(wù)必保證命名、格式與原文件保持一致。 2.2 識別SD卡將Micro SD卡通過讀卡器連接到計算機,虛擬機Ubuntu系統(tǒng)識別后會自動識別SD卡分區(qū),如下圖所示: 如果沒有自動識別,請右擊右下角的USB大容量存儲設(shè)備圖標(biāo),再點擊“Connect (Disconnect from Host)”。 如果沒有以上圖標(biāo)或者連接不成功,請嘗試如下方法: l 請將Micro SD卡通過讀卡器插到USB 2.0接口,而不是USB 3.0接口,部分版本VMware可能不支持USB 3.0。 l 請將Micro SD卡插在PC上,然后重啟Ubuntu,在Ubuntu重啟過程中不要撥出來,開機后圖標(biāo)會重新出現(xiàn)。 2.3 確認(rèn)SD卡設(shè)備節(jié)點名執(zhí)行如下命令,確認(rèn)SD卡設(shè)備節(jié)點名: Host# sudo fdisk -l 可以看到SD卡設(shè)備節(jié)點是sdb,其中有1個分區(qū),分區(qū)名字是sdb1。SD卡設(shè)備節(jié)點名字是可變的,一般插拔多次或者不同的卡插拔后,可能會顯示sdc或者sdd甚至sde。 2.4 運行SD系統(tǒng)啟動卡制作腳本系統(tǒng)啟動卡制作腳本mksdboot.sh主要有如下作用: l 將SD卡格式化為boot分區(qū)、rootfs分區(qū)和rootfs-backup分區(qū)。 l 將rootfs文件夾中的文件系統(tǒng)壓縮包解壓安裝到rootfs分區(qū),同時還將文件系統(tǒng)壓縮包解壓備份到rootfs-backup分區(qū)。 l 將boot目錄下的U-Boot鏡像文件MLO、u-boot.img拷貝到boot分區(qū)。SD卡模式啟動時,系統(tǒng)會使用boot分區(qū)U-Boot鏡像文件。 l 將“boot/dtb”目錄下的所有dtb設(shè)備樹文件,拷貝到rootfs分區(qū)“/boot”目錄。在U-Boot命令行下,通過修改環(huán)境變量board_name的參數(shù)值,系統(tǒng)會根據(jù)修改加載rootfs分區(qū)“/boot”目錄下不同型號開發(fā)板對應(yīng)的設(shè)備樹文件。 l 將boot目錄下的內(nèi)核鏡像文件zImage拷貝到rootfs分區(qū)“/boot”目錄。SD卡模式啟動時,系統(tǒng)會使用rootfs分區(qū)“/boot”目錄下的內(nèi)核鏡像文件。 使用SD系統(tǒng)啟動卡啟動系統(tǒng)時,如需替換U-Boot鏡像、設(shè)備樹、內(nèi)核鏡像、文件系統(tǒng),有如下方法: (1) 使用新的U-Boot鏡像文件,保持文件名與原文件一致,替換SD系統(tǒng)啟動卡boot分區(qū)下的對應(yīng)文件;使用新的設(shè)備樹文件,替換SD系統(tǒng)啟動卡rootfs分區(qū)“/boot”目錄下的對應(yīng)文件;使用新的內(nèi)核鏡像文件,保持文件名與原文件一致,替換SD系統(tǒng)啟動卡rootfs分區(qū)“/boot”目錄下的對應(yīng)文件,同時還需替換與新內(nèi)核版本對應(yīng)的內(nèi)核驅(qū)動壓縮包;先刪除SD系統(tǒng)啟動卡rootfs分區(qū)所有內(nèi)容,再使用新的文件系統(tǒng)壓縮包,將其解壓到SD系統(tǒng)啟動卡rootfs分區(qū),并將設(shè)備樹文件、內(nèi)核鏡像文件拷貝到SD系統(tǒng)啟動卡rootfs分區(qū)“/boot”目錄。 (2) 使用新的U-Boot鏡像文件、設(shè)備樹文件、內(nèi)核鏡像文件、文件系統(tǒng)壓縮包,保持文件名與原文件一致,替換SD系統(tǒng)啟動卡制作文件目錄下的對應(yīng)文件,然后重新制作SD系統(tǒng)啟動卡。 進(jìn)入Linux-4.4.19-mksdboot目錄下的mksdboot文件夾,執(zhí)行如下命令,運行SD系統(tǒng)啟動卡制作腳本。 Host# cd /home/tronlong/AM57xx/Linux-4.4.19-mksdboot/mksdboot/ Host# sudo ./mksdboot.sh --device /dev/sdb “/dev/sdb”為SD卡設(shè)備節(jié)點。請再次確認(rèn)SD卡設(shè)備節(jié)點一致,如錯誤輸入其他存儲介質(zhì)設(shè)備節(jié)點,將會造成存儲介質(zhì)數(shù)據(jù)損壞。 按回車鍵,進(jìn)行SD系統(tǒng)啟動卡制作,耗時約30 min,制卡耗時跟SD卡容量和接口性能有關(guān)。SD系統(tǒng)啟動卡制作完成,如下圖所示: 根據(jù)以上步驟制作的SD系統(tǒng)啟動卡默認(rèn)支持TL5728-EasyEVM開發(fā)板。開發(fā)板斷電,將開發(fā)板的撥碼開關(guān)撥為01000(1~5),這個檔位是Micro SD卡(MMC1)啟動模式。 使用Micro USB線連接PC和開發(fā)板的USB轉(zhuǎn)串口調(diào)試口,然后將開發(fā)板上電,串口終端會打印以下啟動信息,并可以成功登陸系統(tǒng),說明SD系統(tǒng)啟動卡制作成功,如下圖所示: 銷售郵箱:www.tronlong.com 技術(shù)論壇:www.51ele.net 線上商城:https://tronlong.taobao.com |