RK3399 Ubuntu系統(tǒng)做更改后生成Update.img文件的方法

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

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

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

創(chuàng)建一個新鏡像,然后復制內(nèi)容

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

1、 新建鏡像文件

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

2、 分別創(chuàng)建新舊鏡像掛載點

mkdir oldtarget

mkdir newtarget

3、 分別將新舊鏡像與loop設(shè)備關(guān)聯(lián)

losetup /dev/loop0 ubuntu.img

losetup /dev/loop1 new.img

4、 創(chuàng)建新鏡像的文件系統(tǒng)

mke2fs -j /dev/loop1

5、 掛載鏡像

mount /dev/loop0 oldtarget

mount /dev/loop1 newtarget

6、 將數(shù)據(jù)填充到新鏡像中

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

7、 卸載文件系統(tǒng)以及釋放loop設(shè)備

umount /dev/loop0

umount /dev/loop1

losetup -d /dev/loop0

losetup -d /dev/loop1


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



相關(guān)產(chǎn)品 >

  • FET3399-C核心板

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

    了解詳情
    FET3399-C核心板
  • OK3399-C開發(fā)板

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

    了解詳情
    OK3399-C開發(fā)板

推薦閱讀 換一批 換一批