前 言
本文檔主要演示Linux系統啟動卡制作,以及將Linux系統鏡像固化至eMMC的方法,旨在幫助開發者和測試人員快速完成產品方案驗證與性能評估中的系統固化環節。
開發環境
Windows開發環境:Windows10 64bit
Linux開發環境:VMware16.2.5、Ubuntu22.04.464bit
LinuxSDK:LinuxSDK-[版本號](基于SDK_2025.1)
評估板系統版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02
術語表
為便于閱讀,下表對文檔出現的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。
表 1
注意事項
(1)無特殊說明情況下,默認使用USB TO UART1接口作為調試串口,通過路由器與PC機進行網絡連接。
(2)評估板出廠時可能未固化最新系統鏡像至eMMC存儲。為確保您體驗到我司提供的最新系統功能,建議您參考本文檔,按照指引將最新系統鏡像固化至eMMC。
Linux系統啟動卡制卡工具包說明
制卡工具包版本說明
產品資料“4-軟件資料LinuxMakesdboot”目錄下的mksdboot_AA_BB_CC_DD.tar.gz壓縮文件是Linux系統啟動卡制卡工具包,主要包含FSBL、U-Boot、Linux內核鏡像文件,以及文件系統壓縮包等內容。AA_BB_CC_DD為制卡工具包的版本號,具體版本說明如下:
(1)AA:FSBL發布版本。詳細信息請查看“4-軟件資料LinuxFSBL”目錄下的特性支持說明文件。
(2)BB:U-Boot發布版本。詳細信息請查看“4-軟件資料LinuxU-Boot”目錄下的特性支持說明文件。
(3)CC:Linux內核發布版本。詳細信息請查看“4-軟件資料LinuxKernel”目錄下的特性支持說明文件。
(4)DD:文件系統發布版本。詳細信息請查看“4-軟件資料LinuxFilesystem”目錄下的特性支持說明文件。
制卡工具包目錄說明
打開Ubuntu,將制卡工具包拷貝至“/home/tronlong/DR1/”工作目錄下,進入制卡工具包所在路徑,執行如下命令將其解壓至當前目錄。工具包名稱需根據實際情況修改。
Host# cd /home/tronlong/DR1/
Host# tar -xf mksdboot_10_10_10_10.tar.gz
圖 1
執行如下命令,查看解壓后的制卡工具包具體內容。
Host# tree -L 5 mksdboot_10_10_10_10
圖 2
(1)boot目錄
- BOOT.bin文件:由FSBL和U-Boot鏡像合并生成,用于初始化PS端外設和U-Boot啟動。
- README.md文件:制卡工具包、FSBL、U-Boot、Linux內核、文件系統等版本信息說明文件。
(2)filesystem目錄
- boot目錄:主要存放Linux內核、基礎設備樹。
- rootfs目錄:主要存放文件系統壓縮包。
- tools目錄:主要存放eMMC固化腳本、NOR SPI FLASH固化腳本。
(3)mksdboot.sh文件:Linux系統啟動卡制作腳本文件。
Linux系統啟動卡制作
評估板出廠時,默認提供一張配套的Micro SD卡,此卡為可正常使用的Linux系統啟動卡。本章節主要說明Linux系統啟動卡的制作方法,可使用配套的Linux系統啟動卡,或者使用新的空白Micro SD卡。如下步驟使用配套的Linux系統啟動卡進行操作,如使用空白Micro SD卡,步驟類似。
MicroSD卡掛載
將Micro SD卡通過讀卡器連接至PC機,Ubuntu系統識別后,一般會自動掛載MicroSD卡分區,如下所示。
圖 3
若Ubuntu系統未自動識別,請右擊右下角的USB大容量存儲設備圖標,再點擊“Connect(Disconnect from Host)”進行識別。
圖 4
如無以上圖標或者連接不成功,請嘗試如下方法:
(1)請將MicroSD卡通過讀卡器插至PC機USB2.0接口,而不是USB3.0接口,部分版本VMware可能不兼容USB3.0。
(2)請將MicroSD卡通過讀卡器插至PC機USB2.0接口,然后重啟Ubuntu,在Ubuntu重啟過程中不要取出。Ubuntu系統重啟后,存儲設備圖標會重新出現。
Micro SD卡設備節點名確認
執行如下命令,確認MicroSD卡在Ubuntu系統的設備節點名。
Host# sudo fdisk -l
圖 5
可看到MicroSD卡設備節點是"/dev/sdb",并且有三個分區,分別為sdb1、sdb2和sdb3分區。設備節點名字是可變的,一般插拔多次或者使用不同的卡插拔后,可能會顯示sdc或者sdd。
PV工具安裝
PV(Pipe Viewer)是一種基于終端的工具,用于通過管道監測數據的進度。
為了更直觀地顯示系統啟動卡的制作進度,Linux系統啟動卡制作過程中會使用PV工具。請執行如下命令通過網絡安裝PV工具,如未安裝PV工具將會導致系統啟動卡制作失敗。
Host# sudo apt-get install pv
圖 6
Linux系統啟動卡制作
如下為Linux系統啟動卡制作命令。命令中"/dev/sdb"為MicroSD卡設備節點,如錯誤輸入其他存儲介質設備節點,將會造成存儲介質數據損壞,請確認命令中設備節點無誤后,再執行命令。
進入制卡工具包目錄,執行如下命令。
Host# sudo ./mksdboot.sh -d /dev/sdb
圖 7
根據提示按回車鍵,進行Linux系統啟動卡制作。
圖 8
耗時約2min,Linux系統啟動卡制作完成。同時,系統會打印提示信息,如下所示。制作時間與Linux系統大小、MicroSD卡容量和接口性能有關。
圖 9
可看到新制作的Linux系統啟動卡共有BOOT、rootfs和rootfs-backup三個分區。其中BOOT分區為FAT32格式,rootfs分區和rootfs-backup分區為EXT4格式。FAT32格式分區在Windows系統下可見,EXT4格式分區在Windows系統下不可見,三個分區在Linux系統下均可見。
圖 10
(1)BOOT分區:主要存放BOOT.bin等文件,從制卡工具包boot目錄拷貝而來。使用Linux系統啟動卡啟動系統時,將使用此目錄的BO0T.bin文件啟動FSBL和U-Boot。
(2)rootfs分區:存放文件系統。rootfs分區boot目錄主要存放內核鏡像、基礎設備樹文件等,從制卡工具包"filesystem/boot/"目錄拷貝而來。使用Linux系統啟動卡啟動系統時,將使用此目錄的kernel.bin、dtb.bin文件啟動內核。
(3)rootfs-backup分區:存放備份的文件系統。系統固化時,將其內容固化至eMMC文件系統分區。
圖 11
從Linux系統啟動卡啟動系統
評估板斷電,將Linux系統啟動卡插入評估板Micro SD卡槽,根據評估底板絲印將啟動方式選擇撥碼開關撥為011(1~3),此檔位為Micro SD啟動模式。使用Type-C線連接評估板的USB TOUART1調試串口至PC機,然后將評估板上電啟動,串口調試終端會打印如下類似啟動信息。
圖 12
系統啟動后會自動登陸root用戶,說明使用Linux系統啟動卡啟動評估板成功。
圖 13
固化Linux系統至eMMC
本小節介紹Linux系統固化過程,固化過程包含固化FSBL、U-Boot、內核、設備樹、文件系統至eMMC。
固化Linux系統
Linux系統啟動卡制作時,已將固化系統的腳本文件mkemmcboot.sh拷貝至Linux系統啟動卡文件系統的“/opt/tools/”目錄下。
Target# ls /opt/tools/mkemmcboot.sh
圖 14
執行如下命令進行一鍵固化,用時約2min后固化Linux系統至eMMC,同時串口調試終端打印提示信息。
Target# /opt/tools/mkemmcboot.sh
圖 15
腳本會進行如下操作:
(1)清除U-Boot環境變量。
(2)將eMMC格式化為BOOT、rootfs分區。
(3)將Linux系統啟動卡BOOT分區中的u-boot.img、tiboot3.bin、tispl.bin固化至eMMC對應分區。
(4)將Linux系統啟動卡rootfs-backup分區中的文件系統固化至eMMC的rootfs分區,包括內核鏡像和基礎設備樹文件。
從eMMC啟動系統
評估板斷電,將Linux系統啟動卡從評估板Micro SD卡槽中取出,根據評估底板絲印將啟動方式選擇撥碼開關撥為111(1~3),此檔位為eMMC啟動模式。使用Type-C線連接評估板的USB TOUART1調試串口至PC機,然后將評估板上電啟動,串口調試終端會打印如下類似啟動信息。
圖 16
系統啟動后會自動登陸root用戶,說明從eMMC啟動評估板成功。
圖 17
Linux系統啟動卡和eMMC分區說明
Linux系統啟動卡分區說明
評估板啟動,進入評估板系統后執行如下命令,查看Linux系統啟動卡掛載信息。
Target# fdisk-l
圖 18
表 2
eMMC分區說明
執行如下命令,查看eMMC掛載信息。
Target# fdisk-l
Target# dmesg | grep boot
圖 19
圖 20
表 3
eMMC剩余空間使用說明
為了保證文件系統健壯性,一般不推薦使用rootfs分區做頻繁的數據讀寫,建議將eMMC剩余空間重新劃分分區作為日常數據儲存,若無需重新劃分eMMC分區可跳過此步驟。
修改固化系統的腳本文件重新劃分
如需通過修改固化系統的腳本文件重新劃分eMMC剩余空間使用,請從Linux系統啟動卡啟動系統,然后執行如下命令,備份原有固化系統的腳本文件mkemmcboot.sh,修改mkemmcboot.sh內容。
固化系統的腳本文件mkemmcboot.sh位于Linux系統啟動卡文件系統的"/opt/tools/"目錄下。請先備份默認的mkemmcboot.sh做卡腳本。
Target# cp /opt/tools/mkemmcboot.sh /opt/tools/mkemmcboot-bak.sh
圖 21
執行如下命令,修改mkemmcboot.sh腳本。
Target# vi/opt/tools/mkemmcboot.sh
圖 22
添加內容如下:
parted -s ${EMMC_DEVICE} unit MiB mkpart primary ext4 -- ${partition_end} -2 //在第123行添加
mkfs.ext4 -F -L rootfs ${partition_list[2]}
sleep 1 //在第144和145行添加
修改內容如下:
partition_list=(${EMMC_DEVICE}p1 ${EMMC_DEVICE}p2 ${EMMC_DEVICE}p3) //在第127行修改
圖 23
圖 24
執行腳本制作分區。
Target# /opt/tools/mkemmcboot.sh
圖 25
圖 26
執行如下命令,查看劃分結果。
Target# fdisk -l
圖 27
圖 28
如需恢復默認的mkemmcboot.sh腳本,請執行如下命令。
Target# cp /opt/tools/mkemmcboot-bak.sh /opt/tools/mkemmcboot.sh
圖 29
通過分區工具重新劃分
若在此前劃分了空閑分區(/dev/mmcblk1p3),請執行默認的mkemmcboot.sh腳本重新制作eMMC分區。
Target# /opt/tools/mkemmcboot.sh
圖 30
執行如下命令,使用parted工具劃分eMMC分區。
Target# parted /dev/mmcblk1
圖 31
執行如下命令,查看剩余的空閑空間。
parted# print free
圖 32
執行如下命令,劃分空閑空間,并退出parted工具。
parted# unit MB mkpart primary ext4 1354MB 7818MB
parted# quit
圖 33
新建分區后,可能會自動掛載分區,請執行如下命令取消掛載新建的分區。若未自動掛載,則忽略此步驟。
Target# umount /mnt/mmcblk1p3
圖 34
執行如下命令,格式化新建的分區。
Target# mkfs.ext4 -F -L data /dev/mmcblk1p3
圖 35
至此,eMMC剩余的空閑空間劃分完成,可以手動掛載新的分區,或者重新啟動評估板將會自動掛載。
重啟評估板,執行如下命令,查看新建的分區信息。
Target# df -h
圖 36
審核編輯 黃宇
-
Linux
+關注
關注
88文章
11781瀏覽量
219225 -
嵌入式開發
+關注
關注
18文章
1148瀏覽量
50168 -
emmc
+關注
關注
7文章
265瀏覽量
56130
發布評論請先 登錄
基于安路DR1M90 FPSoC的Linux系統全流程開發指南(4)
米爾國產FPGA SoC芯選擇,安路飛龍DR1M90核心板重磅發布
Linux系統啟動卡制作及系統固化
ARM嵌入式系統如何入門?怎樣一步步的去學習
米爾-安路飛龍DR1M90 -國產FPGA核心板開發板
基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(1)
基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(3)
一步步完成安路飛龍 DR1M90 Linux 系統固化:啟動卡制作 + eMMC 固化
評論