需求背景
在實際開發過程中,系統默認提供的功能和環境通常很難全面滿足項目需求。為了實現特定功能或滿足項目運行的個性化要求,開發人員往往需要對系統進行深入的定制化處理。這包括安裝必要的依賴庫、創建項目運行所需的配置文件、優化啟動流程等。這些定制化操作不僅需要滿足項目的當前需求,還需要保證系統的穩定性和運行效率。
當項目調試完成后,為了能夠將已經優化好的系統環境高效地推廣到多個設備上,避免手動重復配置的繁瑣和可能出現的人為錯誤,開發人員需要將整個系統的當前狀態制作成一個完整的鏡像文件。通過導出系統鏡像,可以將所有定制內容完整地打包。這種方式不僅大幅減少了后續批量生產中的工作量,還可以確保每臺設備都擁有一致
的運行環境,降低潛在的部署風險,提升生產效率。
![wKgZPGdGlRuAahsUAAEqgoLbVPI747.png](https://file1.elecfans.com/web3/M00/00/1B/wKgZPGdGlRuAahsUAAEqgoLbVPI747.png)
那如何將優化好的系統打包出來呢?
1.EMMC系統備份
本篇內容適合備份全部的Linux系統鏡像,包括Buildroot、Ubuntu和Debian,這里我們選用ubuntu22系統進行EMMC鏡像備份演示,首先將“iTOP-RK3568開發板【底板V1.7版本】\02_【iTOP-RK3568開發板】開發資料\10_Linux系統開發配套資料\09_Linux系統備份”路徑下的backup.zip拷貝到外置存儲設備例如U盤、TF卡、NVME固態硬盤上,這里選用最方便的U盤(建議格式化為NTFS格式,FAT32格式會有4G大小的限制),拷貝完成如下圖所示:
![wKgZPGdGtG6ACjjnAAARk6a61MQ558.png](https://file1.elecfans.com/web3/M00/00/1F/wKgZPGdGtG6ACjjnAAARk6a61MQ558.png)
然后進入開發板的系統終端,如下圖所示:
![wKgZO2dGtHWAQ7KoAAEFd5dgyaQ183.png](https://file1.elecfans.com/web3/M00/00/20/wKgZO2dGtHWAQ7KoAAEFd5dgyaQ183.png)
然后插入外置存儲設備,在Ubuntu22文件系統中U盤會自動掛載,可以通過“df -h”命令查看掛載的路徑,如下圖所示:
![wKgZPGdGtLGAbU3OAABi89UEFyo517.png](https://file1.elecfans.com/web3/M00/00/1F/wKgZPGdGtLGAbU3OAABi89UEFyo517.png)
注:如果沒有自動掛載,可以使用mount命令自行手動掛載
然后進入掛載目錄下,可以看到剛剛拷貝的backup.zip壓縮包,使用unzip命令進行解壓,解壓完成如下圖所示:
![wKgZPGdGtL6ABDErAAEY3fyYlXI053.png](https://file1.elecfans.com/web3/M00/00/1F/wKgZPGdGtL6ABDErAAEY3fyYlXI053.png)
然后進入backu文件夾的script目錄下,這里的backup.sh就是備份腳本,如下圖所示:
![wKgZPGdGtTaAdBreAABOAID_V08859.png](https://file1.elecfans.com/web3/M00/00/1F/wKgZPGdGtTaAdBreAABOAID_V08859.png)
接下來運行backup.sh進行備份,運行之后會選擇當前SOC類型,現在要備份的是rk3568 4.19版本的系統,所以這里輸入2即可開始備份,備份過程如下所示:
![wKgZO2dGtUKADw5PAAG-vfhOg1I948.png](https://file1.elecfans.com/web3/M00/00/20/wKgZO2dGtUKADw5PAAG-vfhOg1I948.png)
等待備份完成,備份完成如下圖所示:
![wKgZO2dGtUuAJiDzAABfjdz866Q355.png](https://file1.elecfans.com/web3/M00/00/20/wKgZO2dGtUuAJiDzAABfjdz866Q355.png)
備份完成的鏡像會存放在上一級目錄的Image目錄下,如下圖所示:
![wKgZPGdGtVKARJS_AAA1q1Iq2EA188.png](https://file1.elecfans.com/web3/M00/00/1F/wKgZPGdGtVKARJS_AAA1q1Iq2EA188.png)
可以看到分區文件、rkbin鏡像、uboot鏡像、內核鏡像、文件系統鏡像都已進行了導出,至此,關于EMMC系統備份就講解完成了。
2.打包update.img
在上小節中已經將EMMC中的全部分區鏡像進行了導出,而為了方便期間和統一燒寫,我們一般都需要將這些鏡像文件打包成一個整體的鏡update.img,在本小節中將對鏡像打包的過程進行講解。
首先將上一小節U盤Image目錄下的全部文件拷貝到對應Linux SDK的rockdev目錄下,拷貝完成如下圖所示:
![wKgZO2dGtcqAGmA4AAB6B-c12I8847.png](https://file1.elecfans.com/web3/M00/00/20/wKgZO2dGtcqAGmA4AAB6B-c12I8847.png)
然后使用“./build.sh updateimg”命令進行打包,打包過程如下所示:
![wKgZPGdGtW2AYxFjAAHHUS_rr8s581.png](https://file1.elecfans.com/web3/M00/00/1F/wKgZPGdGtW2AYxFjAAHHUS_rr8s581.png)
打包完成之后會在rockdev目錄下生成整體鏡像update.img。
![wKgZO2dGtaeAGpRcAABPkAZ4DLo722.png](https://file1.elecfans.com/web3/M00/00/20/wKgZO2dGtaeAGpRcAABPkAZ4DLo722.png)
至此關于打包update.img鏡像的步驟就講解完成了,后續直接使用RK提供的燒寫工具進行整體燒寫即可。
-
開發板
+關注
關注
25文章
5067瀏覽量
97617 -
RK3568
+關注
關注
4文章
516瀏覽量
5086 -
迅為電子
+關注
關注
0文章
32瀏覽量
43
發布評論請先 登錄
相關推薦
評論