電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1578|回復(fù): 2
收起左側(cè)

Linux系統(tǒng)啟動卡制作及系統(tǒng)固化

[復(fù)制鏈接]

678

主題

902

帖子

8293

積分

高級會員

Rank: 5Rank: 5

積分
8293
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-9-17 16:07:34 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
前言本指導(dǎo)文檔適用開發(fā)環(huán)境:
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
Linux開發(fā)環(huán)境:Ubuntu 14.04.3 64bit
虛擬機:VMware14.1.1
Kernel:Linux-4.9.65、Linux-RT-4.9.65
Linux Processor SDK:ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05
評估板支持通過Linux系統(tǒng)啟動卡、eMMC、NAND FLASH三種方式啟動。本文檔主要演示Linux系統(tǒng)啟動卡制作,以及將Linux系統(tǒng)固化到eMMC的方法。將Linux系統(tǒng)固化到NAND FLASH的方法,另見文檔。


1.Linux系統(tǒng)啟動卡制卡工具包說明1.1制卡工具包版本說明
產(chǎn)品資料“4-軟件資料\Linux\Makesdboot\”目錄下的mksdboot_AA_BB_CC_DD.tar.gz壓縮文件是Linux系統(tǒng)啟動卡制卡工具包,主要包含U-Boot、Linux內(nèi)核、設(shè)備樹鏡像文件,以及文件系統(tǒng)壓縮包等內(nèi)容。AA_BB_CC_DD為制卡工具包的版本號,具體版本說明如下:
  • AA: U-Boot發(fā)布版本。詳細(xì)信息請查看“4-軟件資料\Linux\U-Boot\”目錄下的特性支持說明文件。
  • BB:Linux內(nèi)核發(fā)布版本。詳細(xì)信息請查看“4-軟件資料\Linux\Kernel\”目錄下的特性支持說明文件。
  • CC:文件系統(tǒng)發(fā)布版本。詳細(xì)信息請查看“4-軟件資料\Linux\Filesystem\”目錄下的特性支持說明文件。
  • DD:產(chǎn)品測試程序發(fā)布版本。在文件系統(tǒng)下執(zhí)行“cat /opt/product-test/version.txt”命令可查看具體版本信息。
1.2制卡工具包目錄說明
打開Ubuntu,將制卡工具包復(fù)制到“/home/tronlong/AM335x”工作目錄下,進(jìn)入制卡工具包所在路徑將其解壓到當(dāng)前目錄。工具包名稱需根據(jù)實際情況修改。
Host# cd /home/tronlong/AM335x/
Host# tar -xvf mksdboot_21_21_21_14.tar.gz -C .

圖 1

執(zhí)行以下命令,查看解壓后的制卡工具包具體內(nèi)容。
Host# tree -L 5 mksdboot_21_21_21_14

圖 2

boot目錄
  • MLO文件:U-Boot一級啟動鏡像。
  • u-boot.img文件:U-Boot二級啟動鏡像。
  • README.md文件:制卡工具包、U-Boot、Linux內(nèi)核、文件系統(tǒng)等版本信息說明文件。logo.bmp文件:LOGO圖片。
filesystem目錄
  • boot目錄:主要包含Linux內(nèi)核鏡像zImage、Linux-RT內(nèi)核鏡像zImage-rt、基礎(chǔ)設(shè)備樹dtb文件、Linux-RT內(nèi)核模塊壓縮包等。
  • firmware目錄:主要包含動態(tài)設(shè)備樹dtbo文件。
  • modules目錄:主要存放Linux內(nèi)核模塊壓縮包。
  • rootfs目錄:主要存放文件系統(tǒng)壓縮包。
  • tests目錄:主要存放產(chǎn)品測試文件壓縮包。
  • tools目錄:主要存放Shell腳本壓縮包。
mksdboot.sh文件:Linux系統(tǒng)啟動卡制作腳本文件。


