本指導文檔適用開發環境:
windows開發環境:Windows 7 64bit、Windows 10 64bit
linux開發環境:Ubuntu 14.04.3 64bit
虛擬機:VMware14.1.1
U-Boot:U-Boot-2020.04
Kernel:Linux-5.4.70
Linux SDK:5.4.70_2.3.0
評估板支持通過Linux系統啟動卡和板載eMMC存儲設備兩種方式啟動。本文檔主要演示Linux系統啟動卡制作,以及將Linux系統固化至eMMC的方法。
1 Linux系統啟動卡制卡工具包說明
1.1 制卡工具包版本說明
產品資料“4-軟件資料LinuxMakesdboot”目錄下的mksdboot_AA_BB_CC.tar.gz壓縮文件是Linux系統啟動卡制卡工具包,主要包含U-Boot、Linux內核、設備樹鏡像文件,以及文件系統壓縮包等內容。AA_BB_CC為制卡工具包的版本號,具體版本說明如下。
(1) AA:U-Boot發布版本。詳細信息請查看“4-軟件資料LinuxU-Boot”目錄下的特性支持說明文件。
(2) BB:Linux內核發布版本。詳細信息請查看“4-軟件資料LinuxKernel”目錄下的特性支持說明文件。
(3) CC:文件系統發布版本。詳細信息請查看“4-軟件資料LinuxFilesystem”目錄下的特性支持說明文件。
1.2 制卡工具包目錄說明
打開Ubuntu,將制卡工具包復制到"/home/tronlong/IMX8/"工作目錄下,進入制卡工具包所在路徑執行如下命令將其解壓至當前目錄,工具包名稱請根據實際情況修改。
Host# tar -xvf mksdboot_10_10_10.tar.gz -C .
圖 1
執行如下命令,查看解壓后的制卡工具包具體內容。
Host# tree -L 3 mksdboot_10_10_10
圖 2
(1) boot目錄
Ø flash.bin:U-Boot啟動鏡像。
Ø Image:Linux內核鏡像。
Ø *.dtb:基礎設備樹文件。
Ø README.md文件:制卡工具包、U-Boot、Linux內核、文件系統等版本信息說明文件。
(2) filesystem目錄
Ø modules目錄:主要存放Linux內核模塊壓縮包。
Ø rootfs目錄:主要存放文件系統壓縮包。
Ø tools目錄:存放Shell腳本。
(3) mksdboot.sh文件:Linux系統啟動卡制作腳本文件。
2 Linux系統啟動卡制作
評估板出廠時,默認提供一張配套的Micro SD卡,此卡為可正常使用的Linux系統啟動卡。本章節主要說明Linux系統啟動卡的制作方法,可使用配套的Linux系統啟動卡,或者使用新的空白Micro SD卡。如下步驟使用配套的Linux系統啟動卡進行操作,如使用空白Micro SD卡,步驟類似。
2.1 Micro SD卡掛載
將Micro SD卡通過讀卡器連接至PC機,Ubuntu系統識別后,一般會自動掛載Micro SD卡分區,如下圖所示。
圖 3
如Ubuntu系統未自動識別,請右擊右下角的USB大容量存儲設備圖標,再點擊"Connect (Disconnect from Host)"進行識別。
圖 4
如無以上圖標或者連接不成功,請嘗試如下方法:
(1) 請將Micro SD卡通過讀卡器插到PC機USB 2.0接口,而不是USB 3.0接口,部分版本VMware可能不兼容USB 3.0。
(2) 請將Micro SD卡插在PC機上,然后重啟Ubuntu,在Ubuntu重啟過程中不要取出。Ubuntu系統重啟后,存儲設備圖標會重新出現。
2.2 Micro SD卡設備節點名確認
執行如下命令,確認Micro SD卡在Ubuntu系統的設備節點名。
Host# sudo fdisk -l
圖5
可看到Micro SD卡設備節點是"/dev/sdb",并且有三個分區,分別為sdb1、sdb2和sdb3分區。設備節點名字是可變的,一般插拔多次或者使用不同的卡插拔后,可能會顯示sdc或者sdd。
2.3 PV工具安裝
PV(Pipe Viewer)是一種基于終端的工具,用于通過管道監測數據的進度。
為了更直觀地顯示系統啟動卡的制作進度,Linux系統啟動卡制作過程中會使用到PV工具。請執行如下命令通過網絡安裝PV工具,如未安裝PV工具將會導致系統啟動卡制作失敗。
Host# sudo apt-get install pv
圖 6
2.4 Linux系統啟動卡制作
如下為Linux系統啟動卡制作命令。命令中"/dev/sdb"為Micro SD卡設備節點,如錯誤輸入其他存儲介質設備節點,將會造成存儲介質數據損壞,請確認命令中設備節點無誤后,再執行命令。
Host# sudo ./mksdboot.sh -d /dev/sdb
圖 7
根據提示按回車鍵,進行Linux系統啟動卡制作。
圖 8
耗時約15~25min,Linux系統啟動卡制作完成。同時,系統會打印提示信息,如下圖所示。制作時間與Linux系統大小、Micro SD卡容量和接口性能有關。
圖 9
執行如下命令,可看到新制作的Linux系統啟動卡共有BOOT、rootfs和rootfs-backup三個分區。其中BOOT分區為FAT32格式,rootfs分區和rootfs-backup分區為EXT4格式。FAT32格式分區在Windows系統下可見,EXT4格式分區在Windows系統下不可見,三個分區在Linux系統下均可見。
圖 10
BOOT分區:主要存放U-Boot啟動鏡像flash.bin、內核鏡像Image、基礎設備樹文件等文件,從制卡工具包boot目錄復制而來。使用Linux系統啟動卡啟動系統時,將使用此目錄的flash.bin文件啟動U-Boot。
rootfs分區:存放文件系統。
rootfs-backup分區:存放備份的文件系統。系統固化時,將其內容固化至eMMC文件系統分區。
點擊右下角的大容量存儲設備圖標,選擇"Disconnect(Connect to host)"選項(如下圖),斷開Micro SD卡和Ubuntu的連接,完成Linux系統啟動卡制作。
圖 11
2.5 從Linux系統啟動卡啟動系統
評估板斷電,將Linux系統啟動卡插入評估板Micro SD卡槽,根據評估底板絲印將撥碼開關撥為11100(1~5),此檔位為系統啟動卡啟動模式。使用Micro USB線連接評估板的USB TO UART2調試串口至PC機,然后將評估板上電啟動,串口調試終端會打印如下類似啟動信息。
圖 12
圖 13
系統啟動后會自動登陸root用戶,說明使用Linux系統啟動卡啟動評估板成功。
圖 14
可執行如下命令查看當前Linux內核版本信息。
Host# cat /proc/version
圖 15
3 eMMC固化Linux系統
3.1 系統啟動卡和eMMC掛載信息說明
進入評估板系統后執行如下命令,查看Linux系統啟動卡和eMMC掛載詳細信息。
Target# df -h
圖 16
表 1
Linux系統啟動卡 |
BOOT分區 |
設備節點:/dev/mmcblk1p1 |
掛載路徑:/run/media/mmcblk1p1 |
||
rootfs-backup分區 |
設備節點:/dev/mmcblk1p3 |
|
掛載路徑:/run/media/mmcblk1p3 |
||
eMMC設備 |
BOOT分區 |
設備節點:/dev/mmcblk0p1 |
掛載路徑:/run/media/mmcblk0p1 |
||
rootfs分區 |
設備節點:/dev/mmcblk0p2 |
|
掛載路徑:/run/media/mmcblk0p2 |
||
data分區(用戶分區) |
設備節點:/dev/mmcblk0p3 |
|
掛載路徑:/run/media/mmcblk0p3 |
3.2 eMMC固化Linux系統
Linux系統啟動卡制作時,已將eMMC固化系統的腳本文件mkemmcboot.sh復制到了Linux系統啟動卡文件系統的"/opt/tools/"目錄下。
圖 17
執行如下命令進行一鍵固化。
Target# /opt/tools/mkemmcboot.sh
圖 18
腳本會進行如下操作:
(1) 將Linux系統啟動卡BOOT分區中的文件固化至eMMC的BOOT分區,包括U-Boot啟動鏡像、內核鏡像和基礎設備樹文件。
(2) 將Linux系統啟動卡rootfs-backup分區中的文件系統固化至eMMC的rootfs分區。
用時約5min,eMMC成功固化Linux系統,同時串口調試終端打印提示信息。
3.3 從eMMC啟動系統
評估板斷電,將Linux系統啟動卡從評估板Micro SD卡槽中取出,根據評估底板絲印將撥碼開關撥為00010(1~5),此檔位為eMMC啟動模式。評估板上電,串口調試終端將會打印如下類似啟動信息。
圖 19
圖 20