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