1.3Linux-RT內(nèi)核版本Linux系統(tǒng)啟動卡制作說明
​​​​​​​制卡工具包包含Linux內(nèi)核鏡像、Linux內(nèi)核模塊,以及Linux-RT內(nèi)核鏡像、Linux-RT內(nèi)核模塊。默認(rèn)情況下,制作的是Linux內(nèi)核版本的Linux系統(tǒng)啟動卡。如需制作Linux-RT內(nèi)核版本的Linux系統(tǒng)啟動卡,請按照本小節(jié)方法替換內(nèi)核鏡像和內(nèi)核模塊,否則請?zhí)^此小節(jié)內(nèi)容。
進(jìn)入制卡工具包“filesystem/boot/”目錄,備份Linux內(nèi)核鏡像zImage,并使用Linux-RT內(nèi)核鏡像zImage-rt替換原來的zImage文件。
Host# cd filesystem/boot/
Host# cp zImage zImage-linux
Host# mv zImage-rt zImage
​

圖 3

將制卡工具包“filesystem/modules/”文件夾備份,并使用“filesystem/boot/modules-rt/”文件夾將其替換,命令如下。
Host# mv ../modules ../modules-linux
Host# mv modules-rt ../modules

圖 4

替換完成后,即可繼續(xù)參照后續(xù)章節(jié)方法制作Linux-RT內(nèi)核版本的Linux系統(tǒng)啟動卡。
​​​​​​​
2.Linux系統(tǒng)啟動卡制作評估板出廠時,默認(rèn)提供一張配套的Micro SD卡,此卡為可正常使用的Linux系統(tǒng)啟動卡。本章節(jié)主要說明Linux系統(tǒng)啟動卡的制作方法,可使用配套的Linux系統(tǒng)啟動卡,或者使用新的空白Micro SD卡。如下步驟使用配套的Linux系統(tǒng)啟動卡進(jìn)行操作,如使用空白Micro SD卡,步驟類似。
2.1 Micro SD卡掛載
將Micro SD卡通過讀卡器連接到PC機,Ubuntu系統(tǒng)識別后,一般會自動掛載Micro SD卡分區(qū),如下圖所示。

圖 5

如果Ubuntu系統(tǒng)沒有自動識別,請右擊右下角的USB大容量存儲設(shè)備圖標(biāo),再點擊“Connect (Disconnect from Host)”進(jìn)行識別。

圖 6

如果沒有以上圖標(biāo)或者連接不成功,請嘗試如下方法:
  • 請將Micro SD卡通過讀卡器插到PC機USB 2.0接口,而不是USB 3.0接口,部分版本VMware可能不兼容USB 3.0。
  • 請將Micro SD卡插在PC機上,然后重啟Ubuntu,在Ubuntu重啟過程中不要取出。Ubuntu系統(tǒng)重啟后,存儲設(shè)備圖標(biāo)會重新出現(xiàn)。​​​​​​​

2.2Micro SD卡設(shè)備節(jié)點名確認(rèn)
執(zhí)行如下命令,確認(rèn)Micro SD卡在Ubuntu系統(tǒng)的設(shè)備節(jié)點名。
Host#sudo fdisk -l

圖 7

可以看到Micro SD卡設(shè)備節(jié)點是“/dev/sdb”,并且有三個分區(qū),分別為sdb1、sdb2和sdb3分區(qū)。設(shè)備節(jié)點名字是可變的,一般插拔多次或者使用不同的卡插拔后,可能會顯示sdc或者sdd。

2.3PV工具安裝
PV(Pipe Viewer)是一種基于終端的工具,用于通過管道監(jiān)測數(shù)據(jù)的進(jìn)度。
為了更直觀地顯示系統(tǒng)啟動卡的制作進(jìn)度,Linux系統(tǒng)啟動卡制作過程中會使用到PV工具。請執(zhí)行如下命令通過網(wǎng)絡(luò)安裝PV工具,如未安裝PV工具將會導(dǎo)致系統(tǒng)啟動卡制作失敗。
Host#sudo apt-get install pv

圖 8

2.4Linux系統(tǒng)啟動卡制作
如下為Linux系統(tǒng)啟動卡制作命令。命令中“/dev/sdb”為Micro SD卡設(shè)備節(jié)點,如錯誤輸入其他存儲介質(zhì)設(shè)備節(jié)點,將會造成存儲介質(zhì)數(shù)據(jù)損壞,請確認(rèn)命令中設(shè)備節(jié)點無誤后,再執(zhí)行命令。
Host#sudo ./mksdboot.sh -d /dev/sdb

圖 9

根據(jù)提示按回車鍵,進(jìn)行Linux系統(tǒng)啟動卡制作。

圖 10

