RK3399 Ubuntu系統做更改后生成Update.img文件的方法

原創 2022-06-18 16:42:00 rk3399 Ubuntu Update.img
RK3399在使用Ubuntu系統進行軟件開發,開發完成后需要批量生產,就會產生這個需求,因為Ubuntu系統可以通過apt-get命令來獲取安裝自己所開發軟件所需要的一些運行環境。
這邊提供將修改后的Ubuntu文件系統生成Update.img文件以供直接燒寫到新的rk3399開發板或者核心板上的思路。
ubuntu.img掛載到做完更改的板子上,將文件系統的內容替換然后將更改后的ubuntu.img放在源碼目錄下進行編譯生成Update.img。這樣就可以直接給開發板燒寫做完更改后的Ubuntu系統。
將ubuntu.img掛載到開發板文件的方式有很多種,請選擇自己熟悉的方式進行操作,這邊只列舉一個簡單而麻煩的方式。
將初始ubuntu.img文件copy到開發板中(ftp、U盤等方式),然后在終端進行操作,mount ubuntu.img target(target為文件夾名字,可自己更改創建),然后將根目錄下的文件替換target掛載的文件,然后umount target卸載鏡像。然后將鏡像copy到VMware中,替換源碼目錄下的ubuntu.img(源碼目錄為OK3399-desktop-release/rootfs/ubuntu.img),然后運行builid腳本按照手冊描述進行編譯燒錄。

以上方式有一點不足是如果自己所做的更改較大,在將根目錄文件替換到掛載鏡像的文件夾時,掛載鏡像的大小不足以容納所更改的項目,下邊提供一個給鏡像擴容的方法。(以下操作在虛擬機中完成,擴容后再將鏡像copy到開發板中掛載)
鏡像文件的擴容用到兩個命令
sudo fsck.ext3 -f IMAGE
sudo resize2fs IMAGE SIZE
第一個命令為檢測IMAGE文件現在的大小和目錄結構等,完成檢測后才可以對IMAGE文件大小進行操作。操作時SIZE為塊的數量、一個塊的大小為4K(即當SIZE為783770時,783770*4=3135080,大概為3.2G,1250000時為5G
鏡像文件的擴容需要在掛載之前進行操作,此時驗證的ubuntu.img最大為5.1G,超過此容量在進行編譯等操作時不會出現報錯,但是最終在開發板上運行時會導致無法正常啟動的情況,所以目前情況下,請不要將其容量設置為5G以上。

最后提供一個思路,是將RK3399開發板的文件系統通過rsync掛載到服務器上通過dd指令來直接復制文件系統到新鏡像中,這邊只提供最后一種思路的理論方法,有興趣的可以自行嘗試。

創建一個新鏡像,然后復制內容

以下命令中 new.img oldtarget newtarget 請按照實際情況自行更改

1、 新建鏡像文件

dd if=/dev/zero of=new.img bs=1M count=5120

2、 分別創建新舊鏡像掛載點

mkdir oldtarget

mkdir newtarget

3、 分別將新舊鏡像與loop設備關聯

losetup /dev/loop0 ubuntu.img

losetup /dev/loop1 new.img

4、 創建新鏡像的文件系統

mke2fs -j /dev/loop1

5、 掛載鏡像

mount /dev/loop0 oldtarget

mount /dev/loop1 newtarget

6、 將數據填充到新鏡像中

(cd oldtarget; tar czf -) | (cd newtarget; xzf)

7、 卸載文件系統以及釋放loop設備

umount /dev/loop0

umount /dev/loop1

losetup -d /dev/loop0

losetup -d /dev/loop1


在執行數據填充(cd oldtarget; tar czf -) | (cd newtarget; xzf)這個命令時,如果出現tar:在讀取文件時文件發生了改變,則說明操作不成功。請檢查命令行的路徑。操作正常時無提示息,并需要等待較長的一段時間,請耐心等待。



相關產品 >

  • FET3399-C核心板

    飛凌RK3399安卓高性能核心板采用 采用六核Rockchip RK3399芯片,雙Cortex-A72大核+四Cortex-A53小核結構,對整數、浮點、內存等作了大幅優化,在整體性能、功耗及核心面積三個方面提升。以下將對瑞芯微芯片RK3399參數,RK3399核心板方案及其性能做具體介紹。如您對飛凌RK3399系列核心板有興趣,歡迎咨詢了解。

    了解詳情
    FET3399-C核心板
  • OK3399-C開發板

    飛凌嵌入式RK3399安卓開發板主芯片采用高性能六核CPU Rockchip RK3399,GPU采用Mail-T860四核 GPU,RK3399作為目RK產品線中低功耗、高性能的代表,可滿足人臉識別設備、機器人、無人機、IoT物聯網領域應用。飛凌RK3399開發板在整體性能、功耗及核心面積做了大幅度優化,更加滿足工業設計需求。飛凌RK3399開發板為進一步減少用戶二次開發難度,開放了底板原理圖,并提供了RK3399用戶手冊、芯片手冊,加上優質的技術服務,讓您的方案從構思到上市時間縮短。

    了解詳情
    OK3399-C開發板

推薦閱讀 換一批 換一批