亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1471
2022-05-30
前言
本指導文檔適用開發環境:
Windows開發環境:Windows 7 64bit、Windows 10 64bit
linux開發環境: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系統啟動卡、eMMC、NAND FLASH三種方式啟動。本文檔主要演示Linux系統啟動卡制作,以及將Linux系統固化到eMMC的方法。將Linux系統固化到NAND FLASH的方法,另見文檔。
1.Linux系統啟動卡制卡工具包說明
1.1制卡工具包版本說明
產品資料“4-軟件資料\Linux\Makesdboot\”目錄下的mksdboot_AA_BB_CC_DD.tar.gz壓縮文件是Linux系統啟動卡制卡工具包,主要包含U-Boot、Linux內核、設備樹鏡像文件,以及文件系統壓縮包等內容。AA_BB_CC_DD為制卡工具包的版本號,具體版本說明如下:
AA: U-Boot發布版本。詳細信息請查看“4-軟件資料\Linux\U-Boot\”目錄下的特性支持說明文件。
BB:Linux內核發布版本。詳細信息請查看“4-軟件資料\Linux\Kernel\”目錄下的特性支持說明文件。
CC:文件系統發布版本。詳細信息請查看“4-軟件資料\Linux\Filesystem\”目錄下的特性支持說明文件。
DD:產品測試程序發布版本。在文件系統下執行“cat /opt/product-test/version.txt”命令可查看具體版本信息。
1.2制卡工具包目錄說明
打開Ubuntu,將制卡工具包復制到“/home/tronlong/AM335x”工作目錄下,進入制卡工具包所在路徑將其解壓到當前目錄。工具包名稱需根據實際情況修改。
Host# cd /home/tronlong/AM335x/
Host# tar -xvf mksdboot_21_21_21_14.tar.gz -C .
圖 1
執行以下命令,查看解壓后的制卡工具包具體內容。
Host# tree -L 5 mksdboot_21_21_21_14
圖 2
boot目錄
MLO文件:U-Boot一級啟動鏡像。
u-boot.img文件:U-Boot二級啟動鏡像。
README.md文件:制卡工具包、U-Boot、Linux內核、文件系統等版本信息說明文件。logo.bmp文件:LOGO圖片。
filesystem目錄
boot目錄:主要包含Linux內核鏡像zImage、Linux-RT內核鏡像zImage-rt、基礎設備樹dtb文件、Linux-RT內核模塊壓縮包等。
firmware目錄:主要包含動態設備樹dtbo文件。
modules目錄:主要存放Linux內核模塊壓縮包。
rootfs目錄:主要存放文件系統壓縮包。
tests目錄:主要存放產品測試文件壓縮包。
tools目錄:主要存放Shell腳本壓縮包。
mksdboot.sh文件:Linux系統啟動卡制作腳本文件。
1.3Linux-RT內核版本Linux系統啟動卡制作說明
制卡工具包包含Linux內核鏡像、Linux內核模塊,以及Linux-RT內核鏡像、Linux-RT內核模塊。默認情況下,制作的是Linux內核版本的Linux系統啟動卡。如需制作Linux-RT內核版本的Linux系統啟動卡,請按照本小節方法替換內核鏡像和內核模塊,否則請跳過此小節內容。
進入制卡工具包“filesystem/boot/”目錄,備份Linux內核鏡像zImage,并使用Linux-RT內核鏡像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
替換完成后,即可繼續參照后續章節方法制作Linux-RT內核版本的Linux系統啟動卡。
2.Linux系統啟動卡制作
評估板出廠時,默認提供一張配套的Micro SD卡,此卡為可正常使用的Linux系統啟動卡。本章節主要說明Linux系統啟動卡的制作方法,可使用配套的Linux系統啟動卡,或者使用新的空白Micro SD卡。如下步驟使用配套的Linux系統啟動卡進行操作,如使用空白Micro SD卡,步驟類似。
2.1?Micro?SD卡掛載
將Micro SD卡通過讀卡器連接到PC機,Ubuntu系統識別后,一般會自動掛載Micro?SD卡分區,如下圖所示。
圖 5
如果Ubuntu系統沒有自動識別,請右擊右下角的USB大容量存儲設備圖標,再點擊“Connect?(Disconnect from Host)”進行識別。
圖 6
如果沒有以上圖標或者連接不成功,請嘗試如下方法:
請將Micro?SD卡通過讀卡器插到PC機USB 2.0接口,而不是USB 3.0接口,部分版本VMware可能不兼容USB 3.0。
請將Micro?SD卡插在PC機上,然后重啟Ubuntu,在Ubuntu重啟過程中不要取出。Ubuntu系統重啟后,存儲設備圖標會重新出現。
2.2Micro SD卡設備節點名確認
執行如下命令,確認Micro?SD卡在Ubuntu系統的設備節點名。
Host# sudo fdisk -l
圖 7
可以看到Micro?SD卡設備節點是“/dev/sdb”,并且有三個分區,分別為sdb1、sdb2和sdb3分區。設備節點名字是可變的,一般插拔多次或者使用不同的卡插拔后,可能會顯示sdc或者sdd。
2.3PV工具安裝
PV(Pipe Viewer)是一種基于終端的工具,用于通過管道監測數據的進度。
為了更直觀地顯示系統啟動卡的制作進度,Linux系統啟動卡制作過程中會使用到PV工具。請執行如下命令通過網絡安裝PV工具,如未安裝PV工具將會導致系統啟動卡制作失敗。
Host# sudo apt-get install pv
圖 8
2.4Linux系統啟動卡制作
如下為Linux系統啟動卡制作命令。命令中“/dev/sdb”為Micro?SD卡設備節點,如錯誤輸入其他存儲介質設備節點,將會造成存儲介質數據損壞,請確認命令中設備節點無誤后,再執行命令。
Host# sudo ./mksdboot.sh -d /dev/sdb
圖 9
根據提示按回車鍵,進行Linux系統啟動卡制作。
圖 10
耗時約5~10min,Linux系統啟動卡制作完成。同時,系統會打印提示信息,如下圖所示。制作時間與Linux系統大小、Micro?SD卡容量和接口性能有關。
圖 11
執行如下命令,可看到新制作的Linux系統啟動卡共有BOOT、rootfs和rootfs-backup三個分區。其中BOOT分區為FAT32格式,rootfs分區和rootfs-backup分區為EXT4格式。FAT32格式分區在Windows系統下可見,EXT4格式分區在Windows系統下不可見,三個分區在Linux系統下均可見。
圖 12
BOOT分區:主要存放U-Boot鏡像MLO、u-boot.img、LOGO等文件,從制卡工具包boot目錄復制而來。使用Linux系統啟動卡啟動系統時,將使用此目錄的MLO、u-boot.img文件啟動U-Boot。
rootfs分區:存放文件系統。rootfs分區boot目錄主要存放內核鏡像、基礎設備樹文件等文件,從制卡工具包“filesystem/boot/”目錄復制而來。使用Linux系統啟動卡啟動系統時,將使用此目錄的zImage、tl335x-evm.dtb文件啟動內核。
rootfs-backup分區:存放文件系統備份文件。系統固化時,將其內容固化到eMMC或NAND FLASH。
點擊右下角的大容量存儲設備圖標,選擇“Disconnect(Connect to host)”選項(如下圖),斷開Micro?SD卡和Ubuntu的連接,完成Linux系統啟動卡制作。
圖 13
2.5從Linux系統啟動卡啟動系統
評估板斷電,將Linux系統啟動卡插入評估板Micro SD卡槽,根據評估底板絲印將撥碼開關撥為00010(1~5),此檔位為SD卡啟動模式。使用Micro USB線連接評估板的USB TO UART3調試串口到PC機,然后將評估板上電啟動,串口調試終端會打印以下類似啟動信息。
圖 14
圖 15
系統啟動后會自動登陸root用戶,說明使用Linux系統啟動卡啟動評估板成功。
圖 16
可執行如下命令查看當前Linux內核版本信息。
Host# cat /proc/version
圖 17?Linux內核
圖 18?Linux-RT內核
3.固化Linux系統(SPI FLASH+eMMC)
本小節介紹Linux系統固化過程,固化過程包含固化U-Boot到SPI FLASH和固化文件系統到eMMC。固化成功后,評估板從SPI FLASH啟動U-Boot,然后從eMMC加載內核、設備樹和文件系統。
3.1掛載信息和SPI FLASH分區說明
進入評估板系統后執行如下命令,分別查看系統啟動卡和eMMC掛載詳細信息,以及SPI FLASH分區信息。
Target# df?-h
Target# cat /proc/mtd
圖 19
表 1
Linux系統啟動卡
BOOT分區
設備節點:/dev/mmcblk0p1
掛載路徑:/run/media/mmcblk0p1
rootfs-backup分區
設備節點:/dev/mmcblk0p3
掛載路徑:/run/media/mmcblk0p3
eMMC設備
BOOT分區
設備節點:/dev/mmcblk1p1
掛載路徑:/run/media/mmcblk1p1
rootfs分區
設備節點:/dev/mmcblk1p2
掛載路徑:/run/media/mmcblk1p2
data分區(用戶分區)
設備節點:/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:存放環境變量
MTD3
spi.devicetree:存放基礎設備樹文件(暫未使用)
MTD4
spi.kernel:存放內核鏡像(暫未使用)
3.2固化Linux系統
Linux系統啟動卡制作時,已將系統固化的腳本文件mkemmcboot.sh復制到了Linux系統啟動卡文件系統的“/opt/tools/make-system”目錄下。
圖 20
執行如下命令進行一鍵固化。
Target# /opt/tools/make-system/mkemmcboot.sh
圖 21
腳本會進行如下操作:
擦除SPI FLASH。
將eMMC格式化為BOOT、rootfs和data分區。
將Linux系統啟動卡BOOT分區中的U-Boot固化到SPI FLASH對應分區。
將Linux系統啟動卡BOOT分區中的LOGO文件固化到eMMC的BOOT分區。
將Linux系統啟動卡rootfs-backup分區中的文件系統固化到eMMC的rootfs分區,包括內核鏡像和基礎設備樹文件。
用時約3 min, Linux系統固化成功,同時串口調試終端打印提示信息。
備注:腳本會將內核鏡像、基礎設備樹文件固化到SPI FLASH中,實際啟動并不會從SPI FLASH中加載內核鏡像和基礎設備樹文件。
3.3從SPI+eMMC啟動系統
評估板斷電,將Linux系統啟動卡從評估板Micro SD卡槽中取出,根據評估底板絲印將撥碼開關撥為10010(1~5),此檔位為SPI FLASH啟動模式。評估板上電,串口調試終端將會打印如下類似啟動信息。
圖 22
圖 23
3.4動態設備樹dtbo文件加載方法
評估板設備樹文件包含基礎設備樹dtb文件和動態設備樹dtbo文件,Linux系統啟動時會自動加載dtb文件,dtbo文件需要在文件系統下進行加載。本章節以tl335x-evm-lcd-overlay.dtbo動態設備樹為例,演示動態設備樹文件的方法。
Linux系統啟動卡制作時,已將動態設備樹dtbo文件拷貝到文件系統的“/lib/firmware/”目錄下。將需要加載其他dtbo文件,請將其拷貝到文件系統“/lib/firmware/”目錄下。
圖 24
文件系統下依次執行如下命令,加載tl335x-evm-lcd-overlay.dtbo動態設備樹文件。
Target# mkdir /configfs //創建configfs文件夾,如已存在,則無需重復創建
Target# mount -t configfs configfs /configfs
Target# mkdir /configfs/device-tree/overlays/full //創建full目錄,根據實際需要修改
Target# echo -n "tl335x-evm-lcd-overlay.dtbo"?> /configfs/device-tree/overlays/full/path
圖 25
正常加載動態設備樹文件后,系統會打印驅動加載的相關信息,部分驅動也有可能不打印任何信息。可執行如下命令查看動態設備樹文件的加載狀態。
Target# cat /configfs/device-tree/overlays/full/status
Target# cat /configfs/device-tree/overlays/full/path
圖 26
Linux Ubuntu
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。