加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1、解決思路 
    • 2、解決方法 
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

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

2022/09/16
1824
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

比如Ubuntu文件系統(tǒng)需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費(fèi)時間,這時需要將安裝好庫的文件系統(tǒng)打包出來,或者做成一個新的鏡像,用于燒錄到其他核心板,如果將庫的源碼交叉編譯再放入到文件系統(tǒng)的源碼中重新再源碼打包一個鏡像比較麻煩,而且交叉編譯過程中可能存在一些問題。

今天飛凌小編就通過OK3399-C開發(fā)板針對以上問題來為各位工程師小伙伴介紹相應(yīng)的解決方法。

1、解決思路 

基于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)境,方便用來備份或者批量部署。

2、解決方法 

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

方法 1:

請選用PC端進(jìn)入論壇:http://bbs.witech.com.cn/portal.php?mod=view&aid=530

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

方法 2:

(在開發(fā)環(huán)境模擬開發(fā)板掛載ubuntu.img)

請選用PC端進(jìn)入論壇:http://bbs.witech.com.cn/portal.php?mod=view&aid=605

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

在PC端的VM虛擬機(jī)里運(yùn)行Ubuntu系統(tǒng)

在Ubuntu中的qemu虛擬機(jī)里運(yùn)行ubuntu.img系統(tǒng)

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

方法3:

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

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

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

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

OK3399-C開發(fā)板IP:172.16.0.168

確保雙方可以ping通,確保兩者皆可ping通百度。

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

1、為開發(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、將開發(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é)果如下圖:

 

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

接下來,在開發(fā)環(huán)境執(zhí)行編譯腳本燒寫到OK3399-C開發(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ā)板上運(yùn)行Ubuntu系統(tǒng)時保留文件系統(tǒng)的操作方法,希望能夠?qū)Υ蠹矣兴鶐椭?/p>

作者:楊超凡

Ubuntu

Ubuntu

Ubuntu is the modern, open source operating system on Linux for the enterprise server, desktop, cloud, and IoT.

Ubuntu is the modern, open source operating system on Linux for the enterprise server, desktop, cloud, and IoT.收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

秉承專業(yè)態(tài)度,專注智能設(shè)備核心平臺研發(fā)與制造,以技術(shù)研發(fā)創(chuàng)新為主導(dǎo),以客戶實(shí)用化,產(chǎn)品化為目標(biāo),把握嵌入式行業(yè)的前沿發(fā)展需求,利用核心技術(shù)為客戶提供穩(wěn)定、可靠、功能優(yōu)異的高品質(zhì)產(chǎn)品。合作聯(lián)系:17713286011