技術(shù)貼 | 教你如何在Ubuntu保留文件系統(tǒng)

原創(chuàng) 2022-09-16 09:01:00 rk3399 rk3399ubuntu rk3399開發(fā)板

rk3399國產(chǎn)處理器

rk3399國產(chǎn)工業(yè)級

在Ubuntu系統(tǒng)的嵌入式設(shè)備開發(fā)過程中,保留文件系統(tǒng)或者說備份當(dāng)前開發(fā)板鏡像的需求在不斷增加。

比如Ubuntu文件系統(tǒng)需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安裝好庫的文件系統(tǒng)打包出來,或者做成一個新的鏡像,用于燒錄到其他核心板,如果將庫的源碼交叉編譯再放入到文件系統(tǒng)的源碼中重新再源碼打包一個鏡像比較麻煩,而且交叉編譯過程中可能存在一些問題。今天飛凌小編就通過OK3399-C開發(fā)板(基于瑞芯微RK3399國產(chǎn)處理器)針對以上問題來為各位工程師小伙伴介紹相應(yīng)的解決方法。

一、解決思路 

基于Linux下一切皆文件的思想,開發(fā)板啟動后進(jìn)行的一系列操作都會以文件的形式保留在文件系統(tǒng)中,而RK3399處理器的Ubuntu系統(tǒng)提供了文件系統(tǒng)鏡像ubuntu.img用來編譯生成update.img。

因此我們需要一個方法使OK3399-C開發(fā)板中的文件系統(tǒng)和ubuntu.img中的內(nèi)容保持一致,這樣編譯生成的update.img就包含了當(dāng)前開發(fā)板中所配置的環(huán)境,方便用來備份或者批量部署。

二、解決方法

其實飛凌嵌入式的官方論壇知識庫之前已經(jīng)發(fā)表了兩個可以實現(xiàn)的解決方法,這里不再贅述,只做簡要說明:

方法 1:

請查看飛凌知識庫:RK3399 Ubuntu系統(tǒng)在PC虛擬機中使用apt-get修改文件系統(tǒng)

http://www.szrcclub.com/article_view_878.html

該方法是將ubuntu.img文件copy到開發(fā)板中,通過mount命令掛載后復(fù)制當(dāng)前開發(fā)板中的內(nèi)容后,再將ubuntu.img轉(zhuǎn)到開發(fā)環(huán)境進(jìn)行編譯,這種方法最為簡單粗暴容易理解,但很容易因為操作者的疏忽而導(dǎo)致復(fù)制不完全。

方法 2:

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

請查看飛凌知識庫:

http://www.szrcclub.com/article_view_926.html

該方法直接將ubuntu.img文件在開發(fā)環(huán)境中模擬開發(fā)板的環(huán)境進(jìn)行apt-get等操作,可以類比理解如下:

在PC端的VM虛擬機里運行Ubuntu系統(tǒng)
在Ubuntu中的qemu虛擬機里運行ubuntu.img系統(tǒng)

這個方法比較符合邏輯且操作方便,但需要再將已驗證的操作在qemu中再執(zhí)行一次,如果開發(fā)周期較長,可能有些在開發(fā)板安裝的庫文件反而在qemu中沒有安裝導(dǎo)致問題出現(xiàn)。

方法3:

通過rsync同步兩個文件系統(tǒng)中的內(nèi)容,做到實時更新、同步。本文將著重介紹并實操第三種方法。

rsync的目的是實現(xiàn)本地主機和遠(yuǎn)程主機上的文件同步(包括本地推到遠(yuǎn)程,遠(yuǎn)程拉到本地兩種同步方式)。


本文以O(shè)K3399-C開發(fā)板和PC端Ubuntu虛擬機為例,同步開發(fā)板安裝的cutecom(Ubuntu可視化串口調(diào)試工具)到Ubuntu的3399-desktop-release/rootfs/ubuntu.img中。

Ubuntu開發(fā)環(huán)境IP:172.16.0.167

RK3399開發(fā)板IP:172.16.0.168

確保雙方可以ping通,確保兩者皆可ping通forlinx.com。

三、開發(fā)環(huán)境操作

1、為RK3399開發(fā)環(huán)境設(shè)置root用戶密碼,使用命令:passwd root;

2、修改/etc/ssh/sshd_config文件,添加可ssh遠(yuǎn)程登錄權(quán)限。

使用命令:sudo vi /etc/ssh/sshd_config;

添加完成后效果如下圖:

3、重啟sshd服務(wù),使用命令:service sshd restart;

4、將源碼中的ubuntu.img掛載出來,建議掛載到同目錄的target目錄下,在OK3399-desktop-release/rootfs目錄下使用命令:sudo mount ubunt.img ./target;

四、開發(fā)板操作

1、更新下載源執(zhí)行命令:sudoapt-get update;

2、下載rsync服務(wù),執(zhí)行命令:sudoapt-get install rsync;

3、如果文件系統(tǒng)已經(jīng)有所更改跳過此項,本文中還未做任何更改,所以將下載cutecom以做測試,執(zhí)行命令:sudoapt-get install cutecom;
4、將rk3399開發(fā)板文件系統(tǒng)同步到開發(fā)環(huán)境中的文件系統(tǒng)中

開發(fā)環(huán)境文件系統(tǒng)路徑如下:

/home/forlinx/3399/OK3399-desktop-release/rootfs/target;

開發(fā)板執(zhí)行命令:

rsync -avx / \ 

root@172.16.0.167:/home/forlinx/3399/OK3399-desktop-release/rootfs/target;

首次執(zhí)行需要手動填寫yes,記錄成功后,以后就只需要輸入開發(fā)環(huán)境的root用戶密碼;

5、在開發(fā)環(huán)境查看,是否存在cutecom,結(jié)果如下圖:

到此,在rk3399開發(fā)板安裝的cutecom已經(jīng)同步到開發(fā)環(huán)境的ubuntu.img中。

接下來,在開發(fā)環(huán)境執(zhí)行編譯腳本燒寫到rk3399開發(fā)板進(jìn)行驗證,將ubuntu.img文件卸載,執(zhí)行命令:sudo umount target

回到OK3399-desktop-release目錄執(zhí)行編譯腳本 ./build_ubuntu.sh 生成update.img后通過OTG燒寫到開發(fā)板驗證cutecom是否存在即可。

6、驗證結(jié)果,cutecom存在且可正常執(zhí)行。結(jié)果如下圖所示:

以上就是小編為大家整理的在OK3399-C開發(fā)板上運行Ubuntu系統(tǒng)時保留文件系統(tǒng)的操作方法,希望能夠?qū)Υ蠹矣兴鶐椭?



相關(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)域應(yīng)用。飛凌RK3399開發(fā)板在整體性能、功耗及核心面積做了大幅度優(yōu)化,更加滿足工業(yè)設(shè)計需求。飛凌RK3399開發(fā)板為進(jìn)一步減少用戶二次開發(fā)難度,開放了底板原理圖,并提供了RK3399用戶手冊、芯片手冊,加上優(yōu)質(zhì)的技術(shù)服務(wù),讓您的方案從構(gòu)思到上市時間縮短。

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

推薦閱讀 換一批 換一批