耗時約5~10min,Linux系統(tǒng)啟動卡制作完成。同時,系統(tǒng)會打印提示信息,如下圖所示。制作時間與Linux系統(tǒng)大小、Micro SD卡容量和接口性能有關(guān)。

圖 11

執(zhí)行如下命令,可看到新制作的Linux系統(tǒng)啟動卡共有BOOT、rootfs和rootfs-backup三個分區(qū)。其中BOOT分區(qū)為FAT32格式,rootfs分區(qū)和rootfs-backup分區(qū)為EXT4格式。FAT32格式分區(qū)在Windows系統(tǒng)下可見,EXT4格式分區(qū)在Windows系統(tǒng)下不可見,三個分區(qū)在Linux系統(tǒng)下均可見。

圖 12

BOOT分區(qū):主要存放U-Boot鏡像MLO、u-boot.img、LOGO等文件,從制卡工具包boot目錄復(fù)制而來。使用Linux系統(tǒng)啟動卡啟動系統(tǒng)時,將使用此目錄的MLO、u-boot.img文件啟動U-Boot。
rootfs分區(qū):存放文件系統(tǒng)。rootfs分區(qū)boot目錄主要存放內(nèi)核鏡像、基礎(chǔ)設(shè)備樹文件等文件,從制卡工具包“filesystem/boot/”目錄復(fù)制而來。使用Linux系統(tǒng)啟動卡啟動系統(tǒng)時,將使用此目錄的zImage、tl335x-evm.dtb文件啟動內(nèi)核。
rootfs-backup分區(qū):存放文件系統(tǒng)備份文件。系統(tǒng)固化時,將其內(nèi)容固化到eMMC或NAND FLASH。
點擊右下角的大容量存儲設(shè)備圖標(biāo),選擇“Disconnect(Connect to host)”選項(如下圖),斷開Micro SD卡和Ubuntu的連接,完成Linux系統(tǒng)啟動卡制作。

圖 13

2.5從Linux系統(tǒng)啟動卡啟動系統(tǒng)
評估板斷電,將Linux系統(tǒng)啟動卡插入評估板Micro SD卡槽,根據(jù)評估底板絲印將撥碼開關(guān)撥為00010(1~5),此檔位為SD卡啟動模式。使用Micro USB線連接評估板的USB TO UART3調(diào)試串口到PC機,然后將評估板上電啟動,串口調(diào)試終端會打印以下類似啟動信息。

圖 14


圖 15

系統(tǒng)啟動后會自動登陸root用戶,說明使用Linux系統(tǒng)啟動卡啟動評估板成功。

圖 16

可執(zhí)行如下命令查看當(dāng)前Linux內(nèi)核版本信息。
Host#cat /proc/version

圖 17 Linux內(nèi)核


圖 18 Linux-RT內(nèi)核

3.固化Linux系統(tǒng)(SPI FLASH+eMMC)本小節(jié)介紹Linux系統(tǒng)固化過程,固化過程包含固化U-Boot到SPI FLASH和固化文件系統(tǒng)到eMMC。固化成功后,評估板從SPI FLASH啟動U-Boot,然后從eMMC加載內(nèi)核、設(shè)備樹和文件系統(tǒng)。

3.1掛載信息和SPI FLASH分區(qū)說明
進(jìn)入評估板系統(tǒng)后執(zhí)行如下命令,分別查看系統(tǒng)啟動卡和eMMC掛載詳細(xì)信息,以及SPI FLASH分區(qū)信息。
Target#df -h
Target#cat /proc/mtd

圖 19

表 1
Linux系統(tǒng)啟動卡
BOOT分區(qū)
設(shè)備節(jié)點:/dev/mmcblk0p1
掛載路徑:/run/media/mmcblk0p1
rootfs-backup分區(qū)
設(shè)備節(jié)點:/dev/mmcblk0p3
掛載路徑:/run/media/mmcblk0p3
eMMC設(shè)備
BOOT分區(qū)
設(shè)備節(jié)點:/dev/mmcblk1p1
掛載路徑:/run/media/mmcblk1p1
rootfs分區(qū)
設(shè)備節(jié)點:/dev/mmcblk1p2
掛載路徑:/run/media/mmcblk1p2
data分區(qū)(用戶分區(qū))
設(shè)備節(jié)點:/dev/mmcblk1p3
掛載路徑:/run/media/mmcblk1p3
SPI FLASH
MTD0
spi.spl:存放U-Boot第一階段啟動文件MLO
MTD1
spi.u-boot:存放U-Boot第二階段啟動文件u-boot.img
MTD2
spi.env:存放環(huán)境變量
MTD3
spi.devicetree:存放基礎(chǔ)設(shè)備樹文件(暫未使用)
MTD4
spi.kernel:存放內(nèi)核鏡像(暫未使用)


3.2固化Linux系統(tǒng)
Linux系統(tǒng)啟動卡制作時,已將系統(tǒng)固化的腳本文件mkemmcboot.sh復(fù)制到了Linux系統(tǒng)啟動卡文件系統(tǒng)的“/opt/tools/make-system”目錄下。

圖 20

執(zhí)行如下命令進(jìn)行一鍵固化。
Target#/opt/tools/make-system/mkemmcboot.sh

圖 21

腳本會進(jìn)行如下操作:
  • 擦除SPI FLASH。
  • 將eMMC格式化為BOOT、rootfs和data分區(qū)。
  • 將Linux系統(tǒng)啟動卡BOOT分區(qū)中的U-Boot固化到SPI FLASH對應(yīng)分區(qū)。
  • 將Linux系統(tǒng)啟動卡BOOT分區(qū)中的LOGO文件固化到eMMC的BOOT分區(qū)。
  • 將Linux系統(tǒng)啟動卡rootfs-backup分區(qū)中的文件系統(tǒng)固化到eMMC的rootfs分區(qū),[url=]包括內(nèi)核鏡像和基礎(chǔ)設(shè)備樹文件。[/url]
用時約3 min, Linux系統(tǒng)固化成功,同時串口調(diào)試終端打印提示信息。
備注:腳本會將內(nèi)核鏡像、基礎(chǔ)設(shè)備樹文件固化到SPI FLASH中,實際啟動并不會從SPI FLASH中加載內(nèi)核鏡像和基礎(chǔ)設(shè)備樹文件。

3.3從SPI+eMMC啟動系統(tǒng)
評估板斷電,將Linux系統(tǒng)啟動卡從評估板Micro SD卡槽中取出,根據(jù)評估底板絲印將撥碼開關(guān)撥為10010(1~5),此檔位為SPI FLASH啟動模式。評估板上電,串口調(diào)試終端將會打印如下類似啟動信息。

圖 22


圖 23


3.4動態(tài)設(shè)備樹dtbo文件加載方法
評估板設(shè)備樹文件包含基礎(chǔ)設(shè)備樹dtb文件和動態(tài)設(shè)備樹dtbo文件,Linux系統(tǒng)啟動時會自動加載dtb文件,dtbo文件需要在文件系統(tǒng)下進(jìn)行加載。本章節(jié)以tl335x-evm-lcd-overlay.dtbo動態(tài)設(shè)備樹為例,演示動態(tài)設(shè)備樹文件的方法。
Linux系統(tǒng)啟動卡制作時,已將動態(tài)設(shè)備樹dtbo文件拷貝到文件系統(tǒng)的“/lib/firmware/”目錄下。將需要加載其他dtbo文件,請將其拷貝到文件系統(tǒng)“/lib/firmware/”目錄下。

圖 24

文件系統(tǒng)下依次執(zhí)行如下命令,加載tl335x-evm-lcd-overlay.dtbo動態(tài)設(shè)備樹文件。
Target#mkdir /configfs //創(chuàng)建configfs文件夾,如已存在,則無需重復(fù)創(chuàng)建
Target#mount -t configfs configfs /configfs
Target#mkdir /configfs/device-tree/overlays/full //創(chuàng)建full目錄,根據(jù)實際需要修改
Target#echo -n "tl335x-evm-lcd-overlay.dtbo" > /configfs/device-tree/overlays/full/path

圖 25

正常加載動態(tài)設(shè)備樹文件后,系統(tǒng)會打印驅(qū)動加載的相關(guān)信息,部分驅(qū)動也有可能不打印任何信息?蓤(zhí)行如下命令查看動態(tài)設(shè)備樹文件的加載狀態(tài)。
Target#cat /configfs/device-tree/overlays/full/status
Target#cat /configfs/device-tree/overlays/full/path

圖 26

嵌入式DSP、ARM、FPGA多核技術(shù)開發(fā),學(xué)習(xí)資料下載:http://site.tronlong.com/pfdownload
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表